在Ubuntu上集成Zookeeper和Hadoop涉及多個步驟,包括安裝和配置這兩個系統。以下是一個基本的集成指南:
Zookeeper是用Java編寫的,所以首先需要在你的Ubuntu系統上安裝Java。
sudo apt update
sudo apt install openjdk-11-jdk
java -version
從Apache Zookeeper的官方網站下載最新版本的Zookeeper,并解壓到你的服務器上。
wget https://downloads.apache.org/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz
tar -xzvf apache-zookeeper-3.7.0-bin.tar.gz -C /opt
為每個Zookeeper節點創建一個配置文件。假設你有三個節點,分別是node1, node2, node3。
mkdir -p /var/lib/zookeeper/node1
mkdir -p /var/log/zookeeper/node1
mkdir -p /var/lib/zookeeper/node2
mkdir -p /var/log/zookeeper/node2
mkdir -p /var/lib/zookeeper/node3
mkdir -p /var/log/zookeeper/node3
為每個節點創建一個配置文件,例如/etc/zookeeper/conf/node1.cfg。
cp /opt/apache-zookeeper-3.7.0-bin/conf/zoo_sample.cfg /etc/zookeeper/conf/node1.cfg
編輯node1.cfg文件:
nano /etc/zookeeper/conf/node1.cfg
修改以下配置:
tickTime 2000
dataDir /var/lib/zookeeper/node1
clientPort 2181
initLimit 5
syncLimit 2
server.1 node1:2888:3888
server.2 node2:2888:3888
server.3 node3:2888:3888
重復上述步驟,為node2和node3創建配置文件,并相應地修改配置。
在每個節點的數據目錄中創建一個myid文件,用于標識節點ID。
echo "1" > /var/lib/zookeeper/node1/myid
echo "2" > /var/lib/zookeeper/node2/myid
echo "3" > /var/lib/zookeeper/node3/myid
在每個節點上啟動Zookeeper服務。
/opt/apache-zookeeper-3.7.0-bin/bin/zkServer.sh start
在任意一個節點上檢查Zookeeper集群的狀態。
/opt/apache-zookeeper-3.7.0-bin/bin/zkServer.sh status
你應該能看到類似以下的輸出:
ZooKeeper JMX enabled by default
Using config: /opt/apache-zookeeper-3.7.0-bin/conf/zoo.cfg
Mode: follower
確保防火墻允許Zookeeper節點之間的通信。
sudo ufw allow 2181/tcp
sudo ufw allow 2888/tcp
sudo ufw allow 3888/tcp
在Hadoop的配置文件中,需要指定Zookeeper的地址。編輯Hadoop的配置文件(如core-site.xml, hdfs-site.xml等),添加Zookeeper的地址。
例如,在core-site.xml中添加:
<property>
<name>fs.defaultFS</name>
<value>zookeeper://node1:2181,node2:2181,node3:2181/hadoop</value>
</property>
在hdfs-site.xml中添加:
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
在NameNode節點上執行格式化命令:
hdfs namenode -format
然后啟動HDFS和YARN集群:
./sbin/start-dfs.sh
./sbin/start-yarn.sh
通過Web界面查看Hadoop集群的狀態,或者使用命令行工具檢查各個服務的運行情況。
jps
訪問Hadoop的Web界面:http://namenode-host:9000
以上步驟提供了一個基本的Zookeeper與Hadoop集成的流程。在實際操作中,可能還需要根據具體的環境和需求進行相應的調整。