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

Hadoop on Browser

步驟 5 - 驗證叢集的所有應用程式

訪問叢集所有應用程式的預設埠號為 8088。使用以下 URL 訪問此服務。

https://:8088/

Hadoop Applicatin Cluster

安裝 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 Servers

HBase表

HBase Tables

設定Java環境

我們還可以使用Java庫與HBase通訊,但在使用Java API訪問HBase之前,您需要為這些庫設定類路徑。

設定類路徑

在繼續程式設計之前,請在.bashrc檔案中將類路徑設定為HBase庫。在任何編輯器中開啟.bashrc,如下所示。

$ gedit ~/.bashrc

在其中設定HBase庫(HBase中的lib資料夾)的類路徑,如下所示。

export CLASSPATH = $CLASSPATH://home/hadoop/hbase/lib/*

這是為了防止在使用Java API訪問HBase時出現“類未找到”異常。

廣告