Hadoop — Linux(Ubuntu15.04)下安裝`配置Hadoop(2.6.0)
#環境
該教程系統環境為 Ubuntu15.04(其他版本的Linux作業系統可以借鑑) ,Hadoop版本為Hadoop2.6.0
#建立一個Hadoop的使用者
在安裝 Hadoop 之前,儘量建立一個專門的 Hadoop 使用者,我的Hadoop使用者名稱:hadoop,密碼自己設計一個簡單容易記的。
[ -m ] 使用者目錄如果不在則自動建立
[ -s ] 使用 /bin/bash 作為 shell
#更新apt
sudo apt-get update
如果遇到Hash校驗和不符等問題可以更換源來解決(Ubuntu15.04 更換源 · Linux閒談雜記1)
#安裝 SSH server、配置SSH無密碼登入
SSH瞭解:
SSH 分 openssh-client(Ubuntu已預設安裝) 與 openssh-server(sudo apt-get install openssh-server),
前者用來登入到別的機子上,後者為其他機子登入到本機。
ssh-server配置檔案位於/ etc/ssh/sshd_config
啟動SSH服務:
sudo /etc/init.d/ssh stop
sudo /etc/init.d/ssh start
這裡我們只需要安裝 openssh-server
sudo apt-get install openssh-server
然後登入到 本機
ssh localhost
exit //退出剛才的登入
將公鑰 id_rsa.pub 加入 授權 authorized_keys
中
#下載安裝JDK
下載jdk1.7(官方下載)
根據作業系統選擇合適的版本(我選擇的是Linux x64 ××.tar.gz)
解壓到安裝的位置(我解壓到/usr/java/jdk××)
tar
-zxvf jdk××(全名).tar.gz -C /usr/java/
tar命令
-c 壓縮
-x 解壓
-z (gzip)
-v 顯示
-f 後面接 要處理檔案的名字
-C 後面接 處理之後的目標路徑
配置java環境變數(可以在/etc/profile、/etc/bashrc、/etc/environment等多個檔案中配置)
vim /etc/profile
java -version
下載 hadoop××.tar.gz 這個格式的檔案,這是編譯好的,包含 src 的則是 Hadoop 原始碼。
同時也可以下載 hadoop-2.x.y.tar.gz.mds用來校驗 hadoop××.tar.gz 的完整性。
進入下載目錄:(對比md5檢驗值)
cat./hadoop-2.6.0.tar.gz.mds| grep 'MD5'# 列出md5檢驗值
md5sum./hadoop-2.6.0.tar.gz| tr "a-z""A-Z"# 計算md5值,並轉化為大寫,方便比較
將 Hadoop 安裝至 /usr/local/ 中:
sudo tar-zxvf /home/peerslee/下載/hadoop/hadoop-2.6.0.tar.gz -C /usr/local
cd /usr/local/
sudo mv ./hadoop-2.6.0/ ./hadoop
sudo chown -R hadoop:hadoop ./hadoop# 修改檔案許可權,這部真的很重要(我被這步坑過)
配置Hadoop環境變數(同Java環境變數):
#Hadoop偽分散式(節點既作為 NameNode 也作為 DataNode)配置 1.core-site.xml
vim /usr/local/hadoop/etc/hadoop/core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration></span>
2.hdfs-site.xml vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
</configuration></span>
3.在hadoop-env.sh配置JAVA_HOME:
vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh
4.配置完成後,執行
namenode 的格式化:
hdfs namenode -format5.start-all.sh/stop-all.sh測試:
jps 看現在都哪些程序跑起來了,如果有程序沒跑起來,可以耐心檢視日誌,然後GG。
6.web訪問 可以通過http://localhost:50070/訪問Hadoop的web介面檢視資訊
#執行Hadoop偽分散式例項 1.首先建立使用者目錄
2.將需要處理的檔案 -put 到 分散式檔案系統 的 /uer/hadoop/input 資料夾中 hdfs dfs -put etc/hadoop/*.xml input
hdfs dfs -ls input #檢測複製
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep input output 'dfs[a-z.]+'
執行MapReduce作業,從分散式檔案系統下 input 資料夾中提取輸入文字
hdfs dfs -cat output/* 檢視輸出結果
將結果提取到本機上 rm -R ./output #將原來的output刪掉 hdfs dfs -get output output cat ./output/*
注意! Hadoop執行程式的時候,預設輸出目錄input不能存在,因此一定要在執行之前將其刪除 注意!!(被坑過)