zookeeper、zkui、kafka部署技术

准备工作:

1、用root用户登录,创建storm用户。useradd storm

2、将apache-maven-3.2.1.storm ;zkui.storm;
kafka_2.9.2-0.8.1.1.storm; zookeeper-3.4.6;解压并放到storm用户下  /home/storm/

解压命令tar -xvf xxxx 或unzip xxxx

3、将storm用户下的文件的拥有者改为storm并改变权限

chown -R storm:storm /home/storm/

chmod +x  /home/storm/ *

(一)部署Zookeepoer的步骤

1、切换到storm用户

su - storm

2、进入zookeeper目录

cd  zookeeper-3.4.6

3、修改zookeeper的配置文件

vim  conf/zoo.cfg

4、修改配置文件中的dataDir、dataLogDir、server.1

dataDir=/home/storm/zookeeper-3.4.6/data  (改成自己的目录)

dataLogDir=/home/storm/zookeeper-3.4.6/logs  (改成自己的目录)

server.1=hostname:4887:5887   (改成自己的hostname或IP)

因为是伪集群所以server.2和server.3没有用到注释掉

5、启动zookeeper

修改bin下执行权限:  chmod +x *

bin/zkServer.sh start

6、启动后查看状态:

bin/zkServer.sh status

结果状态Mode: standalone

7、启动zookeeper的客户端

bin/zkCli.sh

(二)zkui安装

1、首先安装编译工具mvn:

vim ~/.bash_profile

## export mvn3   

export MVN_HOME=/home/storm/apache-maven-3.2.1.storm/apache-maven-3.2.1

export PATH=$PATH:$MVN_HOME/bin

2、进入zkui目录,清理安装zkui

mvn clean install

安装的时候一定要保持网络连续,否则会造成加载的包不完整,

因为在加载包的时候先建立包名再往里加载数据,如果刚建立了包名就断开了网络,

数据还没有加载完。等下次在加载的时候系统搜索到包名会认为这个包已经加载完毕,

这样就造成了包的丢失。

解决方法是:加载的数据会放在zkui文件同目录下的.m2这个隐藏文件里面,

mvn在再次加载的时候会查出哪个包不完整,在.m2下找到缺失的包重新加载。

不过这个方法我没有找到缺失的包,把.m2下的文件全删了,在重新加载也不行。

我的解决方法是删了zkui这个文件重新导入,重新假造mvn。

3、创建软链接
在zkui目录下 执行

ln -s target/zkui-2.0-SNAPSHOT-jar-with-dependencies.jar  zkui-2.0-SNAPSHOT-jar-with-dependencies

4、修改配置文件

vim config.cfg

zkServer=192.168.88.147:2181(填写自己的ip;2181端口号不要改动,以后还会有好多地方会用到这个,

如果改了以后都要改动)

5、启动:nohup java -jar zkui-2.0-SNAPSHOT-jar-with-dependencies.jar &

(&是表示后台执行)

查看:http://192.168.88.147:9090  或者    jps -l

登录账号

"username":"admin" , "password":"manager"

(三)kafka部署
1、进入kafka文件

2、修改配置文件conf/server.properties:

broker.id=0

host.name=192.168.88.147

zookeeper.connect=192.168.88.147:2181可逗号分隔配置多个

(配置文件如果ip地址没写对会造成kafka启动后马上停掉)

3、确保有执行权限

chmod +x sbin/*

4、修改配置文件vim log4j.properties

log4j.appender.E.File = /home/storm/kafka_2.9.2-0.8.1.1.storm/kafka_2.9.2-0.8.1.1/logs/error.log

log4j.appender.D.File = /home/storm/kafka_2.9.2-0.8.1.1.storm/kafka_2.9.2-0.8.1.1/logs/debug.log

5、启动kafka服务

sbin/start-kafka.sh

查看是否启动: jsp -l


(四)测试实例

1、创建topic

bin/kafka-topics.sh --create --zookeeper 192.168.88.147:2181 --replication-factor 1 --partitions 1 --topic topic-ji-name 

(IP不能是localhost)

如果已经创建不需要再次创建

2、启动productor

bin/kafka-console-producer.sh --broker-list 192.168.88.147:9092 --topic topic-ji

3、启动consumer

bin/kafka-console-consumer.sh --zookeeper 192.168.88.147:2181 --topic topic-ji

(IP不能localhost)

4、在productor端输入,看consumer端的输出

再开一个控制器,在一个控制器中控制consumer端,一个控制器控制productor端,

在productor端输入任何东西,在consumer端回显示同样的内容

(五)运行脚本,生成日志

1、脚本准备:

从老师处拿到shelllogger.sh


2、修改脚本

# start cmd:


# nohup sh shellcrawler.sh  >> shellcrawler.log 2>&1 &

日志内容,自由修改。

3、启动:通过重定向的方式生成access.log日志

nohup sh shelllogger.sh  &

4、在kafka下运行

nohup tail -f /home/storm/logger/access.log | bin/kafka-console-producer.sh --broker-list 192.168.88.147:9092 --topic topic-ji-name >logs/producer.log 2>&1 &


5、在consumer端下可以看到运行脚本的内容


猜你喜欢

转载自blog.csdn.net/jiguanglong/article/details/51093862