環境如下:
ubuntu-12.04.2-server-amd64
hadoop-1.0.4
VirtualBox
1、在VBox中安裝Ubuntu Server,用戶名和密碼都是hadoop,安裝完成后,克隆兩份,這樣就有三台機器,一台master,兩台slave。克隆后的slave打開不能上網,原因是克隆的時候,“重新初始化所有網卡的MAC地址”,而Ubuntu系統中網卡緩存中的MAC地址也新的MAC地址不一致,解決方法是在克隆后的機器中刪除一個文件,使用如下命令:
sudo rm /etc/udev/rules.d/70-persistent-net.rules
然后重啟,機器就能連網了。
2、安裝jdk,使用如下命令:
sudo apt-get install openjdk-6-jdk
master和slave都要安裝。
3、修改機器名稱,編輯/etc/hostname,把master機器修改成master.Hadoop,slave機器修改成slave1.Hadoop和slave2.Hadoop。
4、修改機器網絡配置,編輯/etc/network/interfaces。master的網絡配置如下:
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 #iface eth0 inet dhcp iface eth0 inet static address 192.168.0.40 netmask 255.255.255.0 gateway 192.168.0.1
dns-nameservers 8.8.8.8
slave1和slave2的配置只需要修改IP地址,分別是192.168.0.41和192.168.0.42。
5、配置master和slave的hosts文件,編輯/etc/hosts,在文件中追加如下內容:
192.168.0.40 master.Hadoop 192.168.0.41 slave1.Hadoop 192.168.0.42 slave2.Hadoop
三台機器的hosts配置相同。
6、配置master無密碼登錄所有slave
在master上執行:
ssh-keygen -t rsa -P ''
這個命令用於生成無密碼密鑰對,詢問其保存路徑時直接回車采用默認路徑。生成的密鑰對為id_rsa和id_rsa.pub,默認存儲在/home/hadoop/.ssh目錄下。接着在master上做如下配置,把id_rsa.pub追加到授權的key里:
cat .ssh/id_rsa.pub >> .ssh/authorized_keys
修改權限:authorized_keys的權限和.ssh目錄的權限,使用如下命令:
chmod 600 .ssh/authorized_keys
chmod 700 .ssh
在slave機器上創建.ssh目錄,使用如下命令:
mkdir .ssh
把authorized_keys復制到slave1機器的/home/hadoop/.ssh中,使用如下命令:
scp .ssh/authorized_keys slave1.Hadoop:/home/hadoop/.ssh/authorized_keys
修改權限,同master上的權限配置,在slave2上做同樣的操作。
7、在master上安裝hadoop
解壓hadoop-1.0.4.tar.gz:
tar -zxvf hadoop-1.0.4.tar.gz
8、配置hadoop
編輯conf/hadoop-env.sh,修改JAVA_HOME的值:
export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-amd64/
編輯conf/mapred-site.xml,添加內容:
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>mapred.job.tracker</name> <value>http://master.hadoop:9001</value> </property> </configuration>
編輯conf/hdfs-site.xml,添加內容:
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>dfs.name.dir</name> <value>/home/hadoop/name</value> </property> <property> <name>dfs.data.dir</name> <value>/home/hadoop/data</value> </property> <property> <name>dfs.replication</name> <value>2</value> </property> </configuration>
編輯conf/core-site.xml,添加內容:
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>fs.default.name</name> <value>hdfs://master.Hadoop:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/hadoop-1.0.4/tmp</value> </property> </configuration>
編輯conf/masters,刪除localhost,添加內容:
master.Hadoop
編輯conf/slaves,刪除localhost,添加內容:
slave1.Hadoop
slave2.Hadoop
9、把master的hadoop-1.0.4拷貝到slave
在master上執行:
scp -r hadoop-1.0.4 slave1.Hadoop:/home/hadoop/
scp -r hadoop-1.0.4 slave2.Hadoop:/home/hadoop/
10、在master上格式化HDFS文件系統,使用如下命令:
hadoop-1.0.4/bin/hadoop namenode -format
11、啟動所有結點
在master上執行:
hadoop-1.0.4/bin/start-all.sh
在master上執行jps命令,輸出如下:
1974 JobTracker 2101 Jps 1602 NameNode 1893 SecondaryNameNode
說明master上hadoop正常啟動。
在slave上執行jps命令,輸出如下:
2007 Jps 1423 DataNode 1636 TaskTracker
說明slave上hadoop正常啟動。
也可以在瀏覽器中打開192.168.0.40:50030或者192.168.0.40:50070查看master和slave是否正常啟動。
12、關閉所有節點
在master上執行:
hadoop-1.0.4/bin/stop-all.sh
參考鏈接:
http://blog.chinaunix.net/uid-26867092-id-3213709.html
http://www.cnblogs.com/xia520pi/archive/2012/05/16/2503949.html