Hbase-installation

提供:Dev Guides
移動先:案内検索

HBase-インストール

この章では、HBaseのインストール方法と初期設定方法について説明します。 HBaseを続行するにはJavaとHadoopが必要なので、システムにjavaとHadoopをダウンロードしてインストールする必要があります。

インストール前のセットアップ

Linux環境にHadoopをインストールする前に、 ssh (Secure Shell)を使用してLinuxをセットアップする必要があります。 Linux環境を設定するには、以下の手順に従ってください。

ユーザーを作成する

まず、Hadoopの別のユーザーを作成して、HadoopファイルシステムをUnixファイルシステムから分離することをお勧めします。 以下の手順に従ってユーザーを作成します。

  • コマンド「su」を使用してルートを開きます。
  • コマンド「useradd username」を使用して、rootアカウントからユーザーを作成します。
  • これで、コマンド「su username」を使用して既存のユーザーアカウントを開くことができます。

Linuxターミナルを開き、次のコマンドを入力してユーザーを作成します。

$ su
password:
# useradd hadoop
# passwd hadoop
New passwd:
Retype new passwd

SSHセットアップとキー生成

開始、停止、分散デーモンシェル操作など、クラスターでさまざまな操作を実行するには、SSHセットアップが必要です。 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 versionコマンドの構文は次のとおりです。

$ 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

次のリンクhttp://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260l[Oracle Java]にアクセスして、java(JDK <最新バージョン>-X64.tar.gz)をダウンロードします。

その後、 jdk-7u71-linux-x64.tar.gz がシステムにダウンロードされます。

ステップ2

通常、ダウンロードした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/」の場所に移動する必要があります。 ルートを開き、次のコマンドを入力します。

$ 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 Software Foundationからhttp://apache.bytenet.in/hadoop/common/hadoop-2.6.0/[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設定ファイルは、「$ HADOOP_HOME/etc/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://localhost:9000</value>
   </property>
</configuration>
*hdfs-site.xml*
*hdfs-site.xml* ファイルには、Hadoopインフラストラクチャを保存するローカルファイルシステムのレプリケーションデータ、ネームノードパス、データノードパスの値などの情報が含まれています。

次のデータを想定します。

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-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-ノードのセットアップに名前を付ける

次のようにコマンド「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 dfの検証

次のコマンドは、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-糸スクリプトの検証

次のコマンドを使用して、糸スクリプトを開始します。 このコマンドを実行すると、糸デーモンが起動します。

$ 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サービスを取得します。

http://localhost:50070

ブラウザ上のHadoop

ステップ5-クラスターのすべてのアプリケーションを確認する

クラスターのすべてのアプリケーションにアクセスするためのデフォルトのポート番号は8088です。 このサービスにアクセスするには、次のURLを使用してください。

http://localhost:8088/

Hadoop Applicatin Cluster

HBaseのインストール

HBaseは、スタンドアロンモード、疑似分散モード、完全分散モードの3つのモードのいずれかでインストールできます。

スタンドアロンモードでのHBaseのインストール

「wget」コマンドを使用してHBaseの最新の安定バージョンをhttp://www.interior-dsgn.com/apache/hbase/stable/からダウンロードし、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ホームを設定し、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構文を使用して、hfs.rootdir、HDFSインスタンスアドレスを変更します。 ローカルホストのポート8030でHDFSを実行しています。

<property>
   <name>hbase.rootdir</name>
   <value>hdfs://localhost: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のホームフォルダーを開き、マスターし、次のコマンドを実行して起動します。

$ ./bin/local-master-backup.sh 2 4

バックアップマスターを強制終了するには、そのプロセスIDが必要です。このプロセスIDは、*“/tmp/hbase-USER-X-master.pid” *という名前のファイルに保存されます。次のコマンドを使用してバックアップマスターを強制終了できます。

$ cat/tmp/hbase-user-1-master.pid |xargs kill -9

RegionServerの起動と停止

次のコマンドを使用して、単一のシステムから複数のリージョンサーバーを実行できます。

$ .bin/local-regionservers.sh start 2 3

リージョンサーバーを停止するには、次のコマンドを使用します。

$ .bin/local-regionservers.sh stop 3

HBaseShellの開始

HBaseを正常にインストールしたら、HBase Shellを起動できます。 以下に、HBaseシェルを開始するために従うべき一連のステップを示します。 ターミナルを開き、スーパーユーザーとしてログインします。

Hadoopファイルシステムを起動する

Hadoopのホームsbinフォルダーを参照し、以下に示すようにHadoopファイルシステムを起動します。

$cd $HADOOP_HOME/sbin
$start-all.sh

HBaseを起動します

HBaseルートディレクトリのbinフォルダーを参照して、HBaseを起動します。

$cd/usr/local/HBase
$./bin/start-hbase.sh

HBase Master Serverを起動します

これは同じディレクトリになります。 以下に示すように起動します。

$./bin/local-master-backup.sh start 2 (number signifies specific
server.)

開始地域

以下に示すように、リージョンサーバーを起動します。

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

HBase Shellを起動します

次のコマンドを使用して、HBaseシェルを起動できます。

$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を入力します。

http://localhost:60010

このインターフェイスには、現在実行中のリージョンサーバー、バックアップマスター、HBaseテーブルが一覧表示されます。

HBaseリージョンサーバーとバックアップマスター

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にアクセスする際の「クラスが見つかりません」例外を防ぐためです。