1. 程式人生 > >Hadoop — Linux(Ubuntu15.04)下安裝`配置Hadoop(2.6.0)

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 -format

5.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不能存在,因此一定要在執行之前將其刪除 注意!!(被坑過)