Spark广告点击项目技术骨架二

本文详细介绍了Zookeeper和Kafka的安装步骤及配置方法,并通过实践演示了如何创建Topic、Producer和Consumer,验证Kafka集群的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上节安装了flume, 下面要安装kafka, 安装kafka之前要安装zookeeper.

zookeeper安装

  1. 下载zookeeper-3.4.5后解压,我放到/usr/soft目录下

  2. 修改/etc/environment

    ZOOKEEPER_HOME=/usr/soft/zookeeper-3.4.5

    PATH=”…:/usr/soft/zookeeper-3.4.5/bin:…”

  3. source /etc/environment

  4. 修改配置文件

    先复制一份zoo_sample.cfg

    cp zoo_sample.cfg zoo.cfg

    vi zoo.cfg

    主要是添加下面几项

    dataDir=/usr/soft/hlf/zookeeper/data 元数据目录要事先创建

    dataLogDir=/usr/soft/hlf/zookeeper/log 日志数据目录要事先创建

    server.1=s1:2888:3888 集群信息,一般只要改1和s1

  5. 添加myid

    在dataDir目录下创建myid文件, 并且把上面的1写入就可以了。

  6. 测试zookeeper能否启动

    由于机器限制这里只做了一台zookeeper.

    hlf@s1:/usr/soft/zookeeper-3.4.5$ bin/zkServer.sh start

    提示

    Starting zookeeper … STARTED

    查看jps

    3181 QuorumPeerMain

    说明进程已启动, 这时要查看其状态

    hlf@s1:/usr/soft/zookeeper-3.4.5$ bin/zkServer.sh status

    显示

    JMX enabled by default

    Using config: /usr/soft/zookeeper-3.4.5/bin/../conf/zoo.cfg

    Mode: standalone

    说明已经启动成功。

kafka安装

  1. 下载kafka_2.10-0.10.0.1.tgz, 这里要注意选择与你机子上安装的scala的版本号一致才行。

  2. 解压 tar -zxvf kafka_2.10-0.10.0.1.tgz, 为了方便我把解压后的文件夹名字改成kafka

  3. (可以不看,没用到)为了可以在后台运行,下载slf4j-1.7.21, 之后解压把slf4j-nop-1.7.21.jar这个jar拷贝到kafkar的libs里

  4. 编辑config/server.properties文件

    主要下面两项

    broker.id=0

    zookeeper.connect=s1:2181

  5. 我这里只用一台做练习,就只配了一台的zookeeper.connect

  6. 测试

    a. 启动kafka

    hlf@s1:/usr/soft/kafka/bin$ ./kafka-server-start.sh ../config/server.properties &
    

    用jps显示进程名就是Kafka

    b. 创建一个topic

    hlf@s1:/usr/soft/kafka$ bin/kafka-topics.sh --create --zookeeper s1:2181 --replication-factor 1 --partitions 1 --topic test
    
        最后一行显示
    
        Created topic "test".
    
        也可以用下面的查看
    
    hlf@s1:/usr/soft/kafka$ bin/kafka-topics.sh --describe --zookeeper s1:2181 --topic test
    

    c. 创建一个Producer端

    这里是直接用console在控制台输入数据,输出数据
    
    hlf@s1:/usr/soft/kafka$ bin/kafka-console-producer.sh --broker-list s1:9092 --topic test
    

    d. 创建一个Consumer端

    hlf@s1:/usr/soft/kafka$ bin/kafka-console-consumer.sh --zookeeper s1:2181 --topic test --from-beginning
    

    e. 之后在 Producer端输入数据马上就可以在Consumer端显示出来了。

server.properties参数

#此Broker的ID,集群中每个Broker的ID不可相同
broker.id=0
#监听器,端口号与port一致即可
listeners=PLAINTEXT://:9092
#Broker监听的端口
port=9092
#Broker的Hostname,填主机IP即可
host.name=10.0.0.100      (要写具体的IP)                 
#向Producer和Consumer建议连接的Hostname和port
advertised.host.name=10.0.0.100   (要写具体的IP)
advertised.port=9092
#进行IO的线程数,应大于主机磁盘数
num.io.threads=8
#消息文件存储的路径
log.dirs=/data/kafka-logs
#消息文件清理周期,即清理x小时前的消息记录
log.retention.hours=168
#每个Topic默认的分区数,一般在创建Topic时都会指定分区数,所以这个配成1就行了
num.partitions=1
#Zookeeper连接串,此处填写上一节中安装的三个zk节点的ip和端口即可
zookeeper.connect=10.0.0.100:2181,10.0.0.101:2181,10.0.0.102:2181

遇到的问题

安装zookeeper时候,可以查看进程启动,但是状态显示报错

安装zookeeper-3.3.2的时候,启动正常没报错,但zkServer.sh status查看状态的时候却出现错误,如下:

JMX enabled by default
Using config: /hadoop/zookeeper/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.

jps查看进程,却发现进程已启动
7313 QuorumPeerMain

听网上说的,去检查myid,发现没问题,还听网上的说把那里面的所有文件都删除再重建也没用,再去看有没有建立主机和ip之间的映射关系。 vim /etc/hosts 结果-_-!

网上也有人说这个异常可以忽略,原因是还有节点没有启动zookeeper,全部启动之后,自然就不会出异常了。从这我想到自己的情况

在我这里的情况是:

因为我的conf/zoo.cfg下面配置了四台机器作zookeeper,其实我只用了一台,是standalone模式,另外三台机子没启动,所以会有这个错误,
在standalone模式下要把zoo.cfg中的不启动的配置删掉,再启动就可以了。
显示如下
JMX enabled by default
Using config: /usr/soft/zookeeper-3.4.5/bin/../conf/zoo.cfg
Mode: standalone

也就OK了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值