hadoop詳細構成
10071 ワード
今日はhadoopに関する構成を紹介します.今hadoopのバージョンの更新は比較的に速くて、配置の時きっと少し異なって、みんなは公式のドキュメントを参考にして配置することができます.hadoopのインストールにはいくつかの前提条件があります.Sun Java 6(より高いバージョンでもいいですが、OpenJDKについてはまだ試したことがありません.)は、専用のhadoopシステムユーザーを追加し、SSHを構成します(ここでのsshは、マルチノードでリモート操作を行うためのOpenServerを指します).
1.linuxでsun-jdkをインストールします.次は具体的な手順です.
参照先:http://www.devsniper.com/ubuntu-12-04-install-sun-jdk-6-7/
sun-jdk-6-binをダウンロード クリックしてをダウンロードします
ファイルに実行可能な権限があることを確認します.
binファイルの実行
解凍後のファイルを指定ディレクトリに移動する
新しいjavaソースをシステムにインストール
システムに複数のjavaバージョンが存在する場合、システムのデフォルトjava を構成する必要があります.
Javaバージョンの検証
2.hadoopを追加するシステムユーザー
hadoopユーザーを使用してhadoopを実行する必要があります.
3.SSH構成
SSHの機能をご紹介しました.ここではSSHの構成を直接行います.注意:リモートアクセスのたびにパスワードを入力しないように、鍵を生成するときはパスワードを入力しないか、パスワードを空にします.
次に,SSHが新たに生成した鍵を使用できるようにする.ちょっと用事があります.
最後に、ネイティブへのリンクが成功したかどうかをテストします.
上の情報を見たとき.説明は成功した.
4.Hadoopのインストールは、Apacheの公式サイトからHadoopのファイルをダウンロードする必要があります.現在インストールされているファイルは0.2のバージョンです.
ダウンロード後の操作:
$HOME/.bashrcファイルを更新し、ファイルの最後に次の内容を追加します.
hadoopのファイルを構成します.
まず/usr/local/hadoop/conf/hadoop-env.shファイル
${JAVA_HOME}をjdkインストールパスに変更
to
次にconf/core-site.xmlファイルを変更します.
次はconf/mapred-site.xmlファイルです.
最後にconf/hdfs-site.xmlです.
hadoopを起動する前にHDFSファイルシステムをフォーマットし、コマンドを実行する必要があります.
単一ノードクラスタを起動するには:
hadoopのリスニングポートを表示するには、次のコマンドを使用します.
単一ノードクラスタの停止:
1.linuxでsun-jdkをインストールします.次は具体的な手順です.
参照先:http://www.devsniper.com/ubuntu-12-04-install-sun-jdk-6-7/
sun-jdk-6-binをダウンロード クリックしてをダウンロードします
ファイルに実行可能な権限があることを確認します.
1
chmod
+x jdk-6u32-linux-x64.bin
binファイルの実行
1
./jdk-6u32-linux-x64.bin
解凍後のファイルを指定ディレクトリに移動する
1
sudo
mv
jdk1.6.0_32 /usr/lib/jvm/
新しいjavaソースをシステムにインストール
1
sudo
update-alternatives --
install
/usr/bin/javac javac /usr/lib/jvm/jdk1.6.0_32/bin/javac 1
2
sudo
update-alternatives --
install
/usr/bin/java java /usr/lib/jvm/jdk1.6.0_32/bin/java 1
3
sudo
update-alternatives --
install
/usr/bin/javaws javaws /usr/lib/jvm/jdk1.6.0_32/bin/javaws 1
システムに複数のjavaバージョンが存在する場合、システムのデフォルトjava を構成する必要があります.
1
sudo
update-alternatives --config javac
2
sudo
update-alternatives --config java
3
sudo
update-alternatives --config javaws
Javaバージョンの検証
1
java -version
2.hadoopを追加するシステムユーザー
hadoopユーザーを使用してhadoopを実行する必要があります.
$ sudo addgroup hadoop //
$ sudo adduser --ingroup hadoop hduser //
3.SSH構成
SSHの機能をご紹介しました.ここではSSHの構成を直接行います.注意:リモートアクセスのたびにパスワードを入力しないように、鍵を生成するときはパスワードを入力しないか、パスワードを空にします.
user@ubuntu:~$ su - hduser
hduser@ubuntu:~$ ssh-keygen -t rsa -P ""
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hduser/.ssh/id_rsa):
Created directory '/home/hduser/.ssh'.
Your identification has been saved in /home/hduser/.ssh/id_rsa.
Your public key has been saved in /home/hduser/.ssh/id_rsa.pub.
The key fingerprint is:
9b:82:ea:58:b4:e0:35:d7:ff:19:66:a6:ef:ae:0e:d2 hduser@ubuntu
The key's randomart p_w_picpath is:
[...snipp...]
hduser@ubuntu:~$
次に,SSHが新たに生成した鍵を使用できるようにする.ちょっと用事があります.
hduser@ubuntu:~$ cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
最後に、ネイティブへのリンクが成功したかどうかをテストします.
hduser@ubuntu:~$ ssh localhost
The authenticity of host 'localhost (::1)' can't be established.
RSA key fingerprint is d7:87:25:47:ae:02:00:eb:1d:75:4f:bb:44:f9:36:26.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (RSA) to the list of known hosts.
Linux ubuntu 2.6.32-22-generic #33-Ubuntu SMP Wed Apr 28 13:27:30 UTC 2010 i686 GNU/Linux
Ubuntu 10.04 LTS
[...snipp...]
hduser@ubuntu:~$
上の情報を見たとき.説明は成功した.
4.Hadoopのインストールは、Apacheの公式サイトからHadoopのファイルをダウンロードする必要があります.現在インストールされているファイルは0.2のバージョンです.
ダウンロード後の操作:
$ cd /usr/local
$ sudo tar xzf hadoop-1.0.3.tar.gz
$ sudo mv hadoop-1.0.3 hadoop
$ sudo chown -R hduser:hadoop hadoop
$HOME/.bashrcファイルを更新し、ファイルの最後に次の内容を追加します.
# Set Hadoop-related environment variables
export HADOOP_HOME=/usr/local/hadoop
# Set JAVA_HOME (we will also configure JAVA_HOME directly for Hadoop later on)
export JAVA_HOME=/usr/lib/jvm/java-6-sun
# Some convenient aliases and functions for running Hadoop-related commands
unalias fs &> /dev/null
alias fs="hadoop fs"
unalias hls &> /dev/null
alias hls="fs -ls"
# If you have LZO compression enabled in your Hadoop cluster and
# compress job outputs with LZOP (not covered in this tutorial):
# Conveniently inspect an LZOP compressed file from the command
# line; run via:
#
# $ lzohead /hdfs/path/to/lzop/compressed/file.lzo
#
# Requires installed 'lzop' command.
#
lzohead () {
hadoop fs -cat $1 | lzop -dc | head -1000 | less
}
# Add Hadoop bin/ directory to PATH
export PATH=$PATH:$HADOOP_HOME/bin
hadoopのファイルを構成します.
まず/usr/local/hadoop/conf/hadoop-env.shファイル
${JAVA_HOME}をjdkインストールパスに変更
# The java implementation to use. Required.
# export JAVA_HOME=${JAVA_HOME}
to
# The java implementation to use. Required.
export JAVA_HOME=/usr/lib/jvm/java-6-sun
次にconf/core-site.xmlファイルを変更します.
hadoop.tmp.dir
/app/hadoop/tmp
A base for other temporary directories.
fs.default.name
hdfs://localhost:54310
The name of the default file system. A URI whose
scheme and authority determine the FileSystem implementation. The
uri's scheme determines the config property (fs.SCHEME.impl) naming
the FileSystem implementation class. The uri's authority is used to
determine the host, port, etc. for a filesystem.
次はconf/mapred-site.xmlファイルです.
mapred.job.tracker
localhost:54311
The host and port that the MapReduce job tracker runs
at. If "local", then jobs are run in-process as a single map
and reduce task.
最後にconf/hdfs-site.xmlです.
dfs.replication
1
Default block replication.
The actual number of replications can be specified when the file is created.
The default is used if replication is not specified in create time.
hadoopを起動する前にHDFSファイルシステムをフォーマットし、コマンドを実行する必要があります.
hduser@ubuntu:~$ /usr/local/hadoop/bin/hadoop namenode -format
10/05/08 16:59:56 INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG: host = ubuntu/127.0.1.1
STARTUP_MSG: args = [-format]
STARTUP_MSG: version = 0.20.2
STARTUP_MSG: build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.20 -r 911707; compiled by 'chrisdo' on Fri Feb 19 08:07:34 UTC 2010
************************************************************/
10/05/08 16:59:56 INFO namenode.FSNamesystem: fsOwner=hduser,hadoop
10/05/08 16:59:56 INFO namenode.FSNamesystem: supergroup=supergroup
10/05/08 16:59:56 INFO namenode.FSNamesystem: isPermissionEnabled=true
10/05/08 16:59:56 INFO common.Storage: Image file of size 96 saved in 0 seconds.
10/05/08 16:59:57 INFO common.Storage: Storage directory .../hadoop-hduser/dfs/name has been successfully formatted.
10/05/08 16:59:57 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at ubuntu/127.0.1.1
************************************************************/
hduser@ubuntu:/usr/local/hadoop$
単一ノードクラスタを起動するには:
hduser@ubuntu:/usr/local/hadoop$ bin/start-all.sh
starting namenode, logging to /usr/local/hadoop/bin/../logs/hadoop-hduser-namenode-ubuntu.out
localhost: starting datanode, logging to /usr/local/hadoop/bin/../logs/hadoop-hduser-datanode-ubuntu.out
localhost: starting secondarynamenode, logging to /usr/local/hadoop/bin/../logs/hadoop-hduser-secondarynamenode-ubuntu.out
starting jobtracker, logging to /usr/local/hadoop/bin/../logs/hadoop-hduser-jobtracker-ubuntu.out
localhost: starting tasktracker, logging to /usr/local/hadoop/bin/../logs/hadoop-hduser-tasktracker-ubuntu.out
hduser@ubuntu:/usr/local/hadoop$
hadoopのリスニングポートを表示するには、次のコマンドを使用します.
hduser@ubuntu:~$ sudo netstat -plten | grep java
tcp 0 0 0.0.0.0:50070 0.0.0.0:* LISTEN 1001 9236 2471/java
tcp 0 0 0.0.0.0:50010 0.0.0.0:* LISTEN 1001 9998 2628/java
tcp 0 0 0.0.0.0:48159 0.0.0.0:* LISTEN 1001 8496 2628/java
tcp 0 0 0.0.0.0:53121 0.0.0.0:* LISTEN 1001 9228 2857/java
tcp 0 0 127.0.0.1:54310 0.0.0.0:* LISTEN 1001 8143 2471/java
tcp 0 0 127.0.0.1:54311 0.0.0.0:* LISTEN 1001 9230 2857/java
tcp 0 0 0.0.0.0:59305 0.0.0.0:* LISTEN 1001 8141 2471/java
tcp 0 0 0.0.0.0:50060 0.0.0.0:* LISTEN 1001 9857 3005/java
tcp 0 0 0.0.0.0:49900 0.0.0.0:* LISTEN 1001 9037 2785/java
tcp 0 0 0.0.0.0:50030 0.0.0.0:* LISTEN 1001 9773 2857/java
hduser@ubuntu:~$
単一ノードクラスタの停止:
hduser@ubuntu:/usr/local/hadoop$ bin/stop-all.sh
stopping jobtracker
localhost: stopping tasktracker
stopping namenode
localhost: stopping datanode
localhost: stopping secondarynamenode
hduser@ubuntu:/usr/local/hadoop$