尝试学习搭建Hbase环境(2)
接着上一次的进程。
我已经搭建好了Hadoop环境,然后我要安装ZooKeeper(安装包也是在本机下载然后通过final shell传输进入虚拟机):
tar -zxvf apache-zookeeper-3.8.5-bin.tar.gz
修改zoo.cfg:
dataDir=/home/hadoop/zookeeper/data
clientPort=2181
# 单机模式,只有一个服务器
server.1=localhost:2888:3888
配置环境变量
编辑~/.bashrc,添加:
export ZOOKEEPER_HOME=/home/hadoop/hadoop/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
使配置生效:
source ~/.bashrc
启动ZooKeeper:
zkServer.sh start
检查状态
zkServer.sh status
接下来安装Hbase:
tar -zxvf hbase-2.4.16-bin.tar.gz
编辑~/.bashrc,添加:
export HBASE_HOME=/home/hadoop/hadoop/hbase
export PATH=$PATH:$HBASE_HOME/bin
使配置生效:
source ~/.bashrc
配置hbase-env.sh:
export JAVA_HOME=/usr/local/java/jdk1.8.0_471
export HBASE_MANAGES_ZK=false # 使用外部ZooKeeper
配置hbase-site.xml:
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>localhost</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/hadoop/zookeeper/data</value>
</property>
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
</configuration>
接下来就尝试启动hbase:
start-hbase.sh
输入jps应该能看到这些进程:HMaster, HRegionServer, HQuorumPeer(zookeeper需要在这之前打开)
测试HBase
hbase shell
status
这之后应该能看到正确的进程。
还有可能的问题:
我在把jdk11换成jdk8之后还是有Netty异步文件系统的反射问题,我选择了禁用异步WAL的方法:
这个方法不是对所有版本都有用,我在之前的练习中,使用hadoop-3.4.2.tar.gz版本的Hadoop,禁用异步WAL后依旧无法正常使用hbase。
现在我的Hadoop是3.3.6,经过测试,这个版本是可以的。
# 编辑hbase-site.xml
nano /usr/local/hbase/conf/hbase-site.xml
添加以下配置:
<property>
<name>hbase.wal.provider</name>
<value>filesystem</value> <!-- 使用同步文件系统WAL -->
</property>
<property>
<name>hbase.regionserver.hlog.sync.impl</name>
<value>org.apache.hadoop.hbase.regionserver.wal.FSHLog</value>
</property>
之后就可以正常使用hbase了。(也有可能有更多的漏洞,需要我继续学习来找出)

浙公网安备 33010602011771号