Skip to content
Published on

HBase fully distributed modeをUbuntu 22.04にインストールする方法

Authors
  • Name
    Twitter

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バージョンをインストールします。

hbase hadoop compatability

hadoop 3.3.2 archiveサイトにアクセスします。

Hadoopバイナリのダウンロード

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

hadoop archive

すべてのサーバーで以下のコマンドを実行して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
hadoop-env.sh
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
hdfs-site.xml
<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>
yarn-site.xml
<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>
mapred-site.xml
<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>
workers
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バージョンのバイナリリンクに移動します。

hbase install page

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

hbase install page

すべてのサーバーで以下のコマンドを使って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に以下の行を追加します。

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を以下のように修正します。

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の状態を確認します。