軟體環境:
虛擬機器:VMware Workstation 10
作業系統:ubuntu-12.04-desktop-amd64
JAVA版本:jdk-7u55-linux-x64
Hadoop版本:hadoop-1.2.1
Hadoop下載地址:http://mirrors.cnnic.cn/apache/hadoop/common/hadoop-1.2.1/
選擇hadoop-1.2.1.tar.gz這個
第一階段:安裝JDK
請參考上篇文章:http://www.cnblogs.com/madyina/p/3705520.html
第二階段:建立Hadoop賬戶
撥出控制檯,執行下面命令:
sudo adduser hadoop
然後要求你設定hadoop帳戶密碼,這個命令是新增一個名為hadoop的標準帳戶,我們需要的是管理員帳號
可以直接在圖形介面下修改hadoop許可權,將滑鼠點選右上角的一個人頭處,浮現列表,點選“使用者賬戶”,解鎖,然後更改為管理員許可權
然後就登出了當前使用者,使用hadoop來登入吧。後續的操作都在這個賬戶下進行。
第三階段:安裝和配置SSH
撥出控制檯,執行下面命令:
sudo apt-get install ssh
終端就會聯網下載安裝包並自行進行安裝。安裝完成後輸入下面指令驗證22埠是否開啟:
netstat -nat
確定22埠是開啟的,然後檢查SSH安裝正確否,輸入
ssh localhost
輸入當前使用者名稱和密碼按回車確認,說明安裝成功,同時ssh登陸需要密碼。
這種預設安裝方式完後,預設配置檔案是在/etc/ssh/目錄下。sshd配置檔案是:/etc/ssh/sshd_config
但是在Hadoop啟動以後,Namenode是通過SSH(Secure Shell)來啟動和停止各個datanode上的各種守護程式的,這就須要在節點之間執行指令的時候是不須要輸入密碼的形式,故我們須要配置SSH運用無密碼公鑰認證的形式。
接下來,在終端輸入命令進入Hadoop賬戶目錄:
cd /home/hadoop
再次輸入:
ssh-keygen -t rsa
這個命令將為hadoop上的使用者hadoop生成其金鑰對,詢問其儲存路徑時直接回車採用預設路徑,當提示要為生成的金鑰輸入passphrase的時候,直接回車,也就是將其設定為空密碼。生成的金鑰對id_rsa,id_rsa.pub,預設儲存在/home/hadoop/.ssh目錄下然後將id_rsa.pub的內容複製到每個機器(也包括本機)的/home/dbrg/.ssh/authorized_keys檔案中,如果機器上已經有authorized_keys這個檔案了,就在檔案末尾加上id_rsa.pub中的內容,如果沒有authorized_keys這個檔案,直接複製過去就行.)。
一路回車下來,將會看到類似下圖的圖案:
然後我們再次進入.ssh資料夾,然後將id_rsa.pub複製到authorized_keys檔案,命令如下:
cd .ssh
cp id_rsa.pub authorized_keys
再次測試無密碼登入
ssh localhost
當然也可以再測試下使用機器名無密碼登入:
出現這個介面證明SSH安裝成功!
第四階段:安裝Hadoop
將下載好的壓縮包hadoop-1.2.1.tar.gz拖到桌面:
事實證明,得多拖幾次才能進去。
然後再剪貼到DownLoads下面:
然後開啟終端,輸入ls列舉當前目錄,準備進入DownLoads目錄將壓縮包複製到指定目錄下
cp hadoop-1.2.1.tar.gz /home/hadoop
然後執行授權指令,否則是解不了壓縮的
chmod 700 /home/hadoop/hadoop-1.2.1.tar.gz
之後進行解壓操作:
tar zxvf /home/hadoop/hadoop-1.2.1.tar.gz
接下來我們要配置hadoop的hadoop/conf下的hadoop-env.sh,core-site.xml,mapred-site.xml,hdfs-site.xml檔案。
首先配置JAVA路徑,執行下面指令:
gedit /home/hadoop/hadoop-1.2.1/conf/hadoop-env.sh
如果一切正確的話將會出現下面介面:
找到JAVA_HOME並配置為實際路徑將前面的#去掉,如果出現的是一個空白介面,請重新解壓並核實解壓正確了沒(下圖為正確情況)
配置hadoop-1.2.1/conf/core-site.xml,輸入命令:
gedit /home/hadoop/hadoop-1.2.1/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://localhost:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/hadoop-1.2.1/tmp</value> <description>A base for other temporary directories.</description> </property> </configuration>
這是hadoop核心配置檔案之一,配置的是HDFS的地址和埠號。
配置hadoop-1.2.1/conf/mapre-site.xml,命令列:
gedit /home/hadoop/hadoop-1.2.1/conf/ mapre-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>localhost:9001</value> </property> </configuration>
這是Hadoop中MapReduce的配置檔案,用來配置JobTracker的地址和埠。
配置hadoop-1.2.1/conf/hdfs-site.xml,輸入命令:
gedit /home/hadoop/hadoop-1.2.1/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.replication</name> <value>1</value> </property> </configuration>
這是HDFS的配置,配置備份方式為1,是單機版的配置。
當然這幾個檔案完全可以直接進入到目錄下右鍵編輯方式修改,更準確快捷。
然後進入hadoop-1.2.1格式化hdfs檔案系統,格式化一個新的分散式檔案系統,命令為:
cd hadoop-1.2.1
bin/hadoop namenode –format
出現類似下面介面(注意這是無異常的介面)就說明成功:
然後啟動hadoop服務:
bin/start-all.sh
可以通過jps,檢視java虛擬機器執行的java執行緒
不計jps,有3個hadoop相關執行緒,恭喜你,hadoop安裝配置成功,執行正常。
然後可以退出hadoop。,以後再用時再啟動,匯入資料
bin/stop-all.sh
Hadoop測試
瀏覽NameNode和JobTracker的網路介面,它們的地址預設為:
NameNode - http://node3:50070/
JobTracker - http://node3:50030/