hbase2.2.4+hadoop2.8.5集群搭建教程(附帶安裝文件)
測試安裝環(huán)境centos8
直接開始
1.下載所需資源(自己找!!!)
- hbase2.2.4安裝包
- hadoop2.8.5安裝包
- snappy編譯后的庫
- jdk安裝包(最好8以上)
2. 開始安裝
安裝前需要對集群內(nèi)幾臺機器配置<font color="red">免密登錄</font>颗祝,因為hbase會使用遠程啟動集群內(nèi)的服務(wù)。這里不說了自己找吧,挺簡單的螺戳。
**另外一個就是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'
# 創(chuàng)建安裝目錄
mkdir -m 755 -p ${INSTALL_DIR}
# 解壓安裝包
tar -zxvf $INSTALL_DIR/$JDK_PACKAGE_NAME -C $INSTALL_DIR
# 配置環(huán)境變量
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 解壓縮然后配置環(huán)境就能用凤藏。
注意如果你直接運行這個腳本可能java命令還是不可用奸忽,得通過source 腳本名.sh執(zhí)行腳本。 腳本里面的source /etc/profile才會生效揖庄,不然就得在控制臺再來一次source /etc/profile栗菜。
2.2 安裝snappy
snappy是谷歌提供一種高壓縮率工具,hadoop使用snappy壓縮后蹄梢,壓縮率可達6倍疙筹。表數(shù)據(jù)壓縮前是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的腳本文件
修改關(guān)鍵點:
export JAVA_HOME=/data/jdk1.8.0_231
export HADOOP_PID_DIR=${HADOOP_PID_DIR}
每個啟動的腳本都配置一下java_home防止讀不到環(huán)境變量,還有配一下HADOOP_PID_DIR们豌。因為默認pid文件存在/tmp目錄下涯捻,系統(tǒng)如果重啟或者誤操作等其他原因會導(dǎo)致pid文件丟失。這樣就無法通過腳本關(guān)閉hadoop的進程望迎。所以自己配置一個不會被誤操作的目錄好點障癌。hbase重啟是個很惡心的問題。
- yarn-env.sh 啟動yarn的腳本文件
同上辩尊,配置一下jdk和pid的位置 - slaves 配置集群有幾個機器
寫主機名涛浙,沒有主機名的配置一下主機名。我附帶的配置里面默認了主機名是hbase001 hbase002 hbase003 - core-site.xml 基礎(chǔ)配置文件
- yarn-site.xml yarn的配置文件
- hdfs-site.xml hdfs的配置文件
- mapred-site.xml mapreduce的配置文件
這幾個xml的配置可以自行百度摄欲,根據(jù)自己的主機名替換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不需要啟動。
需要導(dǎo)入導(dǎo)出時才會用到y(tǒng)arn
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里面配置了的
我提供了參考的配置文件腳本贬蛙,一鍵執(zhí)行可以配置成功。配置好一臺之后直接scp到其他兩臺服務(wù)器就可以啟動谚攒。
5. 啟動hbase
啟動順序阳准,保證zk可用,先啟動hadoop馏臭,再啟動hbase野蝇。
啟動之前先說明一下,我的配置文件中指定了hbase001是hadoop的namenode括儒,hbase002是hadoop的備份備份namenode绕沈,也就說有兩個namenode。
第一次啟動先執(zhí)行hadoop目錄下的sbin/start-dfs.sh啟動dfs帮寻,然后執(zhí)行
hdfs namenode -format初始化namenode
執(zhí)行后會在data目錄下生成一些文件乍狐,我們把 /data/softwares/hadoop-2.8.5/data/dfs/name 這個整個文件夾 scp到hbase002 同目錄下。然后執(zhí)行
hdfs zkfc -formatZK 對zkfc進行初始化固逗。
都完成之后執(zhí)行sbin/stop-dfs.sh 關(guān)閉dfs浅蚪。(因為之前沒格式化不會啟動成功的)
現(xiàn)在再執(zhí)行一下sbin/start-dfs.sh 就可以啟動dfs了,完成之后輸入瀏覽器輸入http://hbase001:50070
可以查看hadoop的namenode狀態(tài).
因為配置了高可用抒蚜,有兩個namenode掘鄙,所以查看hbase001:50070發(fā)現(xiàn)這個namenode不是active的話,
需要ssh到hbase002下嗡髓,執(zhí)行hbase002的hadoop目錄下的sbin/hadoop-daemons.sh stop zkfc操漠。把hbase002的zkfc關(guān)閉,那么hbase001就會變成active狀態(tài)饿这。然后在啟動回來就行了 sbin/hadoop-daemons.sh start zkfc
現(xiàn)在hadoop啟動完成浊伙。
然后再到hbase目錄下執(zhí)行bin/start-hbase.sh就搞定了。
可在瀏覽器查看 http://hbase001:16010
控制臺可以 hbase shell進入hbase长捧,玩一下創(chuàng)建表和查數(shù)據(jù)了
附帶資源嚣鄙。
鏈接: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"
# 環(huán)境變量配置
cat $BASE_DIR/profile >> /etc/profile
source /etc/profile