1. 程式人生 > >CentOS6.5下kafka+ZooKeeper下載與安裝詳細教程-單機版

CentOS6.5下kafka+ZooKeeper下載與安裝詳細教程-單機版

(注:在大資料分析系統中,不會安裝單機版,所以可以直接去看多機版教程,多機版教程也是完整的。)

下載zookeeper

安裝zookeeper

zookeeper-3.4.6.tar.gzU盤複製到/home/hadoop目錄下

cd /home/hadoop

開啟目錄/home/hadoop

tar -zxvf zookeeper-3.4.6.tar.gz -C /usr/local

解壓到指定目錄/usr/local

cd /usr/local

開啟目錄/usr/local

mv zookeeper-3.4.6 zookeeper

zookeeper-3.4.6名字變為zookeeper

配置zookeeper

cd /usr/local/zookeeper

進入zookeeper目錄

cp -rf conf/zoo_sample.cfg conf/zoo.cfg

複製一個備份

cd conf

進入conf目錄

vim zoo.cfg

編輯zoo.cfg

修改後的內容如下:

# The number of milliseconds of each tick

tickTime=2000

# The number of ticks that the initial 

# synchronization phase can take

initLimit=10

# The number of ticks that can pass between 

# sending a request and getting an acknowledgement

syncLimit=5

# the directory where the snapshot is stored.

# do not use /tmp for storage, /tmp here is just 

# example sakes.

dataDir=/usr/local/zookeeper/zkdata #這個目錄是預先建立的

# the port at which the clients will connect

clientPort=2181

# the maximum number of client connections.

# increase this if you need to handle more clients

#maxClientCnxns=60

#

# Be sure to read the maintenance section of the 

# administrator guide before turning on autopurge.

#

# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance

#

# The number of snapshots to retain in dataDir

#autopurge.snapRetainCount=3

# Purge task interval in hours

# Set to "0" to disable auto purge feature

#autopurge.purgeInterval=1

紅色文字原來的內容

# do not use /tmp for storage, /tmp here is just 

# example sakes.

dataDir=/tmp/zookeeper

上面兩行的意思是:

不要使用/tmp/zookeeper作為目錄

因此,需要對它做出修改

建立上面需要的資料夾:

mkdir /usr/local/zookeeper/zkdata

啟動zookeeper

具體指令如下所示:

[[email protected] conf]# cd ../

[[email protected] zookeeper]# cd bin

[[email protected] bin]# sh zkServer.sh start

JMX enabled by default

Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg

Starting zookeeper ... STARTED

[[email protected] bin]# ps ax| grep zookeeper.out 

  7684 pts/0    S+     0:00 grep zookeeper.out

[[email protected] bin]#  ps ax| grep zookeeper

  7655 pts/0    Sl     0:02 /usr/local/java/jdk1.7.0_51/bin/java -Dzookeeper.log.dir=. -Dzookeeper.root.logger=INFO,CONSOLE -cp /usr/local/zookeeper/bin/../build/classes:/usr/local/zookeeper/bin/../build/lib/*.jar:/usr/local/zookeeper/bin/../lib/slf4j-log4j12-1.6.1.jar:/usr/local/zookeeper/bin/../lib/slf4j-api-1.6.1.jar:/usr/local/zookeeper/bin/../lib/netty-3.7.0.Final.jar:/usr/local/zookeeper/bin/../lib/log4j-1.2.16.jar:/usr/local/zookeeper/bin/../lib/jline-0.9.94.jar:/usr/local/zookeeper/bin/../zookeeper-3.4.6.jar:/usr/local/zookeeper/bin/../src/java/lib/*.jar:/usr/local/zookeeper/bin/../conf::.:/usr/local/java/jdk1.7.0_51/lib:/usr/local/java/jdk1.7.0_51/jre/lib:.:/usr/local/java/jdk1.7.0_51/lib:/usr/local/java/jdk1.7.0_51/jre/lib:.:/usr/local/java/jdk1.7.0_51/lib:/usr/local/java/jdk1.7.0_51/jre/lib -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=false org.apache.zookeeper.server.quorum.QuorumPeerMain /usr/local/zookeeper/bin/../conf/zoo.cfg

  7687 pts/0    S+     0:00 grep zookeeper

[[email protected] bin]# 

下載Kafka

安裝Kafka

kafka_2.10-0.8.2.1.tgzU盤複製到/home/hadoop目錄下

cd /home/hadoop

開啟目錄/home/hadoop

tar -zxvf kafka_2.10-0.8.2.1.tgz -C /usr/local

解壓到指定目錄/usr/local

cd /usr/local

開啟目錄/usr/local

mv kafka_2.10-0.8.2.1 kafka

kafka_2.10-0.8.2.1名字變為kafka

啟動Kafka

cd /usr/local/kafka

開啟目錄

sh bin/kafka-server-start.sh config/server.properties

啟動

備註:要掛到後臺使用:sh bin/kafka-server-start.sh config/server.properties

因為執行資訊如下所示,執行結束後,將不能再輸入命令:

[[email protected] kafka]# sh bin/kafka-server-start.sh config/server.properties

[2015-09-09 10:27:21,451] INFO Verifying properties (kafka.utils.VerifiableProperties)

[2015-09-09 10:27:21,559] INFO Property broker.id is overridden to 0 (kafka.utils.VerifiableProperties)

[2015-09-09 10:27:21,559] INFO Property log.cleaner.enable is overridden to false (kafka.utils.VerifiableProperties)

[2015-09-09 10:27:21,559] INFO Property log.dirs is overridden to /tmp/kafka-logs (kafka.utils.VerifiableProperties)

[2015-09-09 10:27:21,560] INFO Property log.retention.check.interval.ms is overridden to 300000 (kafka.utils.VerifiableProperties)

[2015-09-09 10:27:21,560] INFO Property log.retention.hours is overridden to 168 (kafka.utils.VerifiableProperties)

[2015-09-09 10:27:21,560] INFO Property log.segment.bytes is overridden to 1073741824 (kafka.utils.VerifiableProperties)

[2015-09-09 10:27:21,560] INFO Property num.io.threads is overridden to 8 (kafka.utils.VerifiableProperties)

[2015-09-09 10:27:21,560] INFO Property num.network.threads is overridden to 3 (kafka.utils.VerifiableProperties)

[2015-09-09 10:27:21,560] INFO Property num.partitions is overridden to 1 (kafka.utils.VerifiableProperties)

[2015-09-09 10:27:21,560] INFO Property num.recovery.threads.per.data.dir is overridden to 1 (kafka.utils.VerifiableProperties)

[2015-09-09 10:27:21,561] INFO Property port is overridden to 9092 (kafka.utils.VerifiableProperties)

[2015-09-09 10:27:21,561] INFO Property socket.receive.buffer.bytes is overridden to 102400 (kafka.utils.VerifiableProperties)

[2015-09-09 10:27:21,561] INFO Property socket.request.max.bytes is overridden to 104857600 (kafka.utils.VerifiableProperties)

[2015-09-09 10:27:21,561] INFO Property socket.send.buffer.bytes is overridden to 102400 (kafka.utils.VerifiableProperties)

[2015-09-09 10:27:21,561] INFO Property zookeeper.connect is overridden to localhost:2181 (kafka.utils.VerifiableProperties)

[2015-09-09 10:27:21,562] INFO Property zookeeper.connection.timeout.ms is overridden to 6000 (kafka.utils.VerifiableProperties)

[2015-09-09 10:27:21,692] INFO [Kafka Server 0], starting (kafka.server.KafkaServer)

[2015-09-09 10:27:21,729] INFO [Kafka Server 0], Connecting to zookeeper on localhost:2181 (kafka.server.KafkaServer)

[2015-09-09 10:27:21,793] INFO Starting ZkClient event thread. (org.I0Itec.zkclient.ZkEventThread)

[2015-09-09 10:27:21,847] INFO Client environment:zookeeper.version=3.4.6-1569965, built on 02/20/2014 09:09 GMT (org.apache.zookeeper.ZooKeeper)

[2015-09-09 10:27:21,847] INFO Client environment:host.name=Slave1 (org.apache.zookeeper.ZooKeeper)

[2015-09-09 10:27:21,848] INFO Client environment:java.version=1.7.0_51 (org.apache.zookeeper.ZooKeeper)

[2015-09-09 10:27:21,848] INFO Client environment:java.vendor=Oracle Corporation (org.apache.zookeeper.ZooKeeper)

[2015-09-09 10:27:21,848] INFO Client environment:java.home=/usr/local/java/jdk1.7.0_51/jre (org.apache.zookeeper.ZooKeeper)

[2015-09-09 10:27:21,848] INFO Client environment:java.class.path=:.:/usr/local/java/jdk1.7.0_51/lib:/usr/local/java/jdk1.7.0_51/jre/lib:.:/usr/local/java/jdk1.7.0_51/lib:/usr/local/java/jdk1.7.0_51/jre/lib:.:/usr/local/java/jdk1.7.0_51/lib:/usr/local/java/jdk1.7.0_51/jre/lib:/usr/local/kafka/bin/../core/build/dependant-libs-2.10.4*/*.jar:/usr/local/kafka/bin/../examples/build/libs//kafka-examples*.jar:/usr/local/kafka/bin/../contrib/hadoop-consumer/build/libs//kafka-hadoop-consumer*.jar:/usr/local/kafka/bin/../contrib/hadoop-producer/build/libs//kafka-hadoop-producer*.jar:/usr/local/kafka/bin/../clients/build/libs/kafka-clients*.jar:/usr/local/kafka/bin/../libs/jopt-simple-3.2.jar:/usr/local/kafka/bin/../libs/kafka_2.10-0.8.2.1.jar:/usr/local/kafka/bin/../libs/kafka_2.10-0.8.2.1-javadoc.jar:/usr/local/kafka/bin/../libs/kafka_2.10-0.8.2.1-scaladoc.jar:/usr/local/kafka/bin/../libs/kafka_2.10-0.8.2.1-sources.jar:/usr/local/kafka/bin/../libs/kafka_2.10-0.8.2.1-test.jar:/usr/local/kafka/bin/../libs/kafka-clients-0.8.2.1.jar:/usr/local/kafka/bin/../libs/log4j-1.2.16.jar:/usr/local/kafka/bin/../libs/lz4-1.2.0.jar:/usr/local/kafka/bin/../libs/metrics-core-2.2.0.jar:/usr/local/kafka/bin/../libs/scala-library-2.10.4.jar:/usr/local/kafka/bin/../libs/slf4j-api-1.7.6.jar:/usr/local/kafka/bin/../libs/slf4j-log4j12-1.6.1.jar:/usr/local/kafka/bin/../libs/snappy-java-1.1.1.6.jar:/usr/local/kafka/bin/../libs/zkclient-0.3.jar:/usr/local/kafka/bin/../libs/zookeeper-3.4.6.jar:/usr/local/kafka/bin/../core/build/libs/kafka_2.10*.jar (org.apache.zookeeper.ZooKeeper)

[2015-09-09 10:27:21,848] INFO Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib (org.apache.zookeeper.ZooKeeper)

[2015-09-09 10:27:21,848] INFO Client environment:java.io.tmpdir=/tmp (org.apache.zookeeper.ZooKeeper)

[2015-09-09 10:27:21,848] INFO Client environment:java.compiler=<NA> (org.apache.zookeeper.ZooKeeper)

[2015-09-09 10:27:21,848] INFO Client environment:os.name=Linux (org.apache.zookeeper.ZooKeeper)

[2015-09-09 10:27:21,848] INFO Client environment:os.arch=amd64 (org.apache.zookeeper.ZooKeeper)

[2015-09-09 10:27:21,848] INFO Client environment:os.version=2.6.32-431.el6.x86_64 (org.apache.zookeeper.ZooKeeper)

[2015-09-09 10:27:21,848] INFO Client environment:user.name=root (org.apache.zookeeper.ZooKeeper)

[2015-09-09 10:27:21,848] INFO Client environment:user.home=/root (org.apache.zookeeper.ZooKeeper)

[2015-09-09 10:27:21,848] INFO Client environment:user.dir=/usr/local/kafka (org.apache.zookeeper.ZooKeeper)

[2015-09-09 10:27:21,849] INFO Initiating client connection, connectString=localhost:2181 sessionTimeout=6000 [email protected] (org.apache.zookeeper.ZooKeeper)

[2015-09-09 10:27:22,106] INFO Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error) (org.apache.zookeeper.ClientCnxn)

[2015-09-09 10:27:22,242] INFO Socket connection established to localhost/127.0.0.1:2181, initiating session (org.apache.zookeeper.ClientCnxn)

[2015-09-09 10:27:22,627] INFO Session establishment complete on server localhost/127.0.0.1:2181, sessionid = 0x14fb1e5298a0000, negotiated timeout = 6000 (org.apache.zookeeper.ClientCnxn)

[2015-09-09 10:27:22,630] INFO zookeeper state changed (SyncConnected) (org.I0Itec.zkclient.ZkClient)

[2015-09-09 10:27:22,935] INFO Log directory '/tmp/kafka-logs' not found, creating it. (kafka.log.LogManager)

[2015-09-09 10:27:23,024] INFO Loading logs. (kafka.log.LogManager)

[2015-09-09 10:27:23,048] INFO Logs loading complete. (kafka.log.LogManager)

[2015-09-09 10:27:23,049] INFO Starting log cleanup with a period of 300000 ms. (kafka.log.LogManager)

[2015-09-09 10:27:23,071] INFO Starting log flusher with a default period of 9223372036854775807 ms. (kafka.log.LogManager)

[2015-09-09 10:27:25,561] INFO Awaiting socket connections on 0.0.0.0:9092. (kafka.network.Acceptor)

[2015-09-09 10:27:25,606] INFO [Socket Server on Broker 0], Started (kafka.network.SocketServer)

[2015-09-09 10:27:27,278] INFO Will not load MX4J, mx4j-tools.jar is not in the classpath (kafka.utils.Mx4jLoader$)

[2015-09-09 10:27:27,405] INFO 0 successfully elected as leader (kafka.server.ZookeeperLeaderElector)

[2015-09-09 10:27:28,794] INFO Registered broker 0 at path /brokers/ids/0 with address Slave1:9092. (kafka.utils.ZkUtils$)

[2015-09-09 10:27:28,877] INFO [Kafka Server 0], started (kafka.server.KafkaServer)

[2015-09-09 10:27:31,429] INFO New leader is 0 (kafka.server.ZookeeperLeaderElector$LeaderChangeListener)

新建立一個TOPIC

cd /usr/local/kafka/bin

開啟目錄

sh kafka-topics.sh --create --topic kafkatopic --replication-factor 1 --partitions 1 --zookeeper Slave1:2181

此時報了一堆錯誤,嘗試進行修改

sh kafka-topics.sh --create --topic kafkatopic --replication-factor 1 --partitions 1 --zookeeper localhost:2181

此時,正確

顯示如下:

[[email protected] bin]# sh kafka-topics.sh --create --topic kafkatopic --replication-factor 1 --partitions 1 --zookeeper localhost:2181

Created topic "kafkatopic"

備註:要掛到後臺使用:

sh kafka-topics.sh --create --topic kafkatopic --replication-factor 1 --partitions 1 --zookeeper localhost:2181

KAFKA的生產者啟動起來:

 cd /usr/local/kafka/bin/

sh kafka-console-producer.sh --broker-list localhost:9092 --sync --topic kafkatopic

sh kafka-console-producer.sh --broker-list Slave1:9092 --sync --topic kafkatopic

顯示資訊如下所示:

[[email protected] hadoop]# cd /usr/local/kafka/bin/

[[email protected] bin]# sh kafka-console-producer.sh --broker-list localhost:9092 --sync --topic kafkatopic

[2015-09-09 11:06:54,831] WARN Property topic is not valid (kafka.utils.VerifiableProperties)

會出現一個警告

原教程中也出現,繼續

備註:要掛到後臺使用:

sh kafka-console-producer.sh --broker-list localhost:9092 --sync --topic kafkatopic

另開一個終端,把消費者啟動起來:

(這一步驟還在同一臺電腦或虛擬機器上操作)

cd /usr/local/kafka/bin/

sh kafka-console-consumer.sh --zookeeper localhost:2181 --topic kafkatopic --from-beginning

此時也會報錯
並與原教材不符合,待尋找原因

此教程可用性存疑,開始配置多機器環境

在後續的文章中,這個問題得到了解決