1. 程式人生 > >初識HBase

初識HBase

正常 glib fire pan 找到 cnblogs 上傳 生效 mct

  現如今,分布式架構大行其道,實際項目中使用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