Hbase學習文檔(超詳細單機安裝)

Hbase學習文檔(超詳細單機安裝)

一、前言
1.1簡述
本文分爲五個部分:linux主機名的設置、jdk的安裝、hadoop的安裝、單機模式下hbase的安裝、hbase的shell常用命令及java實例。
1.2環境要求
本文使用系統環境:centOS6.5,hadoop-2.5.2,hbase-0.98.13-hadoop2-bin,jdk1.8;
可能需要用到的window軟件:SwitchHosts(若使用雲服務器,則可以使用與ip綁定的域名作爲主機名)。

二、linux主機名的設置
2.1 臨時修改hostname
注:如果是雲服務器推薦使用域名作爲主機名,如果是虛擬機可以自定義.

# hostname hbase.domain

在這裏插入圖片描述
2.2 永久修改hostname

# vi /etc/sysconfig/network

結果如下:
在這裏插入圖片描述
2.3 配置Host

# vi /etc/hosts

結果如下:
在這裏插入圖片描述
若配置完,沒生效可以重啓服務器
2.4 防火牆設置
本文推薦自己設置防火牆入棧規制,不要直接關閉防火牆.本文只是學習,所以在這裏選擇關閉防火牆,若是要直接使用的話最好不要關閉防火牆.
查看防火牆狀態:

# service iptables status

臨時關閉防火牆:

# service iptables stop

永久關閉防火牆:

# chkconfig iptables off

在這裏插入圖片描述

三、jdk的安裝
在確保linux系統本身沒有安裝jdk的時候,執行下面步驟:
3.1 上傳jdk
將jdk-8u171-linux-x64.tar.gz這個文件上傳到linux虛擬機然後,解壓到/opt/modules/這個目錄下,若沒有這個目錄可以用mkdir -p,創建目錄。
在這裏插入圖片描述
在這裏插入圖片描述
3.2 解壓jdk

# tar -zxvf jdk-8u171-linux-x64.tar.gz  -C  /opt/modules/

在這裏插入圖片描述
3.3 配置環境變量

# vi /etc/profile

在末尾行添加

# set java environment
JAVA_HOME=/opt/modules/jdk1.8.0_171
CLASSPATH=.:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH

在這裏插入圖片描述

# source /etc/profile  使更改的配置立即生效
# java -version 驗證結果是否正確

在這裏插入圖片描述

四、hadoop的安裝
4.1 驗證hadoop是否已經安裝.

# hadoop version

如果一切正常,會得到下面的輸出:
在這裏插入圖片描述
如果系統上是無法找到 Hadoop,那麼證明還未安裝.
4.2 開始安裝hadoop
4.2.1上傳hadoop-2.5.2.tar.gz到/root目錄下:
在這裏插入圖片描述
4.2.2 將文件解壓到/opt/modules/hadoopstandalone/目錄下:

# tar -zxvf /root/hadoop-2.5.2.tar.gz -C /opt/modules/hadoopstandalone/

在這裏插入圖片描述
4.2.3 配置Hadoop環境變量
可以通過附加下面的命令在 〜/etc/profile文件中以設置 Hadoop 環境變量。

export HADOOP_HOME=/opt/modules/hadoopstandalone/hadoop-2.5.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 PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_INSTALL=$HADOOP_HOME

在這裏插入圖片描述
#source /etc/profile 可以使配置立即生效
4.2.4 Hadoop配置
找到位於 “$HADOOP_HOME/etc/hadoop” 目錄下所有的Hadoop配置文件。根據需要Hadoop將配置文件中的內容作修改。

#cd $HADOOP_HOME/etc/hadoop

爲了使用Java開發Hadoop程序,必須用java在系統中的位置來替換 hadoop-env.sh文件中的 java環境變量JAVA_HOME的值。

export JAVA_HOME=/opt/modules/jdk1.8.0_171

在這裏插入圖片描述
4.2.5 編輯以下文件來配置Hadoop
core-site.xml
core-site.xml文件中包含,如:用於Hadoop實例的端口號,分配給文件系統,存儲器限制用於存儲數據存儲器和讀/寫緩衝器的大小的信息。
打開core-site.xml,並在和標籤之間添加以下屬性。

<configuration>
<property>
 <name>fs.default.name</name>
 <value>hdfs://hbase.domain:9000</value>
 </property>
</configuration>

如圖:
在這裏插入圖片描述
hdfs-site.xml
hdfs-site.xml文件中包含,如:複製數據的值,NameNode的路徑,本地文件系統,要存儲Hadoop基礎架構的Datanode路徑的信息。
假設有以下數據。

dfs.replication (data replication value) = 1
(//opt/home/hadoop/hadoopinfra/hdfs/namenode目錄路徑可以自己定義)
namenode path = //opt/home/hadoop/hadoopinfra/hdfs/namenode
(//opt/home/hadoop/hadoopinfra/hdfs/datanode目錄路徑可以自己定義)
datanode path = //opt/home/hadoop/hadoopinfra/hdfs/datanode

打開這個文件,並在和 標記之間添加以下屬性。

<configuration>
<property>
 <name>dfs.replication</name>
 <value>1</value>
 </property>
 <property>
 <name>dfs.name.dir</name>
 <value>file:///opt/home/hadoop/hadoopinfra/hdfs/namenode</value>
 </property>
 <property>
 <name>dfs.data.dir</name>
 <value>file:///opt/home/hadoop/hadoopinfra/hdfs/datanode</value>
 </property>
</configuration>

結果如下:
在這裏插入圖片描述
注:上面的文件,所有的屬性值是用戶定義的,可以根據自己的Hadoop的基礎架構進行更改。
yarn-site.xml
此文件用於配置成yarn在Hadoop中。打開yarn-site.xml文件,並在標籤之前添加以下屬性到這個文件中。

<configuration>
<property>
 <name>yarn.nodemanager.aux-services</name>
 <value>mapreduce_shuffle</value>
 </property>
</configuration>

結果如下:
在這裏插入圖片描述
mapred-site.xml
此文件用於指定MapReduce框架以使用。默認情況下Hadoop包含yarn-site.xml模板。首先,它需要從mapred-site.xml複製模板到mapred-site.xml文件,使用下面的命令來。
#cp mapred-site.xml.template mapred-site.xml
打開 mapred-site.xml 文件,並在 和 標籤之間添加以下屬性。

<configuration>
<property>
 <name>mapreduce.framework.name</name>
 <value>yarn</value>
 </property>
</configuration>

結果如下:
在這裏插入圖片描述
4.2.6 驗證Hadoop安裝
(1) 名稱節點設置
設置名稱節點使用“hdfs namenode -format”命令如下

# cd ~
# hdfs namenode -format

預期結果如下:

10/24/14 21:30:55 INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG: host = hbase.domain/192.168.0.22
STARTUP_MSG: args = [-format]
STARTUP_MSG: version = 2.5.2
...
...
10/24/14 21:30:56 INFO common.Storage: Storage directory
/opt/home/hadoop/hadoopinfra/hdfs/namenode has been successfully formatted.
10/24/14 21:30:56 INFO namenode.NNStorageRetentionManager: Going to
retain 1 images with txid >= 0
10/24/14 21:30:56 INFO util.ExitUtil: Exiting with status 0
10/24/14 21:30:56 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at hbase.domain/192.168.0.22
************************************************************/ 

(2)驗證Hadoop DFS
下面的命令用來啓動DFS。執行這個命令將啓動Hadoop文件系統。

# start-dfs.sh

預期結果如下:

10/24/14 21:37:56
Starting namenodes on [localhost]
localhost: starting namenode, logging to /opt/home/hadoop/hadoop-
2.5.2/logs/hadoop-hadoop-namenode-localhost.out
localhost: starting datanode, logging to /home/hadoop/hadoop-
2.5.2/logs/hadoop-hadoop-datanode-localhost.out
Starting secondary namenodes [0.0.0.0]

在這裏插入圖片描述
(3)驗證yarn腳本

# start-yarn.sh

預期結果如下:

starting yarn daemons
starting resourcemanager, logging to /opt/home/hadoop/hadoop-
2.5.2/logs/yarn-hadoop-resourcemanager-localhost.out
localhost: starting nodemanager, logging to /opt/home/hadoop/hadoop-
2.5.2/logs/yarn-hadoop-nodemanager-localhost.out

在這裏插入圖片描述
(4)訪問本機的瀏覽器
訪問Hadoop的默認端口號爲50070。使用以下網址,以獲取Hadoop服務在瀏覽器中。
http://192.168.0.22:50070
在這裏插入圖片描述
(5)驗證集羣中的所有應用程序
訪問羣集的所有應用程序的默認端口號爲8088。使用以下URL訪問該服務。
http://192.168.0.22:8088
在這裏插入圖片描述
五、單機模式下hbase的安裝
5.1 上傳hbase-0.98.13-hadoop2-bin.tar.gz 到/root目錄下:
在這裏插入圖片描述
5.2 將hbase-0.98.13-hadoop2-bin.tar.gz解壓安裝在/usr/local目錄下:

# tar -zxvf /root/hbase-0.98.13-hadoop2-bin.tar.gz -C /usr/local

在這裏插入圖片描述
5.3 單機模式下配置Hbase
在繼續HBase之前,需要編輯下列文件和配置HBase。
hbase-env.sh
爲HBase設置Java目錄,並從conf文件夾打開hbase-env.sh文件。編輯JAVA_HOME環境變量,改變路徑到當前JAVA_HOME變量:

# cd /usr/local/hbase-0.98.13-hadoop2/conf
# vi hbase-env.sh

這將打開HBase的env.sh文件。現在使用當前值替換現有JAVA_HOME值,如下圖所示。
在這裏插入圖片描述
hbase-site.xml
這是HBase的主配置文件。通過在 /usr/local/hbase-0.98.13-hadoop2 打開HBase主文件夾,設置數據目錄到合適的位置。在 conf 文件夾裏面有幾個文件,現在打開hbase-site.xml文件:

# cd /usr/local/hbase-0.98.13-hadoop2/
# cd conf
# vi hbase-site.xml

在hbase-site.xml文件裏面,找到 和 標籤。並在其中,設置屬性鍵名爲“hbase.rootdir”,如下圖所示的HBase目錄。

<configuration>
///opt/home/hadoop/HBase/HFiles這個目錄可以自己定義
<property>
<name>hbase.rootdir</name>
<value>file:/opt/home/hadoop/HBase/HFiles</value>
</property>
///opt/home/hadoop/zookeeper這個目錄可以自己定義
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/opt/home/hadoop/zookeeper</value>
</property>
</configuration>

如下圖所示:
在這裏插入圖片描述
到此 HBase 的安裝配置已成功完成。可以通過使用 HBase 的 bin 文件夾中提供 start-hbase.sh 腳本啓動 HBase。爲此,打開HBase 主文件夾,然後運行 HBase 啓動腳本,如下圖所示。

# cd /usr/local/hbase-0.98.13-hadoop2/bin
# ./start-hbase.sh

如果一切順利,當運行HBase啓動腳本,它會提示一條消息:HBase has started

starting master, logging to /usr/local/hbase-0.98.13-hadoop2/bin/../logs/hbase-tpmaster-localhost.localdomain.out

在這裏插入圖片描述
啓動HBase主服務器
這在相同目錄。啓動它,如下圖所示:

# ./bin/local-master-backup.sh start 2 (數字是用來區分不同的hbase服務器的)

在這裏插入圖片描述
啓動區域服務器
啓動區域服務器,如下所示.

# ./bin/./local-regionservers.sh start 3

在這裏插入圖片描述
啓動HBase Shell
可以使用以下命令啓動HBase shell

# cd bin
# ./hbase shell

這會給出HBase shell 的提示符,如下圖所示。
在這裏插入圖片描述
5.4 HBase的Web界面
要訪問 HBase 的 Web界面,在瀏覽器中鍵入以下URL:
http://192.168.0.22:60010
以下界面列出了當前正在運行的區域服務器,備份主服務以及HBase表。
HBase區域服務器和備份主服務
在這裏插入圖片描述

HBase表
在這裏插入圖片描述
5.5 設置類路徑
繼續進行之前編程,在.bashrc文件中設置類路徑到HBase庫。打開.bashrc文件編輯,如下所示。

# vi /etc/profile

爲HBase庫設置類路徑(HBase的lib文件夾),如下圖所示。
在這裏插入圖片描述

六、hbase的shell常用命令及java實例
6.1 hbase的shelll常用命令
6.1.1通用命令
(1)status: 提供HBase的狀態,例如,服務器的數量。
在這裏插入圖片描述
(2)version: 提供正在使用HBase版本。
在這裏插入圖片描述
(3)table_help: 表引用命令提供幫助。
在這裏插入圖片描述
(4)whoami: 提供有關用戶的信息.
在這裏插入圖片描述
6.1.2 數據定義語言
(1) create: 創建一個表。
在這裏插入圖片描述
(2)list: 列出HBase的所有表。
在這裏插入圖片描述
(3)disable: 禁用表。
在這裏插入圖片描述
(4)is_disabled: 驗證表是否被禁用。
表示被禁用:
在這裏插入圖片描述
表示啓用:
在這裏插入圖片描述
(5)enable: 啓用一個表。
在這裏插入圖片描述
(6)is_enabled: 驗證表是否已啓用。
表示啓用:
在這裏插入圖片描述
表示被禁用:
在這裏插入圖片描述
(7)describe: 提供了一個表的描述。
在這裏插入圖片描述
(8)alter: 改變一個表。
在這裏插入圖片描述
(9)exists: 驗證表是否存在。
在這裏插入圖片描述
(10)drop: 從HBase中刪除表。
分兩步:首先disable,然後drop
在這裏插入圖片描述

(11)drop_all: 丟棄在命令中給出匹配“regex”的表。
hbase> drop_all ‘t.*’
注意:要刪除表,則必須先將其禁用。
假設有一些表的名稱如下:
在這裏插入圖片描述
所有這些表以字母test0開始。首先使用disable_all命令禁用所有這些表如下所示。
在這裏插入圖片描述
現在,可以使用 drop_all 命令刪除它們,如下所示。
在這裏插入圖片描述
(12)Java Admin API: 在此之前所有的上述命令,Java提供了一個通過API編程來管理實現DDL功能。在這個org.apache.hadoop.hbase.client包中有HBaseAdmin和HTableDescriptor 這兩個重要的類提供DDL功能。

6.1.3 數據操縱語言
(1) put: 把指定列在指定的行中單元格的值在一個特定的表。

put ‘table name’,'row ',‘Column family:column name’,‘new value’

在這裏插入圖片描述
(2)get: 取行或單元格的內容。

get ‘table name’,‘row1’

在這裏插入圖片描述
(3)delete: 刪除表中的單元格值。

delete ‘table name’, ‘row’, 'column name ', ‘time stamp’

在這裏插入圖片描述
(4)deleteall: 刪除給定行的所有單元格。

deleteall ‘table name’, ‘row’,

在這裏插入圖片描述
(5)scan: 掃描並返回表數據。

scan ‘table name’

在這裏插入圖片描述
(6)count: 計數並返回表中的行的數目。

count ‘table name’

在這裏插入圖片描述
(7)truncate: 禁用,刪除和重新創建一個指定的表。

truncate ‘table name’

在這裏插入圖片描述
在這裏插入圖片描述
(8)Java client API: 在此之前所有上述命令,Java提供了一個客戶端API來實現DML功能,CRUD(創建檢索更新刪除)操作更多的是通過編程,在org.apache.hadoop.hbase.client包下。 在此包HTable 的 Put和Get是重要的類。

6.2 java實例
6.2.1 準備
如果是用虛擬機搭建的hbase環境,要對虛擬機服務器的ip進行硬編碼.如果是雲服務器則可採用域名直接訪問hbase服務.進行硬編碼時,推薦採用switchhost進行硬編碼,不要直接在C盤下操作host文件.
在這裏插入圖片描述
測試硬編碼是否已正常啓用可以使用瀏覽器用:
http://hbase.domain:60010/master-status
在這裏插入圖片描述
6.2.2 java程序與hbase服務器的交互
詳細可參考案例代碼:
相關軟件下載:
鏈接:https://pan.baidu.com/s/17QnMfoXXvNNL0v4if6uJcw
提取碼:26pr
案例代碼下載:
鏈接:https://pan.baidu.com/s/1eb0xUI0vg2QNFtZKLC61mA
提取碼:nnrd

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章