
- HBase 教程
- HBase - 首頁
- HBase - 概述
- HBase - 架構
- HBase - 安裝
- HBase - Shell
- HBase - 常用命令
- HBase - 管理員 API
- HBase - 建立表
- HBase - 列出表
- HBase - 停用表
- HBase - 啟用表
- HBase - 描述和修改
- HBase - 是否存在
- HBase - 刪除表
- HBase - 關閉
- HBase - 客戶端 API
- HBase - 建立資料
- HBase - 更新資料
- HBase - 讀取資料
- HBase - 刪除資料
- HBase - 掃描
- HBase - 計數和截斷
- HBase - 安全
- HBase 資源
- HBase - 常見問題解答
- HBase - 快速指南
- HBase - 有用資源
HBase - 安裝
本章介紹如何安裝和初始配置 HBase。要繼續使用 HBase,需要 Java 和 Hadoop,因此您必須在系統中下載並安裝 Java 和 Hadoop。
安裝前設定
在將 Hadoop 安裝到 Linux 環境之前,我們需要使用 **ssh**(安全外殼)設定 Linux。請按照以下步驟設定 Linux 環境。
建立使用者
首先,建議為 Hadoop 建立一個單獨的使用者,以將 Hadoop 檔案系統與 Unix 檔案系統隔離。請按照以下步驟建立使用者。
- 使用命令“su”開啟 root。
- 使用命令“useradd username”從 root 帳戶建立使用者。
- 現在,您可以使用命令“su username”開啟現有的使用者帳戶。
開啟 Linux 終端並鍵入以下命令以建立使用者。
$ su password: # useradd hadoop # passwd hadoop New passwd: Retype new passwd
SSH 設定和金鑰生成
SSH 設定是執行叢集上不同操作(例如啟動、停止和分散式守護程序 shell 操作)所必需的。為了對 Hadoop 的不同使用者進行身份驗證,需要為 Hadoop 使用者提供公鑰/私鑰對,並將其與不同的使用者共享。
以下命令用於使用 SSH 生成鍵值對。將公鑰從 id_rsa.pub 複製到 authorized_keys,並分別為 authorized_keys 檔案提供所有者、讀取和寫入許可權。
$ ssh-keygen -t rsa $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys $ chmod 0600 ~/.ssh/authorized_keys
驗證 ssh
ssh localhost
安裝 Java
Java 是 Hadoop 和 HBase 的主要先決條件。首先,您應該使用“java -version”驗證系統中是否存在 java。java 版本命令的語法如下所示。
$ java -version
如果一切正常,它將為您提供以下輸出。
java version "1.7.0_71" Java(TM) SE Runtime Environment (build 1.7.0_71-b13) Java HotSpot(TM) Client VM (build 25.0-b02, mixed mode)
如果您的系統中未安裝 java,請按照以下步驟安裝 java。
步驟 1
透過訪問以下連結下載 java(JDK <最新版本> - X64.tar.gz)Oracle Java。
然後 **jdk-7u71-linux-x64.tar.gz** 將下載到您的系統中。
步驟 2
通常您會在 Downloads 資料夾中找到下載的 java 檔案。驗證它並使用以下命令解壓縮 **jdk-7u71-linux-x64.gz** 檔案。
$ cd Downloads/ $ ls jdk-7u71-linux-x64.gz $ tar zxf jdk-7u71-linux-x64.gz $ ls jdk1.7.0_71 jdk-7u71-linux-x64.gz
步驟 3
要使所有使用者都能使用 java,您必須將其移動到“/usr/local/”位置。開啟 root 並鍵入以下命令。
$ su password: # mv jdk1.7.0_71 /usr/local/ # exit
步驟 4
要設定 **PATH** 和 **JAVA_HOME** 變數,請將以下命令新增到 **~/.bashrc** 檔案中。
export JAVA_HOME=/usr/local/jdk1.7.0_71 export PATH= $PATH:$JAVA_HOME/bin
現在將所有更改應用到當前正在執行的系統中。
$ source ~/.bashrc
步驟 5
使用以下命令配置 java 替代項
# alternatives --install /usr/bin/java java usr/local/java/bin/java 2 # alternatives --install /usr/bin/javac javac usr/local/java/bin/javac 2 # alternatives --install /usr/bin/jar jar usr/local/java/bin/jar 2 # alternatives --set java usr/local/java/bin/java # alternatives --set javac usr/local/java/bin/javac # alternatives --set jar usr/local/java/bin/jar
現在,如上所述,從終端驗證 **java -version** 命令。
下載 Hadoop
安裝 java 後,您必須安裝 Hadoop。首先,使用如下所示的“Hadoop version”命令驗證 Hadoop 的存在。
hadoop version
如果一切正常,它將為您提供以下輸出。
Hadoop 2.6.0 Compiled by jenkins on 2014-11-13T21:10Z Compiled with protoc 2.5.0 From source with checksum 18e43357c8f927c0695f1e9522859d6a This command was run using /home/hadoop/hadoop/share/hadoop/common/hadoop-common-2.6.0.jar
如果您的系統無法找到 Hadoop,則在您的系統中下載 Hadoop。請按照以下命令進行操作。
使用以下命令從 Apache 軟體基金會下載並解壓縮 hadoop-2.6.0。
$ su password: # cd /usr/local # wget http://mirrors.advancedhosters.com/apache/hadoop/common/hadoop- 2.6.0/hadoop-2.6.0-src.tar.gz # tar xzf hadoop-2.6.0-src.tar.gz # mv hadoop-2.6.0/* hadoop/ # exit
安裝 Hadoop
以任何所需的模式安裝 Hadoop。這裡,我們正在偽分散式模式下演示 HBase 功能,因此請以偽分散式模式安裝 Hadoop。
以下步驟用於安裝 **Hadoop 2.4.1**。
步驟 1 - 設定 Hadoop
您可以透過將以下命令附加到 **~/.bashrc** 檔案中來設定 Hadoop 環境變數。
export HADOOP_HOME=/usr/local/hadoop 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 ~/.bashrc
步驟 2 - Hadoop 配置
您可以在“$HADOOP_HOME/etc/hadoop”位置找到所有 Hadoop 配置檔案。您需要根據您的 Hadoop 基礎設施對這些配置檔案進行更改。
$ cd $HADOOP_HOME/etc/hadoop
為了用 java 開發 Hadoop 程式,您必須透過將 **JAVA_HOME** 值替換為系統中 java 的位置來重置 **hadoop-env.sh** 檔案中的 java 環境變數。
export JAVA_HOME=/usr/local/jdk1.7.0_71
您將必須編輯以下檔案以配置 Hadoop。
core-site.xml
**core-site.xml** 檔案包含諸如 Hadoop 例項使用的埠號、為檔案系統分配的記憶體、儲存資料的記憶體限制以及讀/寫緩衝區的大小等資訊。
開啟 core-site.xml 並將以下屬性新增到 <configuration> 和 </configuration> 標記之間。
<configuration> <property> <name>fs.default.name</name> <value>hdfs://:9000</value> </property> </configuration>
hdfs-site.xml
**hdfs-site.xml** 檔案包含諸如複製資料的值、namenode 路徑以及您要儲存 Hadoop 基礎設施的本地檔案系統的 datanode 路徑等資訊。
讓我們假設以下資料。
dfs.replication (data replication value) = 1 (In the below given path /hadoop/ is the user name. hadoopinfra/hdfs/namenode is the directory created by hdfs file system.) namenode path = //home/hadoop/hadoopinfra/hdfs/namenode (hadoopinfra/hdfs/datanode is the directory created by hdfs file system.) datanode path = //home/hadoop/hadoopinfra/hdfs/datanode
開啟此檔案並在 <configuration>、</configuration> 標記之間新增以下屬性。
<configuration> <property> <name>dfs.replication</name > <value>1</value> </property> <property> <name>dfs.name.dir</name> <value>file:///home/hadoop/hadoopinfra/hdfs/namenode</value> </property> <property> <name>dfs.data.dir</name> <value>file:///home/hadoop/hadoopinfra/hdfs/datanode</value> </property> </configuration>
**注意:**在上面的檔案中,所有屬性值都是使用者定義的,您可以根據您的 Hadoop 基礎設施進行更改。
yarn-site.xml
此檔案用於在 Hadoop 中配置 yarn。開啟 yarn-site.xml 檔案並在該檔案中的 <configuration$gt;、</configuration$gt; 標記之間新增以下屬性。
<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.template** 複製到 **mapred-site.xml** 檔案。
$ cp mapred-site.xml.template mapred-site.xml
開啟 **mapred-site.xml** 檔案並在 <configuration> 和 </configuration> 標記之間新增以下屬性。
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
驗證 Hadoop 安裝
以下步驟用於驗證 Hadoop 安裝。
步驟 1 - Name Node 設定
使用命令“hdfs namenode -format”設定 namenode,如下所示。
$ cd ~ $ hdfs namenode -format
預期結果如下。
10/24/14 21:30:55 INFO namenode.NameNode: STARTUP_MSG: /************************************************************ STARTUP_MSG: Starting NameNode STARTUP_MSG: host = localhost/192.168.1.11 STARTUP_MSG: args = [-format] STARTUP_MSG: version = 2.4.1 ... ... 10/24/14 21:30:56 INFO common.Storage: Storage directory /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 localhost/192.168.1.11 ************************************************************/
步驟 2 - 驗證 Hadoop dfs
以下命令用於啟動 dfs。執行此命令將啟動您的 Hadoop 檔案系統。
$ start-dfs.sh
預期輸出如下。
10/24/14 21:37:56 Starting namenodes on [localhost] localhost: starting namenode, logging to /home/hadoop/hadoop- 2.4.1/logs/hadoop-hadoop-namenode-localhost.out localhost: starting datanode, logging to /home/hadoop/hadoop- 2.4.1/logs/hadoop-hadoop-datanode-localhost.out Starting secondary namenodes [0.0.0.0]
步驟 3 - 驗證 Yarn 指令碼
以下命令用於啟動 yarn 指令碼。執行此命令將啟動您的 yarn 守護程式。
$ start-yarn.sh
預期輸出如下。
starting yarn daemons starting resourcemanager, logging to /home/hadoop/hadoop- 2.4.1/logs/yarn-hadoop-resourcemanager-localhost.out localhost: starting nodemanager, logging to /home/hadoop/hadoop- 2.4.1/logs/yarn-hadoop-nodemanager-localhost.out
步驟 4 - 在瀏覽器上訪問 Hadoop
訪問 Hadoop 的預設埠號為 50070。使用以下 URL 在瀏覽器上獲取 Hadoop 服務。
https://:50070

步驟 5 - 驗證叢集的所有應用程式
訪問叢集所有應用程式的預設埠號為 8088。使用以下 URL 訪問此服務。
https://:8088/

安裝 HBase
我們可以以三種模式中的任何一種安裝 HBase:獨立模式、偽分散式模式和完全分散式模式。
在獨立模式下安裝 HBase
從 http://www.interior-dsgn.com/apache/hbase/stable/ 下載最新穩定版本的 HBase,使用“wget”命令,並使用 tar “zxvf”命令解壓縮它。請參見以下命令。
$cd usr/local/ $wget http://www.interior-dsgn.com/apache/hbase/stable/hbase-0.98.8- hadoop2-bin.tar.gz $tar -zxvf hbase-0.98.8-hadoop2-bin.tar.gz
切換到超級使用者模式並將 HBase 資料夾移動到 /usr/local,如下所示。
$su $password: enter your password here mv hbase-0.99.1/* Hbase/
在獨立模式下配置 HBase
在繼續使用 HBase 之前,您必須編輯以下檔案並配置 HBase。
hbase-env.sh
設定 HBase 的 java Home 並從 conf 資料夾中開啟 **hbase-env.sh** 檔案。編輯 JAVA_HOME 環境變數並將現有路徑更改為您的當前 JAVA_HOME 變數,如下所示。
cd /usr/local/Hbase/conf gedit hbase-env.sh
這將開啟 HBase 的 env.sh 檔案。現在將現有的 **JAVA_HOME** 值替換為您當前的值,如下所示。
export JAVA_HOME=/usr/lib/jvm/java-1.7.0
hbase-site.xml
這是 HBase 的主要配置檔案。透過開啟 /usr/local/HBase 中的 HBase 主資料夾,將資料目錄設定為適當的位置。在 conf 資料夾中,您會找到幾個檔案,開啟 **hbase-site.xml** 檔案,如下所示。
#cd /usr/local/HBase/ #cd conf # gedit hbase-site.xml
在 **hbase-site.xml** 檔案中,您會找到 <configuration> 和 </configuration> 標記。在它們內部,使用名稱為“hbase.rootdir”的屬性鍵設定 HBase 目錄,如下所示。
<configuration> //Here you have to set the path where you want HBase to store its files. <property> <name>hbase.rootdir</name> <value>file:/home/hadoop/HBase/HFiles</value> </property> //Here you have to set the path where you want HBase to store its built in zookeeper files. <property> <name>hbase.zookeeper.property.dataDir</name> <value>/home/hadoop/zookeeper</value> </property> </configuration>
這樣,HBase 的安裝和配置部分就成功完成了。我們可以使用 HBase 的 bin 資料夾中提供的 **start-hbase.sh** 指令碼啟動 HBase。為此,請開啟 HBase 主資料夾並執行 HBase 啟動指令碼,如下所示。
$cd /usr/local/HBase/bin $./start-hbase.sh
如果一切順利,當您嘗試執行 HBase 啟動指令碼時,它將提示您一條訊息,說明 HBase 已啟動。
starting master, logging to /usr/local/HBase/bin/../logs/hbase-tpmaster-localhost.localdomain.out
在偽分散式模式下安裝 HBase
現在讓我們檢查如何在偽分散式模式下安裝 HBase。
配置 HBase
在繼續使用 HBase 之前,請在您的本地系統或遠端系統上配置 Hadoop 和 HDFS,並確保它們正在執行。如果 HBase 正在執行,請停止它。
hbase-site.xml
編輯 hbase-site.xml 檔案以新增以下屬性。
<property> <name>hbase.cluster.distributed</name> <value>true</value> </property>
它將說明應以哪種模式執行 HBase。在本地檔案系統中的同一檔案中,使用 hdfs://// URI 語法更改 hbase.rootdir、您的 HDFS 例項地址。我們正在 localhost 的埠 8030 上執行 HDFS。
<property> <name>hbase.rootdir</name> <value>hdfs://:8030/hbase</value> </property>
啟動 HBase
配置完成後,瀏覽到 HBase 主資料夾並使用以下命令啟動 HBase。
$cd /usr/local/HBase $bin/start-hbase.sh
**注意:**在啟動 HBase 之前,請確保 Hadoop 正在執行。
檢查 HDFS 中的 HBase 目錄
HBase 在 HDFS 中建立其目錄。要檢視建立的目錄,請瀏覽到 Hadoop bin 並鍵入以下命令。
$ ./bin/hadoop fs -ls /hbase
如果一切順利,它將為您提供以下輸出。
Found 7 items drwxr-xr-x - hbase users 0 2014-06-25 18:58 /hbase/.tmp drwxr-xr-x - hbase users 0 2014-06-25 21:49 /hbase/WALs drwxr-xr-x - hbase users 0 2014-06-25 18:48 /hbase/corrupt drwxr-xr-x - hbase users 0 2014-06-25 18:58 /hbase/data -rw-r--r-- 3 hbase users 42 2014-06-25 18:41 /hbase/hbase.id -rw-r--r-- 3 hbase users 7 2014-06-25 18:41 /hbase/hbase.version drwxr-xr-x - hbase users 0 2014-06-25 21:49 /hbase/oldWALs
啟動和停止主伺服器
使用“local-master-backup.sh”,您可以啟動多達 10 個伺服器。開啟 HBase 的主資料夾、master 並執行以下命令以啟動它。
$ ./bin/local-master-backup.sh 2 4
要殺死備份主伺服器,您需要它的程序 ID,它將儲存在名為 **“/tmp/hbase-USER-X-master.pid.”** 的檔案中。您可以使用以下命令殺死備份主伺服器。
$ cat /tmp/hbase-user-1-master.pid |xargs kill -9
啟動和停止 RegionServers
您可以使用以下命令從單個系統執行多個區域伺服器。
$ .bin/local-regionservers.sh start 2 3
要停止區域伺服器,請使用以下命令。
$ .bin/local-regionservers.sh stop 3
啟動HBaseShell
成功安裝HBase後,您可以啟動HBase Shell。以下是啟動HBase Shell需要遵循的一系列步驟。開啟終端,並以超級使用者身份登入。
啟動Hadoop檔案系統
瀏覽Hadoop主目錄下的sbin資料夾,並啟動Hadoop檔案系統,如下所示。
$cd $HADOOP_HOME/sbin $start-all.sh
啟動HBase
瀏覽HBase根目錄下的bin資料夾並啟動HBase。
$cd /usr/local/HBase $./bin/start-hbase.sh
啟動HBase主伺服器
這將是相同的目錄。啟動它,如下所示。
$./bin/local-master-backup.sh start 2 (number signifies specific server.)
啟動區域
啟動區域伺服器,如下所示。
$./bin/./local-regionservers.sh start 3
啟動HBase Shell
您可以使用以下命令啟動HBase Shell。
$cd bin $./hbase shell
這將為您提供如下所示的HBase Shell提示符。
2014-12-09 14:24:27,526 INFO [main] Configuration.deprecation: hadoop.native.lib is deprecated. Instead, use io.native.lib.available HBase Shell; enter 'help<RETURN>' for list of supported commands. Type "exit<RETURN>" to leave the HBase Shell Version 0.98.8-hadoop2, r6cfc8d064754251365e070a10a82eb169956d5fe, Fri Nov 14 18:26:29 PST 2014 hbase(main):001:0>
HBase Web介面
要訪問HBase的Web介面,請在瀏覽器中輸入以下URL。
https://:60010
此介面列出了您當前正在執行的區域伺服器、備份主伺服器和HBase表。
HBase區域伺服器和備份主伺服器

HBase表

設定Java環境
我們還可以使用Java庫與HBase通訊,但在使用Java API訪問HBase之前,您需要為這些庫設定類路徑。
設定類路徑
在繼續程式設計之前,請在.bashrc檔案中將類路徑設定為HBase庫。在任何編輯器中開啟.bashrc,如下所示。
$ gedit ~/.bashrc
在其中設定HBase庫(HBase中的lib資料夾)的類路徑,如下所示。
export CLASSPATH = $CLASSPATH://home/hadoop/hbase/lib/*
這是為了防止在使用Java API訪問HBase時出現“類未找到”異常。