1.環境:ubuntu、hadoop2.7.3
2.在Ubuntu下創建hadoop用戶組和用戶
① 添加hadoop用戶到系統用戶
② 現在只是添加了一個用戶hadoop,它並不具備管理員權限,我們給hadoop用戶添加權限,打開/etc/sudoers文件
命令:sudo vi /etc/sudoers
③ 在root ALL=(ALL:ALL) ALL下添加hadoop ALL=(ALL:ALL) ALL
此文件為只讀文件,修改后強制保存::wq!
3.安裝ssh服務
命令:sudo apt-get install ssh openssh-server
4.使用ssh進行無密碼驗證登錄
① 先進入hadoop用戶
命令: su hadoop
② 作為一個安全通信協議(ssh生成密鑰有rsa和dsa兩種生成方式,默認情況下采用rsa方式),使用時需要密碼,因此我們要設置成免密碼登錄,生成私鑰和公鑰:
(注:回車后會在~/.ssh/下生成兩個文件:id_rsa和id_rsa.pub這兩個文件是成對出現的前者為私鑰,后者為公鑰)
進入~/.ssh/目錄下,將公鑰id_rsa.pub追加到authorized_keys授權文件中,開始是沒有authorized_keys文件的(authorized_keys 用於保存所有允許以當前用戶身份登錄到ssh客戶端用戶的公鑰內容):
命令:cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys
③ 然后即可無密碼驗證登錄了
命令:ssh localhost
5.下載Hadoop安裝包
官網地址:
https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/stable/
6.解壓縮Hadoop安裝包
要確保所有的操作都是在用戶hadoop下完成的,所以將該hadoop文件夾的屬主用戶設為hadoop
命令:sudo chown -R hadoop:hadoop hadoop
7.安裝Java
8.配置Hadoop中相應的文件
需要配置的文件如下,hadoop-env.sh,core-site.xml,mapred-site.xml.template,hdfs-site.xml,所有的文件均位於/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>
② mapred-site.xml.template配置如下:
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
③ 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>
其中dfs.namenode.name.dir和dfs.datanode.data.dir的路徑可以自由設置,最好在hadoop.tmp.dir的目錄下面。
補充,如果運行Hadoop的時候發現找不到jdk,可以直接將jdk的路徑放置在hadoop-env.sh里面,具體如下:
export JAVA_HOME="/usr/local/jdk1.8.0_91"
9.運行Hadoop
① 初始化HDFS系統
命令:bin/hdfs namenode -format
② 開啟NameNode和DataNode守護進程
命令:sbin/start-dfs.sh,成功如下:
③ 查看進程信息
命令:jps
④ 查看Web UI
在瀏覽器輸入http://192.168.86.126:50070/
10.運行WordCount Demo
① 在本地新建一個文件,在/home/download/wangling目錄下新建了一個words文檔,里面的內容可以隨便填寫。此words里寫的如下:
quux labs foo bar quux
② 在HDFS中新建一個文件夾,用於上傳本地的words文檔,在hadoop目錄下輸入如下命令:
命令:bin/hdfs dfs -mkdir /test,表示在hdfs的根目錄下建立了一個test目錄
使用如下命令可以查看HDFS根目錄下的目錄結構
命令:bin/hdfs dfs -ls /
③ 將本地words文檔上傳到test目錄中
命令:bin/hdfs dfs -put /home/download/wangling/words /test/
表示已經將本地的words文檔上傳到了test目錄下了。
④ 運行wordcount
命令:bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /test/words /test/out
運行完成后,在/test目錄下生成名為out的文件
查看命令:bin/hdfs dfs -ls /test
⑤ 查看運行結果
命令:bin/hdfs dfs -ls /test/out
bin/hadoop fs -cat /test/out/part-r-00000