Hadoop 2.x完全分散構成の詳細
7551 ワード
1.環境紹介ここでは4台のマシンでHadoop完全分散クラスタ環境を構成し、1つのnamenodeと3つのdatanode、4台のマシンにインストールされているのはUbuntu Server 14.04 LTSシステムです. JDKバージョン1.7.0_75、インストールの詳細は以下に紹介する. Hadoopバージョンは最新の安定バージョンhadoop 2.6.0. 2.準備ユーザー名とグループ を作成
3台のマシンに同じユーザー名とグループを作成し、パスワードも同じにすることをお勧めします.私のすべてのマシンのユーザー名とパスワードはhadoopです.これにより、後で管理が容易になります(個人的なアドバイス:インストール時に直接hadoopユーザーを作成すると、システムは自動的に同じ名前のグループに入れます.これにより、マルチユーザー権限の問題を回避できます).コマンドは以下の通りです.ホスト名とホストの変更--ipマッピング SSHをインストールし、各ノード間のパスワードなし相互訪問 を構成する.インストールJDK
3.Hadoopのインストール
すべてのノードを構成するには、次の手順に従います.1つのノードを構成し、他のノードにコピーできます(もちろん、jdkのパスとバージョン、hadoopのパスなど、各ノード環境が一致していることを確認します).これにより、手間が省け、後で変更や管理が容易になります. hadoopをダウンロードし、 を解凍します.
公式サイトから最新の安定バージョンhadoop-2.6.0.tar.gzをダウンロードし、/home/hadoopディレクトリにコピーし、現在のディレクトリに解凍します. hadoop-2.6.0/etc/hadoopでのプロファイルの変更 hadoop-env.shファイル を変更
slavesファイル を変更 core-site.xmlファイル を変更 hdfs-size.xmlファイル を変更
注意:1.一般的には、前の5つを構成すればよい.後の3つは私が自分のクラスタの必要に応じて追加したものである.2.あるノードが35000/1000*2+3*10、すなわち100 s以内に応答しない場合、クラスタはdeadとマークする mapred-site.xmlファイル を変更 yarn-site.xmlファイル を変更/etc/profileファイルを修正し、hadoopの環境変数(hadoopのコマンドの実行を容易にするため)を加え、source/etc/profileの実行を変更して構成を直ちに有効にする .
4.テスト
すべてのノードが上記のように構成されるとhadoop完全分散クラスタが基本的に構成され、以下でテストします.フォーマットnamenode 注意:namenodeノードの下で次のコマンドを実行します(他のノードはこの操作をしません).サービス を開始
namenodeで次のコマンドを入力してhdfsとyarnを起動します.start-all.shは推奨されません.標準的な方法ではstart-dfs.shとstart-yarn.shを入力してhdfsとyarnをそれぞれ起動します.各ノードプロセス を表示する
namenodeノードと各datanodeノードにjpsコマンドを入力します.namenodeで次のプロセスが発生した場合:
最后の注意:ブロガーはこのブログを书いて、この数日hadoopクラスタを配置する过程を记录することを目的として、初心者と交流して勉强して、どうしても足りないところがあって、みんなに批判して指摘することを望みます.ps:サーバーはグラフィックインタフェースをインストールしていないので、スクリーンショットが不便なので、主に文字を主とします.
5.参考
http://www.aboutyun.com/thread-7684-1-1.html
3台のマシンに同じユーザー名とグループを作成し、パスワードも同じにすることをお勧めします.私のすべてのマシンのユーザー名とパスワードはhadoopです.これにより、後で管理が容易になります(個人的なアドバイス:インストール時に直接hadoopユーザーを作成すると、システムは自動的に同じ名前のグループに入れます.これにより、マルチユーザー権限の問題を回避できます).コマンドは以下の通りです.
//1. hadoop
$ sudo addgroup hadoop
//2. hadoop hadoop
$ sudo adduser -ingroup hadoop hadoop
//3. hadoop root ( , )
$ sudo gedit /etc/sudoers
root ALL=(ALL:ALL) ALL :hadoop ALL=(ALL:ALL) ALL
//1. /etc/hostname ,( )
namenode Master, datanode Slave1、Slave2、Slave3
//2. /etc/hosts ,
192.168.1.151 Master
192.168.1.152 Slave1
192.168.1.153 Slave2
192.168.1.154 Slave3
//1. ssh
ssh 。 , , :
sudo apt-get install ssh
//2. ( : )
a. :
:
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
:
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
b. , ~/.ssh authorized_keys
3.
namenode :
ssh localhost
ssh Slave1( slave )
datanode :
ssh localhost
ssh Master( Slave )
,
//1. oracle jdk-7u75-linux-x64.tar.gz, /usr/lib/jvm
sudo tar zxvf jdk-7u75-linux-x64.tar.gz -C /usr/lib/jvm
//2.
sudo gedit /etc/profile
:
#set java environment
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_75
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
//3.
source /etc/profile
//4. JDK
:
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.7.0_75/bin/java 300
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.7.0_75/bin/javac 300
, , jdk:
sudo update-alternatives --config java
5. , java -version, jdk, jdk
3.Hadoopのインストール
すべてのノードを構成するには、次の手順に従います.1つのノードを構成し、他のノードにコピーできます(もちろん、jdkのパスとバージョン、hadoopのパスなど、各ノード環境が一致していることを確認します).これにより、手間が省け、後で変更や管理が容易になります.
公式サイトから最新の安定バージョンhadoop-2.6.0.tar.gzをダウンロードし、/home/hadoopディレクトリにコピーし、現在のディレクトリに解凍します.
sudo tar -zxvf hadoop-2.6.0.tar.gz
// JAVA_HOME jdk
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_75
- 修改yarn-env.sh文件
// JAVA_HOME jdk
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_75
// datanode , :
Slave1
Slave2
Slave3
// , core-default.xml
fs.defalutFS
hdfs://Master:8020
hadoop.tmp.dir
file:/home/hadoop/tmp
// , hdfs-default.xml
dfs.namenode.secondary.http-address
Master:9001
dfs.namenode.name.dir
file:/home/hadoop/dfs/name
dfs.datanode.data.dir
file:/home/hadoop/dfs/data
dfs.replication
3
dfs.webhdfs.enabled
true
dfs.permissions
false
dfs.heartbeat.interval
3
dfs.namenode.heartbeat.recheck-interval
35000
注意:1.一般的には、前の5つを構成すればよい.後の3つは私が自分のクラスタの必要に応じて追加したものである.2.あるノードが35000/1000*2+3*10、すなわち100 s以内に応答しない場合、クラスタはdeadとマークする
// , mapred-default.xml
mapreduce.framework.name
yarn
mapreduce.jobhistory.address
Master:10020
mapreduce.jobhistory.webapp.address
Master:19888
メモ:jobhistoryは手動で起動し、start-all.shでも起動しません.起動コマンド:sbin/mr-jobhistory-daemon.sh start historyserver.これにより、web上でMaster:1988ポートにアクセスできます.これはjobのhistory情報を表示するポートです.// , yarn-default.xml
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.nodemanager.aux-services.mapreduce.shuffle.class
org.apache.hadoop.mapred.ShuffleHandler
yarn.resourcemanager.scheduler.address
Master:8030
yarn.resourcemanager.resource-tracker.address
Master:8031
yarn.resourcemanager.address
Master:8032
yarn.resourcemanager.admin.address
Master:8033
yarn.resourcemanager.webapp.address
Master:8088
#for hadoop
export HADOOP_HOME=/home/hadoop/hadopp-2.6.0
export PATH=${PATH}:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin
4.テスト
すべてのノードが上記のように構成されるとhadoop完全分散クラスタが基本的に構成され、以下でテストします.
hadoop namenode -format
namenodeで次のコマンドを入力してhdfsとyarnを起動します.start-all.shは推奨されません.標準的な方法ではstart-dfs.shとstart-yarn.shを入力してhdfsとyarnをそれぞれ起動します.
start-all.sh
namenodeノードと各datanodeノードにjpsコマンドを入力します.namenodeで次のプロセスが発生した場合:
NameNode
ResourceManager
SecondaryNameNode
でdatanodeノードに次のプロセスが表示されます.DataNode
NodeManager
はhadoopの完全分散クラスタ構成が成功したことを示しています.hadoopが持っているexample(WorldCountなど)をクラスタ上で実行してみてください.ここでは説明しません.最后の注意:ブロガーはこのブログを书いて、この数日hadoopクラスタを配置する过程を记录することを目的として、初心者と交流して勉强して、どうしても足りないところがあって、みんなに批判して指摘することを望みます.ps:サーバーはグラフィックインタフェースをインストールしていないので、スクリーンショットが不便なので、主に文字を主とします.
5.参考
http://www.aboutyun.com/thread-7684-1-1.html