安装 Hbase 之前需要先安装 hdfs 和 zookeeper
本次安装的版本匹配:hadoop3.3.6+hbase2.4.5+zookeeper3.5.9
一、WSL2 安装 hdfs
1、安装 Java
(1)更新软件包列表
sudo apt update
(2)安装 OpenJDK8
sudo apt install openjdk-8-jdk
(3)验证
java -version
2、下载 hadoop3.3.6 压缩包
wget 下载
# 下载
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
# 解压
tar -xzvf hadoop-3.3.6.tar.gz
手动点击 Index of /dist/hadoop/core/hadoop-3.3.6 下载,解压之后复制到 WSL 上
3、配置环境变量
(1)打开 .bashrc
sudo nano ~/.bashrc
(2)添加以下内容
export HADOOP_HOME=/home/yzl/hadoop/hadoop-3.3.6
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
按 Ctrl+O 再按 Enter 保存,按 Ctrl+X 退出
(3)刷新环境变量
source ~/.bashrc
4、修改配置文件
进入目标目录
cd $HADOOP_HOME/etc/hadoop
(1)hadoop-env.sh 文件添加
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
(2)yarn-env.sh 文件添加
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
(3)core-site.xml 文件添加
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
(4)hdfs-site.xml 文件添加
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>file:///home/yzl/hadoop/hadoop-3.3.6/hdfs/namenode</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>file:///home/yzl/hadoop/hadoop-3.3.6/hdfs/datanode</value>
</property>
</configuration>
改为自己的路径
(5)mapred-site.xml 文件添加
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
(6)yarn-site.xml 文件添加
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
5、格式化 namenode
hdfs namenode -format
6、启动
start-dfs.sh
start-yarn.sh
7、检查是否启动
jps
二、WSL2 安装 zokeeper
1、下载 zookeeper3.5.9 压缩包
curl 下载
# 下载
curl -O https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9-bin.tar.gz
# 解压
tar -xzvf apache-zookeeper-3.5.9-bin.tar.gz
手动点击 Index of /dist/zookeeper/zookeeper-3.5.9 下载,然后复制到 WSL 上
2、配置环境变量
(1)打开 .bashrc
sudo nano ~/.bashrc
(2)添加
export ZOOKEEPER_HOME=/home/yzl/zk/zk-3.5.9
export PATH=$PATH:$ZOOKEEPER_HOME/bin
export HBASE_MANAGES_ZK=false
export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP="true"
按 Ctrl+O 再按 Enter 保存,按 Ctrl+X 退出
(3)刷新环境变量
source ~/.bashrc
3、修改配置文件
(1)先备份
cd $ZOOKEEPER_HOME/conf
cp zoo_sample.cfg zoo.cfg
(2)再修改zoo.cfg
nanao zoo.cfg
添加以下内容
dataDir=/home/yzl/zk/zkdata-3.5.9/data
dataLogDir=/home/yzl/zk/zkdata-3.5.9/logs
# the port at which the clients will connect
clientPort=2181
tickTime=2000
initLimit=10
syncLimit=5
maxClientCnxns=60
# 例如,设置为 60 秒
sessionTimeout=60000
(3)然后创建数据目录
mkdir /home/yzl/zk/zkdata-3.5.9
4、启动
# 启动
zkServer.sh start
# 查看状态
zkServer.sh status
#停止
zkServer.sh stop
# 命令行
zkCli.sh
三、WSL2 安装 Hbase
1、下载 hbase2.4.5 压缩包
curl 下载
# 下载
curl -O https://downloads.apache.org/hbase/2.4.5/hbase-2.4.5-bin.tar.gz
# 解压
tar -xzvf hbase-2.4.5-bin.tar.gz
手动点击 Index of /dist/hbase/2.4.5 下载,解压后复制到 WSL 上
2、配置环境变量
(1)打开 .bashrc
sudo nano ~/.bashrc
(2)添加
export HBASE_HOME=/home/yzl/hbase/hbase-2.4.5
export HBASE_CLASSPATH=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:${HBASE_HOME}/bin:${HBASE_HOME}/sbin
按 Ctrl+O 再按 Enter 保存,按 Ctrl+X 退出
(3)刷新环境变量
source ~/.bashrc
3、修改配置文件
# 进入目录
cd /home/yzl/hbase/hbase-2.4.5/conf
(1)hbase-env.sh 文件添加
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export HBASE_HOME=/home/yzl/hbase/hbase-2.4.5
export HADOOP_HOME=/home/yzl/hadoop/hadoop-3.3.6
export HBASE_MANAGES_ZK=false
export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP="true"
按 Ctrl+O 再按 Enter 保存,按 Ctrl+X 退出
(2)hbase-site.xml 文件添加
<configuration>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:9000/hbase</value>
</property>
<property>
<name>hbase.log.dir</name>
<value>/home/yzl/hbase/hbase-2.4.5/logs</value>
</property>
<!-- ZooKeeper的地址 -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>localhost</value>
</property>
<property>
<name>hbase.master</name>
<value>localhost:16000</value>
</property>
<!-- ZooKeeper快照的存储位置 -->
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/yzl/zk/data</value>
</property>
<property>
<name>hbase.tmp.dir</name>
<value>./tmp</value>
</property>
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
<property>
<name>hbase.wal.provider</name>
<value>filesystem</value>
</property>
</configuration>
4、复制jar包
备份hbase的jar包到安全目录
用hadoop的jar包替换hbase的jar包
5、启动
# 启动hadoop
start-dfs.sh
start-yarn.sh
# 启动zookeeper
zkServer.sh start
# 启动hbase
start-hbase.sh
# 验证Hbase是否启动成功
hbase shell
# 进入shell之后查看节点状态
status
四、问题与解决
1、查看 datanode 是否正常
hdfs dfsadmin -report
2、版本匹配
hadoop3.3.6+hbase2.4.5+zookeeper3.5.9
3、hbase 的 hmaster 启动不了或者启动一会自动关闭
版本兼容问题,hbase2.1.0+hadoop2.7.1+zookeeper3.4.10 或hadoop3.3.6+hbase2.4.5+zookeeper3.5.9,先格式化:hdfs namenode -format,然后 start-dfs.sh,start-yarn.sh,最后启动 start-hbase.sh
4、遇到没有hmaste的情况
清除 datanode 的数据,然后格式化 hdfs namenode -format
5、遇到服务器未启动的错误
检查配置文件
备份 hbase 的 jar 包到安全目录
使用 hadoop 的jar包替换hbase的jar包
修改 hbase-env.sh 内容
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export HBASE_HOME=/home/yzl/hbase/hbase-2.4.5
export HADOOP_HOME=/home/yzl/hadoop/hadoop-3.3.6
export HBASE_MANAGES_ZK=false
export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP="true"
6、java api 连接不上 hbase
在远程 wsl 上跑 java 程序(添加 hadoop 本地库和环境变量)