首先訪問Kafka的官網(wǎng) http://kafka.apache.org 點擊左下角的Download
我們下載 Scala 2.11 - kafka_2.11-1.0.0.tgz 這一版本,解壓到本地
bin下 是Kafka所提供的 系 腳本 件, 于幫助我們 地使 Kafka,如啟動窜锯、停 塑煎、創(chuàng)建主題刁品、向Kafka發(fā)送消息,從Kafka接收消息等钦睡。 的windows 錄則提供 windows下的批處 腳本。 config 錄則包含 Kafka所需要的各種配置 件歉甚。 libs 錄包含 Kafka所需的各種jar包皂吮。
site-docs則是各種文檔
我們現(xiàn)在要實現(xiàn)一個簡單的功能:生產(chǎn)者向Kafkaf發(fā)送一條消息,消費者從Kafka接收一條消息
Kafka嚴(yán)重依賴ZooKeeper蒂胞,所以我們現(xiàn)在打開ZooKeeper的官網(wǎng) http://zookeeper.apache.org
下載zookeeper-3.4.11.tar.gz這個版本图呢,然后解壓到本地,然后將conf目錄下的zoo_sample.cfg文件備份骗随,重命名為zoo.cfg蛤织,它是ZooKeeper默認尋找的配置 件名。然后打開zoo.cfg鸿染,將第十二行的內(nèi)容換成本機已知的位置
接下來指蚜,啟動ZooKeeper,進入bin目錄涨椒,然后運行
./zkServer.sh start-foreground
如果提示權(quán)限 ,則先賦予運 該腳本的權(quán)限,執(zhí) 如下命令:
chmod 777 zkServer.sh 然后再來運 啟動ZooKeeper的命令: ./zkServer.sh start-foreground
如果出現(xiàn)提示:operation not permitted: ./zkServer.sh,那么還需要在命令 執(zhí) 如下命令:
xattr -d com.apple.quarantine zkServer.sh
接下來,再執(zhí) 如下命令:
./zkServer.sh start-foreground 這表示以前臺 式啟動ZooKeeper,啟動成功的樣 如下所示:
然后回到Kafka目錄下摊鸡,執(zhí)行命令bin/kafka-server-start.sh config/server.properties
如果還是出現(xiàn)permission denied:,則進 到bin 錄并執(zhí) 如下命令: chmod 777 *.sh
表示賦予bin 錄下所有 件的可執(zhí) 權(quán)限
啟動成功的界 如下所示:
現(xiàn)在zk和Kafka都啟動成功了,現(xiàn)在我們通過Kafka的腳本蚕冬,通過一個生產(chǎn)者向Kafkaf發(fā)送消息免猾,接下來通過一個消費者來接收該消息。
執(zhí) 如下命令:
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic mytest
這樣就成功創(chuàng)建了一個mytest的主題囤热,
接下來向Kafka發(fā)送消息猎提,我們首先啟動生產(chǎn)者,執(zhí)行如下命令
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic mytest
成功后等待我們輸入旁蔼。
接下來我們啟動消費者锨苏,輸入如下命令:
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic mytest --from-beginning
正常情況下應(yīng)該收到消息,但是我這邊報錯牌芋,啟動消費者之后就不停的循環(huán)報錯
然后查找解決方案蚓炬,發(fā)現(xiàn)沒有綁定Kafka啟動監(jiān)聽的host信息,修改
vi config/server.properties
listeners=PLAINTEXT://localhost:9092
然后就可以了