首先设置Zookeeper和HBase的环境变量,见第一篇文章。
1设置Zookeeper
1.1 修改 conf/zoo.cfg 文件
在master、slave1、slave2这三台机器上,分别输入如下命令:
cd /usr/local/hadoop-2.9.2/zookeeper/conf
vim zoo.cfg
master机器的zoo.cfg文件,修改为如下:
tickTime=2000 initLimit=10 syncLimit=5 dataDir=/usr/local/hadoop-2.9.2/zookeeper/data dataLogDir=/usr/local/hadoop-2.9.2/zookeeper/log clientPort=2181 server.1=0.0.0.0:2888:3888 server.2=slave1:2888:3888 server.3=slave2:2888:3888
slave1机器的zoo.cfg文件,修改为如下:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/hadoop-2.9.2/zookeeper/data
dataLogDir=/usr/local/hadoop-2.9.2/zookeeper/log
clientPort=2181
server.1=master:2888:3888
server.2=0.0.0.0:2888:3888
server.3=slave2:2888:3888
slave2机器的zoo.cfg文件,修改为如下:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/hadoop-2.9.2/zookeeper/data
dataLogDir=/usr/local/hadoop-2.9.2/zookeeper/log
clientPort=2181
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=0.0.0.0:2888:3888
注意,如果使用的zookeeper是3.5以上的版本,需要注意管理控制台的端口,默认为8080。
如果8080端口已经被占用,可以通过如下配置修改zookeeper的控制台的端口,例如可以修改为8880端口:
admin.serverPort=8880
1.2 增加data/myid文件
在master机器上:
cd /usr/local/hadoop-2.9.2/zookeeper/data
touch myid
打开myid文件,里面输入一个单独的数字:1。
在slave1r机器上:
cd /usr/local/hadoop-2.9.2/zookeeper/data
touch myid
打开myid文件,里面输入一个单独的数字:2。
在slave2r机器上:
cd /usr/local/hadoop-2.9.2/zookeeper/data touch myid
打开myid文件,里面输入一个单独的数字:3。
1.3启动三台机器的zookeeper
在三台机器分别执行如下命令,可以对zookeeper进行控制:
cd /usr/local/hadoop-2.9.2/zookeeper/bin #启动 ./zkServer.sh start #查看状态 ./zkServer.sh status #关闭 ./zkServer.sh stop
2配置HBase
2.1将Hadoop的配置文件拷贝到HBase的目录中
在三台机器上分别执行如下命令,将Hadoop的配置文件拷贝到HBase的conf目录中:
cp /usr/local/hadoop-2.9.2/etc/hadoop/hdfs-site.xml /usr/local/hadoop-2.9.2/hbase-1.4.6/conf/
cp /usr/local/hadoop-2.9.2/etc/hadoop/core-site.xml /usr/local/hadoop-2.9.2/hbase-1.4.6/conf/
2.2创建相关目录
在三天机器上检查如下目录是否存在,如果不存在则执行如下命令,创建目录
cd /usr/local/hadoop-2.9.2/hbase-1.4.6
mkdir logs
mkdir pids
并设置读写权限。
2.3修改HBase中conf/hbase-env.sh文件
三台机器相同,内容如下:
export JAVA_HOME=/usr/local/jdk1.8.0_261 export HBASE_CLASSPATH=/usr/local/hadoop-2.9.2/etc/hadoop export HBASE_MANAGES_ZK=false #//此配置单独指定zookeeper,设为true使用自带zookeeper export HBASE_HOME=/usr/local/hadoop-2.9.2/hbase-1.4.6 export HBASE_LOG_DIR=${HBASE_HOME}/logs export HBASE_REGIONSERVERS=${HBASE_HOME}/conf/regionservers export HBASE_PID_DIR=${HBASE_HOME}/pids
2.3创建conf/regionservers文件
三台机器相同,如文件不存在,则创建conf/regionservers文件,内容如下:
ubuntu@master ubuntu@slave1 ubuntu@slave2
2.3设置conf/hbase-site.xml文件
三台机器设置略有不同,下面分别来说:
master机器上内容如下:
<configuration> <property> <name>hbase.rootdir</name> <value>hdfs://master:9000/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>hbase.zookeeper.property.clientPort</name> <value>2181</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/usr/local/hadoop-2.9.2/zookeeper/data</value> </property> <property> <name>hbase.master.info.port</name> <value>60010</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>0.0.0.0,slave1,slave2</value> </property> </configuration>
slave1 机器上内容如下:
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/local/hadoop-2.9.2/zookeeper/data</value>
</property>
<property>
<name>hbase.master.info.port</name>
<value>60010</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master,0.0.0.0,slave2</value>
</property>
</configuration>
slave2 机器上内容如下:
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/local/hadoop-2.9.2/zookeeper/data</value>
</property>
<property>
<name>hbase.master.info.port</name>
<value>60010</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master,slave1,0.0.0.0</value>
</property>
</configuration>
3启动HBase集群
启动和关闭集群命令如下:
cd /usr/local/hadoop-2.9.2/hbase-1.4.6/bin #启动集群 ./start-hbase.sh (HMaster HRegionServer) ./hbase-daemon.sh start master ./hbase-daemon.sh start regionserver #关闭集群 ./stop-hbase.sh ./hbase-daemon.sh stop master ./hbase-daemon.sh stop regionserver
集群启动后,可以通过此地址查看HBase集群状态:
http://master公网IP:60010/
输入hbase shell 可以进入HBase的控制台,执行相关查询操作。
至此HBse配置完毕。