1 系统版本
HBase与Hadoop兼容性查找网站
http://hbase.apache.org/book.html#basic.prerequisites
版本对应很重要,差一点都不行。例如Hadoop3.3.0对应HBase2.3.5就不行
Ubuntu 16.04.3
JDK 1.8.0_291
Hadoop 3.3.0
https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/
HBase 2.3.5
http://archive.apache.org/dist/hbase/
1.1 解压安装包
sudo tar -zxvf jdk-8u291-linux-x64.tar.gz -C /opt
sudo tar -zxvf hadoop-3.2.2.tar.gz -C /opt
sudo tar -zxvf hbase-2.3.5-bin.tar.gz -C /opt
2 配置ssh免密登录
2.1 安装openssh
sudo apt-get update
sudo apt-get install openssh-server
2.2 登陆本机
ssh localhost
退出刚才的 ssh localhost
exit
若没有该目录,请先执行一次ssh localhost
cd ~/.ssh/
会有提示,都按回车就可以
ssh-keygen -t rsa
加入授权
cat ./id_rsa.pub >> ./authorized_keys
以下的命令用于生成SSH密钥值对。复制公钥从id_rsa.pub到authorized_keys,并设置authorized_keys文件的读写权限给所有者。
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
3 配置环境变量
3.1 编辑环境变量
sudo vim ~/.bashrc
3.2 插入如下内容
#set oracle jdk environment
export JAVA_HOME=/opt/jdk1.8.0_291
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:${JAVA_HOME}/jre:$PATH
#set hadoop
export HADOOP_HOME=/opt/hadoop-3.2.2
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_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native
export HADOOP_INSTALL=${HADOOP_HOME}
export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib"
export JAVA_LIBRARY_PATH=${HADOOP_HOME}/lib/native:$JAVA_LIBRARY_PATH
export PATH=$PATH:${HADOOP_HOME}/sbin:${HADOOP_HOME}/bin
#set hbase
export HBASE_HOME=/opt/hbase-2.3.5
export HBASE_CONF_DIR=${HBASE_HOME}/conf
export PATH=${HBASE_HOME}/bin:$PATH
3.3 刷新环境变量
source ~/.bashrc
4 验证Java
java -version
5 配置Hadoop
5.1 添加权限
sudo chmod -R 777 /opt/hadoop-3.2.2/
5.2 修改hadoop-env.sh文件
vim /opt/hadoop-3.2.2/etc/hadoop/hadoop-env.sh
插入
export JAVA_HOME=/opt/jdk1.8.0_291
export HADOOP_HOME=/opt/hadoop-3.2.2
5.3 修改core-site.xml文件
vim /opt/hadoop-3.2.2/etc/hadoop/core-site.xml
在<configuration>标签内插入
<property>
<name>hadoop.tmp.dir</name>
<value>file:/opt/hadoop-3.2.2/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
5.4 修改yarn-site.xml文件
vim /opt/hadoop-3.2.2/etc/hadoop/yarn-site.xml
在<configuration>标签内插入
<property>
<name>mapreduceyarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
5.5 修改mapred-site.xml文件
该文件用于指定MapReduce框架并使用。默认情况下Hadoop包含yarn-site.xml模板。
vim /opt/hadoop-3.2.2/etc/hadoop/mapred-site.xml
在<configuration>标签内插入
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
5.6 修改hdfs-site.xml
hdfs-site.xml文件包含,如:复制数据的值,NameNode的路径,本地文件系统,要存储Hadoop基础架构的Datanode路径的信息
vim /opt/hadoop-3.2.2/etc/hadoop/hdfs-site.xml
在<configuration>标签内插入
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/opt/hadoop-3.2.2/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/opt/hadoop-3.2.2/tmp/dfs/data</value>
</property>
6 验证Hadoop安装
6.1 初始化namenode
hdfs namenode -format
初始化成功后会在/opt/hadoop-3.2.2/tmp/dfs/name下生成current目录
6.2 启动HDFS
/opt/hadoop-3.2.2/sbin/start-dfs.sh
启动完成后,可以通过命令 jps 来判断是否成功启动,若成功启动则会列出如下进程: “NameNode”、”DataNode” 和 “SecondaryNameNode”
jps
6.3 访问Hadoop上的浏览器
http://localhost:9870
访问Hadoop的默认端口号为50070。使用以下网址,以获取Hadoop服务在浏览器中。 http://localhost:50070
无法访问50070端口,原因是3.1.0版本后,50070端口 -> 9870端口了, 访问http://localhost:9870即可
6.4 启动Yarn进程
/opt/hadoop-3.2.2/sbin/start-yarn.sh
启动完成后,可以通过命令 jps 来判断是否成功启动,若成功启动则会列出如下进程: “ResourceManager”和”NodeManager”
jps
也可start-all.sh 一次性启动
/opt/hadoop-3.2.2/sbin/start-all.sh
6.5 访问YARN
7 配置HBase
7.1 添加权限
sudo chmod -R 777 /opt/hbase-2.3.5/
7.2 修改hbase-site.xml文件
vim /opt/hbase-2.3.5/conf/hbase-site.xml
在<configuration>标签内插入
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:9000/hbase</value>
</property>
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
8 启动HBase
8.1 启动服务
/opt/hbase-2.3.5/bin/start-hbase.sh
启动完成后,可以通过命令 jps 来判断是否成功启动,若成功启动则会列出如下进程: “HMaster”
8.2 访问HBase
8.3 测试HBase Shell
打开脚本
hbase shell
调试
status
9 参考鸣谢
一、Ubuntu上安装Hbase - 简书 (jianshu.com)
Linux CentOS7.6 Hadoop3.0.3+HBASE2.1.0单机部署_刘李404not_found的博客-CSDN博客
HBase2.3单机版安装使用 - 简书 (jianshu.com)
10 问题Bug
10.1 使用HBase Shell时,键入status或list,HBase报错
org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is not running yet
问题原因:HBase版本与Hadoop版本不兼容
解决方案:将Hadoop版本3.3.0降级到3.2.2即可
问题反省:一定要注意HBase与Hadoop对应版本,就算官网都是Stable版本,也可能造成不兼容
10.2 启动Hadoop时报错sign_and_send_pubkey: signing failed: agent refused operation
执行
eval "$(ssh-agent -s)"
ssh-add