轉載請注明源出處:http://www.cnblogs.com/lighten/p/6106891.html
最近開始學習大數據相關的知識,最著名的就是開源的hadoop平台了。這里記錄一下目前最新版的hadoop在Ubuntu系統下的搭建過程。搭建過程中發現一篇十分清晰全面的搭建文章,本文刪減了一些不重要的內容,細化了一些內容。可以點擊此處查看:原文。
1.JDK的安裝
hadoop是使用Java開發的一個大數據平台,自然少不了Java運行環境的安裝了,當然使用hadoop不一定需要java語言,hadoop的開發支持很多種語言。
Java運行環境的安裝詳見另一篇文章,這里就不敘述了:Ubuntu16.04安裝JDK。
2.配置SSH及免密碼登陸
hadoop需要使用SSH的方式登陸,linux下需要安裝SSH。客戶端已經安裝好了,只需要安裝服務端就可以了:
sudo apt-get install openssh-server
測試登陸本機 ssh localhost 輸入yes就應該可以登錄了。但是每次輸入比較繁瑣,如果是集群那就是災難了,所以要配置成免密碼登陸的方式。
一共有三步:
1.生成公鑰私鑰 ssh -keygen -t rsa,將在~/.ssh文件夾下生成文件id_rsa:私鑰,id_rsa.pub:公鑰
2.導入公鑰到認證文件,更改權限:
1)導入本機:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
2)導入服務器:
首先將公鑰復制到服務器:
scp ~/.ssh/id_rsa.pub xxx@host:/home/xxx/id_rsa.pub
然后,將公鑰導入到認證文件,這一步的操作在服務器上進行:
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
最后在服務器上更改權限:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
3)測試:ssh localhost 第一次需要輸入yes,之后就不需要了。
3.Hadoop的安裝
1.下載hadoop安裝包,下載地址:點這里。下載binary就行了。也可以使用wget命令下載。
2.解壓、移動到你想要放置的文件夾
tar -zvxf hadoop-2.7.3.tar.gz
mv ./hadoop-2.7.3.tar.gz /opt/hadoop
3.創建hadoop用戶和組,並授予執行權限
sudo addgroup hadoop
sudo usermod -a -G hadoop xxx #將當前用戶加入到hadoop組
sudo gedit etc/sudoers #將hadoop組加入到sudoer
在root ALL=(ALL) ALL后 hadoop ALL=(ALL) ALL
sudo chmod -R 755 /opt/hadoop
sudo chown -R xxx:hadoop /opt/hadoop //否則ssh會拒絕訪問
這些都是一般需要的操作,這篇文章還進行了其它的配置,如果遇到問題可以看看,是不是由於這些配置導致的:點這里。
4.修改配置文件,和JDK的安裝一樣,可以選擇修改哪個文件。這里修改/etc/profile
export HADOOP_HOME=/opt/hadoop2.7.3
export PATH=.:${JAVA_HOME}/bin:${HADOOP_HOME}/bin:$PATH
source /etc/hadoop
這篇配置文章還配了很多其它配置,我暫時沒有配置,遇到問題,可以做為參考。點這里。
5.測試是否配置成功
hadoop version
6.hadoop單機配置(非分布式模式)
hadoop默認是非分布式模式,不需要進行其它配置。可以測試demo來觀察是否配置正確。
cd /opt/hadoop
mkdir input
cp README.txt input
bin/hadoop jar share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.7.3-sources.jar org.apache.hadoop.examples.WordCount input output
7.hadoop偽分布式配置
偽分布式只需要更改兩個文件就夠了。配置文件都在hadoop目錄下的etc/hadoop中。
首先是core-site.xml,設置臨時目錄位置,否則默認會在/tmp/hadoo-hadoop中,這個文件夾在重啟時可能被系統清除掉,所以需要改變配置路徑。
<configuration> <property> <name>hadoop.tmp.dir</name> <value>file:/opt/hadoop/tmp</value> <description>Abase for other temporary directories.</description> </property> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration>
然后就是hdfs-site.xml,偽分布式只有一個節點,所以必須配置成1。還配置了datanode和namenode的節點位置。
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/opt/hadoop/tmp/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/opt/hadoop/tmp/dfs/data</value> </property> </configuration>
接着執行format命令,格式化名稱節點:./bin/hdfs namenode -format
開啟hdfs:./sbin/start-dfs.sh 如果出現ssh認證 輸入yes就可以了。
輸入jps命令查看是否啟動成功
訪問http://localhost:50070 查看節點信息。
關閉hdfs: ./sbin/stop-dfs.sh
上面都是hdfs的配置,接下來就需要配置mapreduce的相關配置了,不配這個也不會影響到什么。但是缺少了資源調度,hadoop2.x版本使用yarn來進行任務調度管理,這是與1.x版本最大的不同。
cp ./etc/hadoop/mapred-site.xml.template ./etc/hadoop/mapred-site.xml
vim ./etc/hadoop/mapred-site.xml
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
修改yarn的配置文件:yarn-site.xml
<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
啟動yarn,要先啟動了hdfs:./sbin/start-yarn.sh
開啟歷史服務器,這樣可以在web界面中查看任務運行情況:./sbin/mr-jobhistory-daemon.sh start historyserver
不啟用 YARN 時,是 “mapred.LocalJobRunner” 在跑任務,啟用 YARN 之后,是 “mapred.YARNRunner” 在跑任務。啟動 YARN 有個好處是可以通過 Web 界面查看任務的運行情況:http://localhost:8088/cluster 。
8.分布式部署,沒有兩台電腦,沒有嘗試,具體見:這里。
4 后語
由於本機之前進行的配置,所以難免在寫的時候會遺漏一些細節,如果有什么問題,請指教。