1.关闭防火墙!!!!
systemctl disableiptables.service
systemctl stopfirewalld.service
service iptablesstop
service firewalldstop
2.查看防火墙状态:
service iptablesstatus
配置Zookeeper:
3.下载zookeeper包 http://zookeeper.apache.org/releases.html
4.解压
5.配置:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/jx/data
dataLogDir=/usr/local/jx/logData
clientPort=2181
server.1=master:3888:4888
server.2=slave1:3888:4888
server.3=slave2:3888:4888
6.在conf/zoo.cfg中配置的dataDir目录下创建myid文件,文件中添加server序号,如server.1即写1(关键,若不主动创建,则Zookeeper启动失败,出现java.net.ConnectException:拒绝连接,此时log中myid后为空)
7.依次启动三个server: ./bin/zkServer.sh start
8.测试Zookeeper是否正常:./bin/zkCli.sh -serverslave1:2181,或 netstat -anp|grep 2181查看端口号
配置scala:
1.下载scala包http://www.scala-lang.org/download/2.10.2.html(2.12版本以上需要java8版本)
2.解压
3.配置
Vim /etc/profiles添加:
exportSCALA_HOME=/usr/local/jx/scala
exportPATH=$PATH:$SCALA_HOME/bin
配置Kafka:
1.下载Kafka包 http://kafka.apache.org/downloads.html
2.解压
3.配置
broker.id=1 #每台主机不同
port=9091 #每台主机不同
num.network.threads=2
num.io.threads=2
socket.send.buffer.bytes=1048576
socket.receive.buffer.bytes=1048576
socket.request.max.bytes=104857600
log.dir=./logs
num.partitions=2
log.flush.interval.messages=10000
log.flush.interval.ms=1000
log.retention.hours=168
#log.retention.bytes=1073741824
log.segment.bytes=536870912
num.replica.fetchers=2
log.cleanup.interval.mins=10
zookeeper.connect=192.168.0.1:2181,192.168.0.2:2182,192.168.0.3:2183
zookeeper.connection.timeout.ms=1000000
kafka.metrics.polling.interval.secs=5
kafka.metrics.reporters=kafka.metrics.KafkaCSVMetricsReporter
kafka.csv.metrics.dir=/tmp/kafka_metrics
kafka.csv.metrics.reporter.enabled=false
4.启动kafka:(三台机器都要启动)
./bin/kafka-server-start.sh ./config/server.properties
后台启动:nohup ./bin/kafka-server-start.sh./config/server.properties 1>/dev/null 2>&1 &
命令解释:
nohup是永久执行
&是指在后台运行
来自 <http://blog.csdn.net/zhang_red/article/details/52789691>
0、1和2分别表示标准输入、标准输出和标准错误信息输出,可以用来指定需要重定向的标准输入或输出。
在一般使用时,默认的是标准输出,既1.当我们需要特殊用途时,可以使用其他标号。例如,将某个程序的错误信息输出到log文件中:./program2>log。这样标准输出还是在屏幕上,但是错误信息会输出到log文件中。
另外,也可以实现0,1,2之间的重定向。2>&1:将错误信息重定向到标准输出。
Linux下还有一个特殊的文件/dev/null,它就像一个无底洞,所有重定向到它的信息都会消失得无影无踪。这一点非常有用,当我们不需要回显程序的所有信息时,就可以将输出重定向到/dev/null。
来自 <http://blog.csdn.net/geekster/article/details/6657620>
5.集群连通性测试
`创建topic:./bin/kafka-topics.sh --create --zookeeper master:2181--replication-factor 3 --partitions 3 --topic kafkaTopic
`查看所有topic:./bin/kafka-topics.sh --list --zookeeper master:2181
`查看topic:./bin/kafka-topics.sh --describe --zookeeper master:2181 --topickafkaTopic
`删除topic:./bin/kafka-topics.sh --delete --zookeeper master:2181 --topickafkaTopic
`彻底删除topic:
1.登录Zookeeper客户端:./zookeeper/bin/zkCli.sh
2.找到topic所在目录:ls /brokers/topics
3.彻底删除:rmr /brokers/topics/[topicName]
`创建生产者:./bin/kafka-console-producer.sh--broker-list 192.168.8.55:9091 --topic test
`创建消费者:./bin/kafka-console-consumer.sh --zookeeper 192.168.8.55:2181 --topic test --from-beginning
6.java连接kafka
首先需要将java程序所在主机的hosts文件映射修改。(C:\Windows\System32\drivers\etc\hosts),否者会出现无法链接
7.注意查看kafka服务是否启动。(终端关闭后kafka关闭)
配置KafkaOffsetMonitor:(界面管理)
1.下载KafkaOffsetMonitor jar包,
2.运行:
java -cpKafkaOffsetMonitor-assembly-0.2.1.jarcom.quantifind.kafka.offsetapp.OffsetGetterWeb --zkmaster:2181,slave1:2181,slave2:2181 --port 8080 --refresh 10.seconds --retain2.days
后台运行:
nohup java -cpKafkaOffsetMonitor-assembly-0.2.1.jarcom.quantifind.kafka.offsetapp.OffsetGetterWeb --zkmaster:2181,slave1:2181,slave2:2181 --port 8080 --refresh 10.seconds --retain2.days 1>/dev/null 2>&1 &
//存在bug,且部署较麻烦,不用
配置Kafkaweb console:(界面管理)
- yum install sbt(scala 构建工具),或下载tgz http://www.scala-sbt.org/download.html
- 解压
- sbt启动脚本:创建sbt文件,添加:
PTS="-Xms512M-Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256M"
java$SBT_OPTS -jar /usr/local/jx/sbt/bin/sbt-launch.jar "$@"
- 修改sbt文件权限:
chmod u+x sbt
- vim ~/.bashrc
export PATH=/usr/local/jx/sbt/:$PATH
Source ~/.bashrc
- 测试sbt是否安装成功
Sbtsbt-version
1.下载 Kafka Web Console
2.解压
3.cdkafka-web-console-master, vim build.sbt添加:
"mysql" % "mysql-connector-java" %"5.1.27",
4.配置mysql jdbc驱动,vim ./conf/application.conf
添加:
db.default.driver=com.mysql.jdbc.Driver
db.default.url="jdbc:mysql://192.168.8.47:3306/kafka?useUnicode=true&characterEncoding=UTF8&connectTimeout=5000&socketTimeout=10000"
db.default.user=bluetech
db.default.password=No.9332
5.创建数据库kafka
执行 sql1,sql3 更改后的sql在8.55:/usr/local/jx/kafka-web-console-master/correctSQL
6.编译:sbt package
7.运行:sbt run
8.访问http://192.168.8.55:9000/