Hadoop大規模サーバの構築

Windowsも構築できる、今回はLinux環境のHadoop構築です。
仮想環境はVMwareまたはAWSで簡単構築できます。
ご利用ください。


#１．HOST設定
vim /etc/hosts
サーバネームを追加する
（例）
192.168.1.2 Hadoop1
192.168.1.3 Hadoop2
192.168.1.4 Hadoop3

#2.Hadoopのインストールと設定
※管理やすいように、同じネームのディレクトリを作成する。

Hadoop、javaのダウンロード
wget http://archive.apache.org/dist/hadoop/core/hadoop-2.7.1/hadoop-2.7.1.tar.gz
wget http://download.oracle.com/otn-pub/java/jdk/8u101-b13/jdk-8u101-linux-x64.tar.gz

ll（ls）でダウンロードファイルを確認する。
そのあと、下記を実行する。
tar -zxvf hadoop-2.7.1.tar.gz
tar -zxvf jdk-8u101-linux-x64.tar.gz 

#JAVAの設定
mkdir /usr/java
chown hadoop:hadoop /usr/java/
ll /usr で権限を確認する。
（必ずhadoopで！権限がhadoopではない場合、問題があるかもしれない）

vim /etc/profile
ファイルの設定は下記です。
export JAVA_HOME=/usr/java/jdk1.8.0_73
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin

cp -r jdk1.8.0_73 /usr/java/
java -version　
以上、javaの設定が終わる。

#hadoopの設定
mkdir /usr/hadoop
cp -r hadoop-2.7.1 /usr/hadoop
chown hadoop:hadoop /usr/hadoop/

ll /usr/
hadoopフォルダの権限を確認する。

cd /usr/hadoop/hadoop-2.7.1/
mkdir tmp  //下記core-site.xmlに使用のため

hadoopの設定フォルダは/etc/hadoopです。

Hadoopにjdkを指定する。
hadoop-env.sh、yarn-env.shに下記を追加する。
export JAVA_HOME=/usr/java/jdk1.8.0_73

core-site.xmlの設定
vim etc/hadoop/core-site.xml

<configuration>
<!-- HDFS file path -->
<property>
  <name>fs.defaultFS</name>
  <value>hdfs://192.168.1.2:9000</value>
 </property>
 <property>
  <name>io.file.buffer.size</name>
  <value>131072</value>
 </property>
 
 <property>
  <name>hadoop.tmp.dir</name>
  <value>file:/usr/hadoop/hadoop-2.7.1/tmp</value>
  <description>Abasefor other temporary directories.</description>
 </property>
 <property>
</configuration>

hdfs-site.xmlの設定
vim etc/hadoop/hdfs-site.xml 

<property>
  <name>dfs.namenode.secondary.http-address</name>
  <value>192.168.1.2:9001</value>
 </property>

  <property>
   <name>dfs.namenode.name.dir</name>
   <value>file:/usr/hadoop/hadoop-2.7.1/dfs/name</value>
 </property>

 <property>
  <name>dfs.datanode.data.dir</name>
  <value>file:/usr/hadoop/hadoop-2.7.1/dfs/data</value>
  </property>

 <property>
  <name>dfs.replication</name>
  <value>1</value>
 </property>

 <property>
  <name>dfs.webhdfs.enabled</name>
  <value>true</value>
 </property>


※dfs.namenode.name.dirなどは環境によって指定ください。
mkdir dfs
mkdir dfs/name
mkdir dfs/data

・mapred-site.xmlの設定
テンプレートをコピーして作成する。
cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
vim etc/hadoop/mapred-site.xml

<configuration>
  <property>
   <name>mapreduce.framework.name</name>
   <value>yarn</value>   ⇒yarnを指定する（sparkなども設定できる）
 </property>
 <property>　　　　　　　　⇒JOB履歴サーバ
  <name>mapreduce.jobhistory.address</name>
  <value>192.168.1.2:10020</value>
 </property>
 <property>　　　　　　　　⇒履歴Webサーバ
  <name>mapreduce.jobhistory.webapp.address</name>
  <value>192.168.1.2:19888</value>
 </property>
</configuration>

・yarn-site.xmlの設定
vim etc/hadoop/yarn-site.xml 

<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.address</name>
   <value>192.168.1.2:8032</value>
  </property>
  <property>
   <name>yarn.resourcemanager.scheduler.address</name>
   <value>192.168.1.2:8030</value>
  </property>
  <property>
   <name>yarn.resourcemanager.resource-tracker.address</name>
   <value>192.168.1.2:8035</value>
  </property>
  <property>
   <name>yarn.resourcemanager.admin.address</name>
   <value>192.168.1.2:8033</value>
  </property>
  <property>
   <name>yarn.resourcemanager.webapp.address</name>
   <value>192.168.1.2:8088</value>
  </property>

hadoopの権限設定（重要！）
chown -R hadoop:hadoop /usr/hadoop/hadoop-2.7.1/

bin/hadoop namenode -format
「xxx/name has been successfully formated.」メッセージが出す、
フォーマットが正常終了。

#動作確認
HDFS起動！
sbin/start-dfs.sh

下記で状態を確認する。
bin/hadoop dfsadmin -report

またはURLで確認できる！
http://192.168.1.2:50070/dfshealth.html#tab-overview

yarnの起動
sbin/start-yarn.sh 
http://192.168.1.2:8080/cluster


Congradulations !
Welcome to send mail to me.
技術交流：erica_lyz@yahoo.co.jp

-以上-