初識HBase
現如今,分布式架構大行其道,實際項目中使用HBase也是比比皆是。雖說自己在分布式方面接觸甚少,但作為程序猿還是需要不斷的給自己充電的。網上搜索了一些教程,還是覺得《HBase權威指南》不錯,原版有第二版了,可惜沒找到。這本書雖說舊了點,入門應該還是不錯的。
我是在Win10系統用VMware 12裝了一臺CentOS 7的虛擬機,使用Xshell 5遠程管理,使用的HBase 1.2.6版本。
一,XShell連接CentOS
1,VMWare 12安裝 CentOS參見:vmware12安裝centos7系統詳解
2,進入CentOS,點擊應用程序-->終端進入命令模式
3,輸入ifconfig,查看Linux的IP地址。然後就可以通過XShell 5新建連接訪問了。
註:如果如下圖所示只有ens33,並且沒有顯示IP地址,依照下面步驟處理
(1)執行su root命令切換到root用戶權限下
(2)執行vi /etc/sysconfig/network-scripts/ifcfg-ens33命令,打開配置文件。點擊I鍵打開INSERT模式,然後將ONBOOT的值改為yes,然後點擊ESC鍵返回,再輸入:wq保存並退出,最後reboot重啟即可。
二,安裝好CentOS 7之後,系統自帶了OpenJDK,需要卸載並安裝Sun的JDK1.8
1,用Xshell 5連接CentOS ,執行java -version,可以看到系統自帶的是openjdk的1.8.0_131
2,輸入rpm -qa | grep java,顯示如下信息
3,依次輸入如下命令卸載JKD(先卸載不帶headless的)
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.141-2.6.10.5.el7.x86_64 rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.141-2.6.10.5.el7.x86_64 rpm -e --nodeps java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64 rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.131-11.b12.el7.x86_64
4,成功卸載OpenJDK,再次輸入java -version會出現如下提示
5,oracle官網下載jdk-8u144-linux-i586.tar.gz,並通過Xshell 5的文件傳輸工具上傳到/usr/java路徑,執行cd /usr/java和tar -zxvf jdk-8u144-linux-i586.tar.gz命令解壓縮JDK
6,輸入vi /etc/profile打開配置文件,在下圖位置插入,保存退出。然後執行source /etc/profile使環境變量生效。
JAVA_HOME=/usr/java/jdk1.8.0_144 JRE_HOME=/usr/java/jdk1.8.0_144/jre PATH=$JAVA_HOME/bin:$PATH CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib export PATH JAVA_HOME CLASSPATH
註:如輸入java -version,出現下圖錯誤,需要先執行命令
sudo yum install glibc.i686
三,安裝HBase
1,HBase官方網站下載hbase-1.2.6-bin.tar.gz,利用Xshell的文件傳輸工具將文件上傳到CentOS的usr的local文件夾下。執行下面命令解壓縮(解壓後的文件夾名字為hbase-1.2.6,我改成了hbase)
cd /usr/local tar -zxvf hbase-1.2.6-bin.tar.gz
2,輸入如下命令啟動hbase。(圖中關於JDK的提示可以忽略)
cd /usr/local/hbase bin/start-hbase.sh
3,在CentOS中,打開火狐瀏覽器訪問http://localhost:16010/可以進入HBase管理後臺
註:此時遠程通過http://192.168.30.128:16010/還訪問不了,原因是防火墻的原因
systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall開機啟動
4,此時,HBase已經可以正常使用了。
註:此時雖然可以正常運行了,數據默認存在file:///tmp/hbase-${user.name}/hbase。數據會在重啟後丟失。需要修改hbase-site.xml的節點。
<configuration> <property> <name>hbase.rootdir</name> <value>file:/usr/local/hbase</value> </property> </configuration>
初識HBase