Hadoop安裝最后一步~Hadoop偽分布式配置
□ Hadoop 可以在單節點上以偽分布式的方式運行,Hadoop 進程以分離的 Java 進程來運行,節點既作為 NameNode 也作為 DataNode,同時讀取的是 HDFS 中的文件。 □ Hadoop 的配置文件位於 /usr/local/hadoop/etc/hadoop/ 中,偽分布式需要修改2個配置文件 core-site.xml 和 hdfs-site.xml 。
一、Hadoop偽分布式配置
1,通過gedit 編譯器修改配置文件 core-site.xml 和 hdfs-site.xml(選擇gedit 編譯器是因為操作更加方便)
gedit 編譯器修改配置文件后,點擊菜單欄的保存,退出請按ctr+q
① 修改 core-site.xml命令:
gedit ./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>
② 修改 hdfs-site.xml命令:
gedit ./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>
2, 配置完成后,執行 NameNode 的格式化:
cd /usr/local/hadoop ./bin/hdfs namenode -format
3,開啟 NameNode 和 DataNode 守護進程:
cd /usr/local/hadoop ./sbin/start-dfs.sh #start-dfs.sh是個完整的可執行文件,中間沒有空格
成功啟動后,可以訪問 Web 界面: (注意是在Ubuntu的瀏覽器進行輸入地址哈,不是主機)
http://localhost:9870 查看 NameNode 和 Datanode 信息,還可以在線查看 HDFS 中的文件。
bug:namenode啟動成功,但是不能通過web訪問? 在啟動服務之前需要查看防火牆的狀態(以下的命令是ubuntu的)
systemctl status firewalld.service #~ 提示:Unit firewalld.service could not be found?------說明應該不是防火牆攔截吧~ systemctl stop firewalld.service # 關閉防火牆 systemctl disable firewalld.service # 禁止firewall開機啟動
二、運行Hadoop偽分布式實例:
單機模式,grep 例子讀取的是本地數據,偽分布式讀取的則是 HDFS 上的數據。要使用 HDFS,首先需要在 HDFS 中創建用戶目錄:
① 在 HDFS 中創建用戶目錄:
./bin/hdfs dfs -mkdir -p /user/hadoop
② 接着將 ./etc/hadoop 中的 xml 文件作為輸入文件復制到分布式文件系統中,
即將 /usr/local/hadoop/etc/hadoop 復制到分布式文件系統中的 /user/hadoop/input中:
./bin/hdfs dfs -mkdir input ./bin/hdfs dfs -put ./etc/hadoop/*.xml input
③ 復制完成后,可以通過如下命令查看文件列表:
./bin/hdfs dfs -ls input
④ 偽分布式運行 MapReduce(方式跟單機模式相同,區別在於偽分布式讀取的是HDFS中的文件):
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep input output 'dfs[a-z.]+'
⑤ 查看運行結果的命令(查看的是位於 HDFS 中的輸出結果):
./bin/hdfs dfs -cat output/*
結果如下:
⑥ 我們也可以將運行結果取回到本地:
rm -r ./output # 先刪除本地的 output 文件夾(如果存在) ./bin/hdfs dfs -get output ./output # 將 HDFS 上的 output 文件夾拷貝到本機 cat ./output/*
⑦ 刪除 output 文件夾(若要再次執行Hadoop偽分布式的例子,輸出目錄不能存在,否則會提示錯誤):
./bin/hdfs dfs -rm -r output # 刪除 output 文件夾
⑧ 關閉 Hadoop:
./sbin/stop-dfs.sh
參考文章:《Hadoop安裝教程_單機/偽分布式配置_Hadoop2.6.0(2.7.1)/Ubuntu14.04(16.04)》http://dblab.xmu.edu.cn/blog/install-hadoop/
作者:給力星
大佬的文章還有其他bug的解決或者其他細節,有遇到問題的小伙伴,可以翻一翻