1.機器準備:
如果沒有多餘機器,安裝vmware7.1後可模擬 多臺機器,本處模擬三臺機器。
2. 修改hosts文件:(文件在/etc/hosts)
說明:Master代表第一臺機器,主節點(IP: 192.168.1.126),Slave代表後兩臺機器,數據節點(IP: 192.168.1.127,192.168.1.128)
Master(Ubuntu1)上的 hosts 文件添加
192.168.1.126 Ubuntu1
192.168.1.127 Ubuntu2
192.168.1.128 Ubuntu3Slave(Ubuntu2)上的 hosts 文件添加
192.168.1.126 Ubuntu1
192.168.1.127 Ubuntu2
192.168.1.128 Ubuntu3
Slave(Ubuntu3)上的 hosts 文件添加
192.168.1.126 Ubuntu1
192.168.1.127 Ubuntu2
192.168.1.128 Ubuntu3
由於hosts文件是隻讀的,所以在終端輸入:
cd /etc
sudo gedit hosts
輸入密碼即可修改了。
3. 安裝ssh:
Hadoop運行過程中需要管理遠端Hadoop守護進程,ssh是用來進行通信連接的。
終端命令:sudo apt-get install ssh
提示輸入Y就行了
ssh配置:該配置主要是爲了實現在機器之間執行指令時不需要輸入密碼。在所有的機器上建立 .ssh 目錄。
終端命令: mkdir .ssh
在Ubuntu1上生成密鑰對:
終端命令:ssh-keygen -t rsa
一直按enter鍵 就會按照默認的選項將生成的密鑰對保存在.ssh/id_rsa文件中。然後執行以下命令:
終端命令:cd ~/.ssh (即進入.ssh目錄)
cp id_rsa.pub authorized_keys
scp authorized_keys Ubuntu2:/home/taoxiang/.ssh (這個依照自己的目錄,我的用戶名是taoxiang)
scp authorized_keys Ubuntu3:/home/taoxiang/.ssh
最後進入所有的機器的.ssh目錄,改變authorized_keys文件的許可權限:
chmod 644 authorized_keys
這是從Ubuntu1向其他機器發起ssh連接時,只要第一次登錄時需要輸入密碼,以後都不需要了。4. 安裝jdk:
終端命令: sudo apt-get install sun-java6-jdk
如果出現無法安裝:
終端命令:sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
sudo apt-get update
sudo apt-get install sun-java6-jdk
5. 下載hadoop-0.20.2:
http://mirror.bjtu.edu.cn/apache/hadoop/core/hadoop-0.20.2/
6. 部署hadoop:
在master 機器上更改配置,然後再拷貝到 slave 機器上,這樣所有機器上的 hadoop 就能保證一模一樣了。
解壓hadoop-0.20.2到根目錄下(我的是/home/taoxiang)
更改配置:(文件都在/ hadoop-0.20.2/conf裏面)
文件1:hadoop-env.sh
加入兩行:
export JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.24
export HADOOP_HOME=/home/taoxiang/hadoop-0.20.2 (路徑根據自己的情況改)
文件2:masters
Ubuntu1
文件3:slaves
Ubuntu2
Ubuntu3文件4:core-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://192.168.1.126:9000</value>
<description>這裏 192.168.1.126 這個是指 master 機器 IP 地址,當然可以使用 Ubuntu1主機名,條件是 DNS 能夠解析,否則會有問題, datanode 連接 namenode 時會報連接不上的錯誤。所以實際應用中根據 master 機器的 IP 來更改吧,最好使用 IP 這樣就不存在問題了。.</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/taoxiang/HadoopTemp</value>
<description>這裏這個 HadoopTemp 目錄需要自己手動建立,在 master 和 slave 機器上都需要手動創建 </description>
</property>
</configuration>
文件5:hdfs-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
<description>這裏指定數據文件默認保留幾份備份,默認的是 3 ,自己可以指定。 </description>
</property>
</configuration>
文件6:mapred-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>mapred.job.tracker</name>
<value> 192.168.1.126 :9001</value>
<description>同意這裏指定 Master 的 IP 或者 host ,最好指定 IP 。 </description>
</property>
</configuration>
至此master的Hadoop配置完成。接着複製到其他機器上
master的終端命令:
scp –r ~/hadoop-0.20.2 Ubuntu2:/home/taoxiang
scp –r ~/hadoop-0.20.2 Ubuntu3:/home/taoxiang
7. 啓動hadoop:
Hadoop的命令在 /hadoop-0.20.2/bin/ 目錄下,啓動過程在 master 機器上進行。
啓動之前需要進行格式化,類似於Windows 文件系統格式化, hadoop 的文件系統也需要格式化後才能被 hadoop 使用。
Master終端命令:
cd ~/hadoop-0.20.2
bin/hadoop namenode -format
bin/start-all.sh
即可啓動所有的hadoop守護,包括namenode、datanode、JobTracker和Tasktrack。
這樣即可訪問
http://192.168.1.126:50070
http://192.168.1.126:50030
如下圖所示
上圖可知,Live Nodes個數爲2。