Hadoopツールは、Hadoop-2.7.2以降のバージョンに依存して、基盤となるファイルストレージシステムとしてTencent Cloud COSを使用し、上位層のコンピューティングタスクを実行する機能を実装しています。Hadoopクラスターを起動するには、主にスタンドアロン、疑似分散、完全分散という3つの主なモードがあります。ここでは主に、Hadoop-2.7.4バージョンを例として、完全分散Hadoop環境をビルド、およびwordcountの簡単なテストをご紹介します。
ifconfig -a
を使用して各マシンのIPを確認し、pingコマンドを使用して相互にpingを送信できるかどうかを確認し、各マシンのIPを記録します。
vi /etc/hosts
コンテンツの編集:
202.xxx.xxx.xxx master
202.xxx.xxx.xxx slave1
202.xxx.xxx.xxx slave2
202.xxx.xxx.xxx slave3
//IPアドレスを実際のIPに置き換えます
systemctl status firewalld.service //ファイアウォールのステータスをチェックします
systemctl stop firewalld.service //ファイアウォールを無効にします
systemctl disable firewalld.service //ファイアウォールの起動を無効にします
yum install -y ntp //ntpサービスをインストールします
ntpdate cn.pool.ntp.org //ネットワークの時刻を同期させます
JDKインストールパッケージ(jdk-8u144-linux-x64.tar.gzなど)をroot
ルートディレクトリにアップロードします。
mkdir /usr/java
tar -zxvf jdk-8u144-linux-x64.tar.gz -C /usr/java/
rm -rf jdk-8u144-linux-x64.tar.gz
scp -r /usr/java slave1:/usr
scp -r /usr/java slave2:/usr
scp -r /usr/java slave3:/usr
.......
vi /etc/profile
コンテンツの編集:
export JAVA_HOME=/usr/java/jdk1.8.0_144
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
source/etc/profile //設定ファイルを有効にします
java -version //Javaのバージョンを確認します
各ホストのSSHサービスステータスを個別にチェックします。
systemctl status sshd.service //SSHサービスのステータスをチェックします
yum install openssh-server openssh-clients //SSHサービスをインストールします。すでにインストールされている場合は、この手順は不要です
systemctl start sshd.service //SSHサービスを開始します。すでにインストールされている場合は、この手順は不要です
各ホストで個別にキーを発行します
ssh-keygen -t rsa //キーの発行
slave1の場合:
cp ~/.ssh/id_rsa.pub ~/.ssh/slave1.id_rsa.pub
scp ~/.ssh/slave1.id_rsa.pub master:~/.ssh
slave2の場合:
cp ~/.ssh/id_rsa.pub ~/.ssh/slave2.id_rsa.pub
scp ~/.ssh/slave2.id_rsa.pub master:~/.ssh
という感じで..
masterの場合:
cd ~/.ssh
cat id_rsa.pub >> authorized_keys
cat slave1.id_rsa.pub >>authorized_keys
cat slave2.id_rsa.pub >>authorized_keys
scp authorized_keys slave1:~/.ssh
scp authorized_keys slave2:~/.ssh
scp authorized_keys slave3:~/.ssh
hadoopインストールパッケージ(hadoop-2.7.4.tar.gzなど)をroot
ルートディレクトリにアップロードします。
tar -zxvf hadoop-2.7.4.tar.gz -C /usr
rm -rf hadoop-2.7.4.tar.gz
mkdir /usr/hadoop-2.7.4/tmp
mkdir /usr/hadoop-2.7.4/logs
mkdir /usr/hadoop-2.7.4/hdf
mkdir /usr/hadoop-2.7.4/hdf/data
mkdir /usr/hadoop-2.7.4/hdf/name
hadoop-2.7.4/etc/hadoop
ディレクトリに移動し、次の操作に進みます。
hadoop-env.sh
ファイルを変更して、以下を追加しますexport JAVA_HOME=/usr/java/jdk1.8.0_144
SSHポートがデフォルトの22でない場合は、hadoop-env.sh
ファイルで以下のように変更します。
export HADOOP_SSH_OPTS="-p 1234"
yarn-env.sh
を変更しますexport JAVA_HOME=/usr/java/jdk1.8.0_144
slaves
を変更します設定内容:
削除:
localhost
追加:
slave1
slave2
slave3
core-site.xml
を変更します<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/hadoop-2.7.4/tmp</value>
</property>
</configuration>
hdfs-site.xml
を変更します<configuration>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/hadoop-2.7.4/hdf/data</value>
<final>true</final>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/hadoop-2.7.4/hdf/name</value>
<final>true</final>
</property>
</configuration>
mapred-site.xml
を変更します<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
yarn-site.xml
を変更します<configuration>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
</configuration>
scp -r /usr/ hadoop-2.7.4 slave1:/usr
scp -r /usr/ hadoop-2.7.4 slave2:/usr
scp -r /usr/ hadoop-2.7.4 slave3:/usr
設定ファイルを開きます。
vi /etc/profile
コンテンツの編集:
export HADOOP_HOME=/usr/hadoop-2.7.4
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export HADOOP_LOG_DIR=/usr/hadoop-2.7.4/logs
export YARN_LOG_DIR=$HADOOP_LOG_DIR
設定ファイルを有効にします。
source /etc/profile
cd /usr/hadoop-2.7.4/sbin
hdfs namenode -format
cd /usr/hadoop-2.7.4/sbin
start-all.sh
masterホストにResourceManager、SecondaryNameNode、NameNodeなどが含まれている場合は、次のような表示があれば起動に成功しています。
2212 ResourceManager
2484 Jps
1917 NameNode
2078 SecondaryNameNode
各slaveホストにDataNode、NodeManagerなどが含まれている場合は、次のような表示があれば起動に成功しています。
17153 DataNode
17334 Jps
17241 NodeManager
Hadoopにはwordcountルーチンが付属されているため、直接呼び出すことができます。Hadoopを起動した後、以下のコマンドを使用すれば、HDFS内のファイルを操作することができます。
hadoop fs -mkdir input
hadoop fs -put input.txt /input
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.4.jar wordcount /input /output/
上図に示されている結果は、Hadoopのインストールが成功したことを示しています。
hadoop fs -ls /output
hadoop fs -cat /output/part-r-00000
説明:スタンドアロンモードと疑似分散モードの詳細な操作方法については、公式サイトのHadoop入門をご参照ください。
この記事はお役に立ちましたか?