环境安装

物理机部署分配
3台物理机上部署 Zookeeper 3个,Flume 3个,Kafka 3个 (假定3台物理机IP地址分别为: IP1, IP2, IP3)

3台物理界上部署 ES 3个, Kibana 1个 (假定3台物理机IP地址分别为: IP4, IP5, IP6)

另外,请修改各服务器的文件句柄数限制,比如从默认的 1024 修改为 10240 !!
1. Zookeeper
配置3台 版本:3.4.8

1下载
zookeeper-3.4.8.tar.gz

2.解压
3.zookeeper目录的conf目录下创建zoo.cfg

# 心跳基本时间单位,毫秒级
tickTime=2000
# tickTime的个数,表示在leader选举结束后,followers与leader同步需要的时间
initLimit=10
# tickTime的个数,表示与leader同步完毕之后,进入正常请求转发或ping等消息交互时的超时时间。
syncLimit=5
# 快照等数据存储目录
dataDir=/home/app/program/zookeeper-3.4.8/data
# zookeeper服务端口
clientPort=2181
# 客户端最大连接数。
maxClientCnxns=1024
# 数据目录快照自动清理时保留快照的数量。默认是保留3个。
autopurge.snapRetainCount=3
# 数据目录快照自动清理间隔。单位小时,默认0,表示不开启清理功能。
autopurge.purgeInterval=1
# 集群配置 集群中机器的IP地址:集群机器之间通信端口:集群leader选举端口
server.1=IP1:2888:3888
server.2=IP2:2888:3888
server.3=IP3:2888:3888

4.修改port,dataDir,和集群节点的ip的配置信息

5.同样安装配置另外两个节点

6.在每台机器的zookeeper所配置的data目录下,建立myid文件。使用myid为当前机器分配一个编号。

IP1服务器上:
echo '1' > myid
IP2服务器上:
echo '2' > myid
IP3服务器上:
echo '3' > myid
6.每个节点分别执行 bin/zkServer.sh start 启动

2. Kafka
1. 下载

kafka2.11.zip
2. 解压

3. 修改config/server.properties 注意修改其中的IP地址  粗体字尤其要注意修改

    必须修改的项:
        broker.id=51                                                             // 集群中每个节点的id,要求唯一
        listeners=PLAINTEXT://IP:9092               // 格式:  PLAINTEXT://主机名(或地址):端口
        log.dirs=/data2/appdata/kafka-logs                      // 日志(消息)保存地址, 要求配置在剩余容量比较大的磁盘上
        zookeeper.connect=IP1:2181,IP2:2181,IP3:2181        // zookeeper集群地址
        log.retention.hours=168                                          // 日志保留时间,请修改为 168小时(7天)

4. 同样安装配置另外两个节点
5. 每个节点启动Kakfa
bin/kafka-server-start.sh -daemon config/server.properties

6. 创建Flume用Kafka Topic

bin/kafka-topics.sh --zookeeper IP1:2181,IP2:2181,IP3:2181 --topic flume_kafka_channel_topic --create --partitions 1 --replication-factor 3

3. Flume
1. 下载

apache-flume-1.6.0.zip

2. 解压

3. 修改config/flume-conf.properties

首先修改 flume的 channel 配置为 kafka_channel
agent1.sources = source1
agent1.sinks = elasticsearch
agent1.channels = kafka_channel                                    // 修改flume的channel
agent1.sources.source1.type = avro
agent1.sources.source1.bind = 0.0.0.0
agent1.sources.source1.port = 44444

agent1.sources.source1.channels = kafka_channel      // 修改source的channel
agent1.sinks.elasticsearch.channel = kafka_channel   // 修改sink使用的channel

然后增加  kafka_channel 的配置项
agent1.channels.kafka_channel.type=org.apache.flume.channel.kafka.KafkaChannel                        // 增加此配置项
agent1.channels.kafka_channel.capacity=10000                                                                                     // 增加此配置项
agent1.channels.kafka_channel.transactionCapacity=1000                                                                    // 增加此配置项
agent1.channels.kafka_channel.brokerList=IP1:9092,IP2:9092,IP3:9092                         // 增加此配置项              修改为3个kafka的 ip地址和端口,逗号分隔
agent1.channels.kafka_channel.topic=flume_kafka_channel_topic                                                                 // 增加此配置项
agent1.channels.kafka_channel.zookeeperConnect=IP1:2181,IP2:2181,IP3:2181     // 增加此配置项, 修改为zookeeper集群的 ip地址和端口,逗号分隔

以下为elasticsearch这个sink的配置项
agent1.sinks.elasticsearch.type = com.frontier45.flume.sink.elasticsearch2.ElasticSearchSink
agent1.sinks.elasticsearch.hostNames = IP4:9300,IP5:9300,IP6:9300                              // ES集群地址
agent1.sinks.elasticsearch.indexName = jumore_dev_log
agent1.sinks.elasticsearch.batchSize = 500
agent1.sinks.elasticsearch.indexType = messages
agent1.sinks.elasticsearch.clusterName = es-local
agent1.sinks.elasticsearch.ttl=7d                                                                                       // 保留7天
agent1.sinks.elasticsearch.serializer = com.frontier45.flume.sink.elasticsearch2.ElasticSearchDynamicSerializer
agent1.sinks.elasticsearch.indexNameBuilder = com.frontier45.flume.sink.elasticsearch2.SimpleIndexNameBuilder

4. 以下jar包放至Flume的lib目录下
elasticsearch-sink2-1.0.jar
zookeeper-3.4.6.jar

5. 同样安装配置另外两个节点

6. 各个节点启动Flume

nohup bin/flume-ng agent --conf ./conf/ -f conf/flume-conf.properties -n agent1 &

4. ElasticSearch
请在IP4, IP5, IP6 3台服务器上各配置一个ES

配置文件中:要求 cluster.name : es-local

其他参考其他集群上的ES的要求进行配置,此处略。

5. Kibana
Kibana 配置一台即可,IP4, IP5, IP6 中 任意一台机器

1. 下载
kibana-4.5.4-linux-x64.tar.gz
2. 解压
3. 修改config/kibana.yml
    必须修改的项:(配置为 提供查询服务的其中一台 ElasticSearch地址即可)
        elasticsearch.url: "http://IP4:9200"

4. 启动kibana
    bin/kibana

Ambari安装:
http://www.ibm.com/developerworks/cn/opensource/os-cn-bigdata-ambari/

猜你喜欢

转载自lakerhu.iteye.com/blog/2353510