#環(huán)境
該教程系統(tǒng)環(huán)境為 Ubuntu15.04(其他版本的Linux操作系統(tǒng)可以借鑒) ,Hadoop版本為Hadoop2.6.0
#創(chuàng)建一個(gè)Hadoop的用戶
在安裝 Hadoop 之前,盡量創(chuàng)建一個(gè)專門的 Hadoop 用戶,我的Hadoop用戶名:hadoop,密碼自己設(shè)計(jì)一個(gè)簡(jiǎn)單容易記的。
[ -m ] 使用者目錄如果不在則自動(dòng)創(chuàng)建
[ -s ] 使用 /bin/bash 作為 shell
Ubuntu將用戶加入用戶組和cenOS不同,要注意。(centOS將普通用戶添加到用戶組和免密碼(含Ubuntu)使用 sudo)
#更新apt
sudo apt-get update
如果遇到Hash校驗(yàn)和不符等問(wèn)題可以更換源來(lái)解決(Ubuntu15.04 更換源 · Linux閑談雜記1)
#安裝 SSH server、配置SSH無(wú)密碼登錄
SSH了解:
SSH 分 openssh-client(Ubuntu已默認(rèn)安裝) 與 openssh-server(sudo apt-get install openssh-server),
前者用來(lái)登錄到別的機(jī)子上,后者為其他機(jī)子登錄到本機(jī)。
ssh-server配置文件位于/ etc/ssh/sshd_config
啟動(dòng)SSH服務(wù):
sudo /etc/init.d/ssh stop
sudo /etc/init.d/ssh start
這里我們只需要安裝 openssh-server
sudo apt-get install openssh-server
然后登錄到 本機(jī)
ssh localhost
exit //退出剛才的登錄
利用 ssh-keygen 生成密鑰,并將密鑰加入到授權(quán)中:(Linux/UNIX下使用ssh-keygen設(shè)置SSH無(wú)密碼登錄)
將公鑰 id_rsa.pub 加入 授權(quán) authorized_keys 中
#下載安裝JDK
下載jdk1.7(官方下載)
根據(jù)操作系統(tǒng)選擇合適的版本(我選擇的是Linux x64 ××.tar.gz)
解壓到安裝的位置(我解壓到/usr/Java/jdk××)
tar -zxvf jdk××(全名).tar.gz -C /usr/java/
tar命令
-c 壓縮
-x 解壓
-z (gzip)
-v 顯示
-f 后面接 要處理文件的名字
-C 后面接 處理之后的目標(biāo)路徑
配置java環(huán)境變量(可以在/etc/profile、/etc/bashrc、/etc/environment等多個(gè)文件中配置)
vim /etc/profile
java -version
#下載安裝Hadoop(http://mirrors.cnnic.cn/apache/hadoop/common/hadoop-2.6.0/)
下載 hadoop××.tar.gz 這個(gè)格式的文件,這是編譯好的,包含 src 的則是 Hadoop 源代碼。
同時(shí)也可以下載 hadoop-2.x.y.tar.gz.mds 用來(lái)校驗(yàn) hadoop××.tar.gz 的完整性。
進(jìn)入下載目錄:(對(duì)比md5檢驗(yàn)值)
cat./hadoop-2.6.0.tar.gz.mds| grep 'MD5'# 列出md5檢驗(yàn)值
md5sum./hadoop-2.6.0.tar.gz| tr "a-z""A-Z"# 計(jì)算md5值,并轉(zhuǎn)化為大寫,方便比較
將 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# 修改文件權(quán)限,這部真的很重要(我被這步坑過(guò))
配置Hadoop環(huán)境變量(同Java環(huán)境變量):
#Hadoop偽分布式(節(jié)點(diǎn)既作為 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.配置完成后,執(zhí)行 namenode 的格式化:
hdfs namenode -format
5.start-all.sh/stop-all.sh測(cè)試:
jps 看現(xiàn)在都哪些進(jìn)程跑起來(lái)了,如果有進(jìn)程沒(méi)跑起來(lái),可以耐心查看日志,然后GG。
6.web訪問(wèn)
可以通過(guò)http://localhost:50070/訪問(wèn)Hadoop的web界面查看信息
#運(yùn)行Hadoop偽分布式實(shí)例
1.首先創(chuàng)建用戶目錄
2.將需要處理的文件 -put 到 分布式文件系統(tǒng) 的 /uer/hadoop/input 文件夾中
hdfs dfs -put etc/hadoop/*.xml input
hdfs dfs -ls input #檢測(cè)復(fù)制
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep input output 'dfs[a-z.]+'
運(yùn)行MapReduce作業(yè),從分布式文件系統(tǒng)下 input 文件夾中提取輸入文本
hdfs dfs -cat output/* 查看輸出結(jié)果
將結(jié)果提取到本機(jī)上
rm -R ./output #將原來(lái)的output刪掉
hdfs dfs -get output output
cat ./output/*
注意!
Hadoop運(yùn)行程序的時(shí)候,默認(rèn)輸出目錄input不能存在,因此一定要在執(zhí)行之前將其刪除
注意!!(被坑過(guò))