- Authors
- Name
Overview
HBaseをfully distributed modeでインストールする方法について説明します。
HBaseはストレージとしてHadoop File System、S3、Local File Systemを使用できます。最も広く使われているストレージはHDFSです。HBaseはZookeeperに依存しているため、HBaseのインストール前にHadoopとZookeeperを先にインストールする必要があります。HBase自体にZookeeperが内蔵されているため、バンドルされたバイナリを使用することもできますが、ここでは別途インストールする方法を選択しました。
Hadoop 3.3.2のインストール
hadoop hbase versionで、HBaseバージョンと互換性のあるHadoopバージョンが明示されています。HBase 2.5.3バージョンを使用するため、Hadoop 3.3.2バージョンをインストールします。

hadoop 3.3.2 archiveサイトにアクセスします。
Hadoopバイナリのダウンロード
以下のようにhadoop-3.3.2.tar.gzの部分を右クリックし、「リンクのアドレスをコピー」を選択してダウンロードURLをコピーします。

すべてのサーバーで以下のコマンドを実行してHadoopのインストールを行います。
wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.2/hadoop-3.3.2.tar.gz
tar -zxvf hadoop-3.3.2.tar.gz
sudo cp -r hadoop-3.3.2 /usr/local/hadoop
以降のインストール手順はHadoop 3.4 Install on Ubuntu Non Secureを参照してインストールします。
変更した設定は以下の通りです。
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
192.168.219.121 latte01
192.168.219.122 latte02
192.168.219.123 latte03
192.168.219.124 latte04
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export HDFS_NAMENODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export HDFS_DATANODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/dfs/nn</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/dfs/dn</value>
</property>
</configuration>
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>latte01:8025</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>latte01:8030</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>latte01:8040</value>
</property>
</configuration>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
</configuration>
latte02
latte03
latte04
Hadoopの起動
start-dfs.sh
Zookeeperのインストール
インストール方法はZookeeperインストール方法の投稿を参照してください。
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/var/zookeeper
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
server.1=latte01:2888:3888
server.2=latte02:2888:3888
server.3=latte03:2888:3888
1番、2番、3番サーバーの/var/zookeeperにmyidファイルを作成し、ファイル内に1から255の間の重複しない整数を入力します。
その後、以下のコマンドでZookeeperサーバーを起動します。
zkServer.sh start
HBaseのインストール
hbase download pageで2.5.3バージョンのバイナリリンクに移動します。

https://dlcdn.apache.org/hbase/2.5.3/hbase-2.5.3-bin.tar.gzの部分を右クリックしてリンクアドレスをクリップボードにコピーします。

すべてのサーバーで以下のコマンドを使ってHBaseバイナリtarファイルをダウンロードし、解凍します。
wget https://www.apache.org/dyn/closer.lua/hbase/2.5.3/hbase-2.5.3-bin.tar.gz
tar -zxvf hbase-2.5.3-bin.tar.gz
sudo cp -r hbase-2.5.3 /usr/local/hbase
設定の修正
hbase-env.shに以下の行を追加します。
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export HBASE_CLASSPATH=${HADOOP_CONF_DIR}
export HBASE_PID_DIR=/var/hadoop/pids
export HBASE_MANAGES_ZK=false
hbase-site.xmlを以下のように修正します。
<configuration>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://latte01:9000/hbase</value>
</property>
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
<property>
<name>hbase.master.port</name>
<value>60000</value>
</property>
<property>
<name>hbase.master.info.port</name>
<value>60010</value>
</property>
<property>
<name>hbase.regionserver.info.bindAddress</name>
<value>0.0.0.0</value>
</property>
<property>
<name>hbase.regionserver.port</name>
<value>60020</value>
</property>
<property>
<name>hbase.regionserver.info.port</name>
<value>60030</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>latte01,latte02,latte03</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<property>
<name>hbase.wal.provider</name>
<value>filesystem</value>
</property>
</configuration>
latte02
latte03
latte04
HBaseの起動
start-hbase.sh
HBaseの動作確認
http://latte01:16010にアクセスしてHBaseの状態を確認します。