hbase2.2.4+hadoop2.8.5集群搭建教程(附带安装文件)
测试安装环境centos8
直接开始
1.下载所需资源(自己找!!!)
- hbase2.2.4安装包
- hadoop2.8.5安装包
- snappy编译后的库
- jdk安装包(最好8以上)
2. 开始安装
安装前需要对集群内几台机器配置<font color="red">免密登录</font>,因为hbase会使用远程启动集群内的服务。这里不说了自己找吧,挺简单的。
**另外一个就是zookeeper最好也搭建一个集群,挺简单的我这里也不说了 **
2.1 安装jdk
jdk安装就不多说了。我附带的文件中有安装文件和脚本。直接看脚本
#!/bin/bash
# 安装目录
INSTALL_DIR='/data'
# JDK 版本
JDK_VERSION='jdk1.8.0_231'
# jdk安装包名称
JDK_PACKAGE_NAME='jdk-8u231-linux-x64.tar.gz'
# 创建安装目录
mkdir -m 755 -p ${INSTALL_DIR}
# 解压安装包
tar -zxvf $INSTALL_DIR/$JDK_PACKAGE_NAME -C $INSTALL_DIR
# 配置环境变量
echo "export JAVA_HOME=${INSTALL_DIR}/${JDK_VERSION}" >> /etc/profile
echo "export CLASSPATH=\$JAVA_HOME/lib" >> /etc/profile
echo "export PATH=\$JAVA_HOME/bin:\$PATH" >> /etc/profile
# 保存配置
source /etc/profile
安装成功后的目录是/data/jdk1.8.0_231
可以自行替换jdk的版本文件,改一下目录就可以了。实际上就是tar zxvf 解压缩然后配置环境就能用。
注意如果你直接运行这个脚本可能java命令还是不可用,得通过source 脚本名.sh执行脚本。 脚本里面的source /etc/profile才会生效,不然就得在控制台再来一次source /etc/profile。
2.2 安装snappy
snappy是谷歌提供一种高压缩率工具,hadoop使用snappy压缩后,压缩率可达6倍。表数据压缩前是20G,那么配置压缩后空间占用就只有3-4G。
# 安装snappy
yum install -y automake autoconf gcc-c++ cmake libedit libtool
tar -zxvf snappy-1.1.4.tar.gz
cd snappy-1.1.4
./configure
make && make install
集群里面有几台机器,那么几台机器都要安装好jdk snappy这些必须的东西。
3. 安装hadoop
直接解压官方的安装包
主要是配置文件。最重要的文件在hadoop目录下的 etc/hadoop 文件夹下。
主要文件为:
- hadoop-env.sh 启动dfs的脚本文件
修改关键点:
export JAVA_HOME=/data/jdk1.8.0_231
export HADOOP_PID_DIR=${HADOOP_PID_DIR}
每个启动的脚本都配置一下java_home防止读不到环境变量,还有配一下HADOOP_PID_DIR。因为默认pid文件存在/tmp目录下,系统如果重启或者误操作等其他原因会导致pid文件丢失。这样就无法通过脚本关闭hadoop的进程。所以自己配置一个不会被误操作的目录好点。hbase重启是个很恶心的问题。
- yarn-env.sh 启动yarn的脚本文件
同上,配置一下jdk和pid的位置 - slaves 配置集群有几个机器
写主机名,没有主机名的配置一下主机名。我附带的配置里面默认了主机名是hbase001 hbase002 hbase003 - core-site.xml 基础配置文件
- yarn-site.xml yarn的配置文件
- hdfs-site.xml hdfs的配置文件
- mapred-site.xml mapreduce的配置文件
这几个xml的配置可以自行百度,根据自己的主机名替换hbase001 hbase002 hbase003就行
重要的点:
<property>
<name>ha.zookeeper.quorum</name>
<value>hbase001:2181,hbase002:2181,hbase003:2181</value>
</property>
这里配置了zookeeper的地址是主机名:端口,如果你的zookeeper不在这里,需要自己修改
这里说明一下为什么分hdfs和yarn。
如果你只是用hbase增删改查,不进行import export等操作,直接启动hdfs就行了,yarn不需要启动。
需要导入导出时才会用到yarn
4. 安装hbase
同上还是解压然后改配置,重要配置是conf目录下
- regionservers 集群有几台机器就写几台的主机名
- hbase-env.sh 启动hbase脚本
主要还是修改jdk和pid等,我附带的脚本中有修改snappy的配置,一个比较重要的是
export HBASE_MANAGES_ZK=false
这个配置表示不使用hbase自带的zk。 - hbase-site.xml
都是一些配置端口等信息,注意一个地方
<property>
<!--RegionServer 的共享目录,用来持久化 Hbase-->
<name>hbase.rootdir</name>
<value>hdfs://hbase001:9000/hbase</value>
</property>
这是配置hbase文件持久化的方式,填写hdfs表示使用hdfs作为存储方式。里面的hbase001:9000是在hadoop里面配置了的
我提供了参考的配置文件脚本,一键执行可以配置成功。配置好一台之后直接scp到其他两台服务器就可以启动。
5. 启动hbase
启动顺序,保证zk可用,先启动hadoop,再启动hbase。
启动之前先说明一下,我的配置文件中指定了hbase001是hadoop的namenode,hbase002是hadoop的备份备份namenode,也就说有两个namenode。
第一次启动先执行hadoop目录下的sbin/start-dfs.sh启动dfs,然后执行
hdfs namenode -format初始化namenode
执行后会在data目录下生成一些文件,我们把 /data/softwares/hadoop-2.8.5/data/dfs/name 这个整个文件夹 scp到hbase002 同目录下。然后执行
hdfs zkfc -formatZK 对zkfc进行初始化。
都完成之后执行sbin/stop-dfs.sh 关闭dfs。(因为之前没格式化不会启动成功的)
现在再执行一下sbin/start-dfs.sh 就可以启动dfs了,完成之后输入浏览器输入http://hbase001:50070
可以查看hadoop的namenode状态.
因为配置了高可用,有两个namenode,所以查看hbase001:50070发现这个namenode不是active的话,
需要ssh到hbase002下,执行hbase002的hadoop目录下的sbin/hadoop-daemons.sh stop zkfc。把hbase002的zkfc关闭,那么hbase001就会变成active状态。然后在启动回来就行了 sbin/hadoop-daemons.sh start zkfc
现在hadoop启动完成。
然后再到hbase目录下执行bin/start-hbase.sh就搞定了。
可在浏览器查看 http://hbase001:16010
控制台可以 hbase shell进入hbase,玩一下创建表和查数据了
附带资源。
链接:https://pan.baidu.com/s/184KO8A3uktYlkm0ui9-How?pwd=6pvu
提取码:6pvu
安装脚本
#!/bin/bash
# 主要文件的目录
BASE_DIR="/data"
BASE_SOFTWARE_DIR=$BASE_DIR/softwares
mkdir -p $BASE_SOFTWARE_DIR
tar zxf hbase_2.2.4-install.tar.gz
# 安装jdk
chmod 755 install-jdk.sh
source install-jdk.sh
echo -e "\033[32m jdk install success \033[0m"
# 安装snappy
echo "ready to install snappy"
yum install -y automake autoconf gcc-c++ cmake libedit libtool
tar -zxvf snappy-1.1.4.tar.gz
cd snappy-1.1.4
./configure
make && make install
# 返回主要目录
cd $BASE_DIR
# 安装hadoop
echo "ready to install hadoop"
cd $BASE_DIR/hbase-installer
tar zxf hadoop-2.8.5.tar.gz
mv -f hadoop-2.8.5 $BASE_SOFTWARE_DIR
cd $BASE_SOFTWARE_DIR/hadoop-2.8.5
# 先同步阿里云的hadoop配置到当前
/usr/bin/cp -rf $BASE_DIR/hbase-installer/hbase_conf/etc/hadoop etc
# 修改hadoop配置
# hadoop-env.sh
echo "export LD_LIBRARY_PATH=/data/softwares/hadoop-2.8.5/lib/native:/usr/local/lib/" >> etc/hadoop/hadoop-env.sh
# mapred-site.xml
(echo '51r /data/hbase-installer/hbase_conf/hadoop/mapred-site'; echo 'wq') |ed -s etc/hadoop/mapred-site.xml
# core-site
(echo '65r /data/hbase-installer/hbase_conf/hadoop/core-site'; echo 'wq') |ed -s etc/hadoop/core-site.xml
# 拷贝snappy的jar包
/usr/bin/cp -f /data/hbase-installer/hbase_conf/hadoop-snappy-0.0.1-SNAPSHOT.jar lib
# 拷贝snappy的so文件
/usr/bin/cp -f /data/hbase-installer/hbase_conf/Linux-amd64-64/* lib/native/
echo -e "\033[32m hadoop install success \033[0m"
# 安装hbase
echo "ready to install hbase"
cd $BASE_DIR/hbase-installer
tar zxf hbase-2.2.4-bin.tar.gz
mv -f hbase-2.2.4 $BASE_SOFTWARE_DIR
cd $BASE_SOFTWARE_DIR/hbase-2.2.4
# 先同步阿里云的hbase配置到当前
/usr/bin/cp -f $BASE_DIR/hbase-installer/hbase_conf/conf/* conf
# 修改hbase配置
# hbase-env.sh
echo "export LD_LIBRARY_PATH=/data/softwares/hadoop-2.8.5/lib/native:/usr/local/lib/" >> conf/hbase-env.sh
# hbase-site.xml
(echo '82r /data/hbase-installer/hbase_conf/hbase/hbase-site'; echo 'wq') |ed -s conf/hbase-site.xml
echo -e "\033[32m hbase install success \033[0m"
# 环境变量配置
cat $BASE_DIR/profile >> /etc/profile
source /etc/profile
网友评论