Centos Linux上安裝hadoop僞分佈式詳細過程(小白必讀)

一 準備工具(下載地址已附上)

本次安裝所需要的工具:
1.Linux版本:VMware-Workstation Centos6

(以下藍色字體爲超鏈接,直接點擊即可跳轉)
2.hadoop版本:2.7.1
hadoop版本:hadoop-2.7.1 64位,Linux版本,文件大小200M左右

3.jdk版本:1.8.0_11
Java版本:jdk1.8.0_11,64位,Linux版本,文件大小150M左右

二 上傳文件到Linux

關於這步中最核心的如何連接文件傳輸協議–Xshll6?
我已發佈了有關博客文章,附上鍊接:
如何傳文件到虛擬機上

三 配置前的準備工作

(建議大家可以自行去百度查找,安裝vm-tools 工具,這樣可以方便複製window上的文本複製粘貼到Linux上)

1.首先進入到root超級用戶,方便操作

su root

2.關閉防火牆以及永遠關閉
不知道本機的防火牆是否關閉的可以用命令 service iptables status 查看ip狀態,如若沒關閉,則使用命令

service iptables stop 
chkconfig iptables off  

第一個是暫時關閉防火牆,重啓失效,第二個永久關閉防火牆,兩者配合使用永久關閉

3.配置hadoop主機的用戶配置,以及免密設置

修改方便記憶跟操作的主機名,我們需要設置主機名

執行:

vim  /etc/sysconfig/network 

在這裏插入圖片描述
找到HOSTNAME改等號後面就可以改你想改的主機名稱了

但是這種方式更改主機名需要重啓才能永久生效,因爲主機名屬於內核參數 
我們可以直接:

hostname bigdata 

這樣,我們先配置 /etc/sysconfig/network文件,然後在命令行輸入命令,就可以達到不重啓或重啓都是主機名都是同一個的目的

查看主機名映射的ip地址

ifconfig


記住這裏的ip地址:192.168.65.25,這個是主機名的ip映射地址,待會配置文件要用到 ( 具體的ip看你顯示什麼,如果沒有顯示可以參考最上面第二步上傳文件到Linux鏈接)

默認的主機名是localhost,爲了防止混淆,把192.168.65.25映射的localhost改成剛纔的設置的主機名,我們可以修改 /etc/hosts 下的主機名,直接使用:

vim /ect/hosts

進入後添加剛纔的IP地址,主機名,之間空一格,參考下面圖片設置
成:bigdata
在這裏插入圖片描述
4.設置免密登錄

因爲僞分佈式的主機節點登錄需要自己輸入當前用戶密碼登錄,所以爲了方便,我們需要設置免密
輸入命令:

ssh-keygen

然後一直按回車
在這裏插入圖片描述
他會生成節點的公鑰和私鑰,生成的文件會自動放在/root/.ssh目錄下

因爲是僞分佈式,所以我們不用複製這個密匙登錄到其他機器
直接用:

拷貝那個自動生成的公鑰跟密鑰

ssh-copy-id root@bigdata

在這裏插入圖片描述
出現上面信息就完成了bigdata這個主機的免密登錄了

5.解壓jdk跟hadoop到指定目錄(這個目錄看自己設置的)

因爲我的用戶登錄時haigui,所以我把他們都放在/home/haigui/下,方便待會設置環境變量
使用命令:
找到你上傳的jdk跟hadoop壓縮包的目錄

tar -xf ./jdk-8u11-linux-x64.tar.gz /home/haigui
tar -xf ./hadoop-2.7.1_64bit.tar.gz /home/haigui

然後我爲了方便,把這兩個名字改成了hadoop,jdk,如圖
在這裏插入圖片描述
6.配置java即jdk環境變量

把剛纔解壓的jdk配置他的環境變量
首先我們先編輯環境變量系統文件:

vim /etc/profile

在這裏插入圖片描述
(因爲我這裏的文件路徑爲/home/haigui/下,只要有關於這路徑的,大家都需要改成自己jdk跟hadoop實際的路徑,有箭頭標識的就要改)

因爲我已經安裝好了僞分佈式hadoop,因此這裏有了後面需要配置的hadoop環境變量,爲了方便大家,大家可直接複製粘貼

#java&hadoop
JAVA_HOME=/home/haigui/jdk
HADOOP_HOME=/home/haigui/hadoop
PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export JAVA_HOME PATH CLASSPATH HADOOP_HOME
export JAVA_JRE=/home/haigui/jdk/jre
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_JRE/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

配置完這個文件後,我們用:

  source /etc/profile

使這個文件立即生效

7.使用命令,檢查是否配置完畢

jdk:

java -version

在這裏插入圖片描述
hadoop:

hadoop versions

在這裏插入圖片描述
出現上面的信息,表示安裝配置jdk跟hadoop成功啦!
接下來,配置hadoop核心配置文件啦.

四 配置核心文件(重點)

1.說明配置文件的一些注意事項

hadoop的核心配置文件都在 /home/haigui/hadoop/etc/hadoop/ 下,如果沒有特別說明,所以下面所有配置文件都要進這個 /home/haigui/hadoop/etc/hadoop/ .(這個目錄是自己設置hadoop目錄)
bigdata 這個主機名,是你在上面自己設置的主機名

2.配置 hadoop-env.sh(在/hadoop/etc/hadoop/下,以下幾步的文件都是)

編輯這個文件:

vim hadoop-env.sh

爲了方便查找我們要改的信息,在命令行模式,輸入 :se nu 顯示行號
在這裏插入圖片描述
然後找到25行,跟33行改成所對應的jdk目錄,跟hadoop目錄(注意這裏是hadoo目錄後面還有/ect/hadoop),具體看下圖。
在這裏插入圖片描述
保存並退出

然後執行:

source hadoop-env.sh

讓配置文件立即生效

3.編輯 core-site.xml

首先在hadoop目錄下:/home/haigui/hadoop/ ,創建一個新的“tmp”目錄

編輯這個文件:

vim core-site.xml

注意下面的箭頭標識的地方:
第一個箭頭:
bigdata是你上面設置的主機名

第二個箭頭:
寫上這個“tmp”這個目錄的路徑

如圖:
在這裏插入圖片描述
在文件最下面添加下面的(新的這個文件,應該是隻有跟的,你需要做添加2個property節點,裏面放配置文件)

<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://bigdata:9000</value>
</property>
<property>
  <name>hadoop.tmp.dir</name>
  <value>/home/haigui/hadoop/tmp</value>
</property>
</configuration>

保存並退出

4.編輯 hdfs-site.xml

vim  hdfs-site.xml

按照第二步的照着抄:
在這裏插入圖片描述

<configuration>
<property>
  <name>dfs.replication</name>
 <value>1</value>
</property>

<!--設置hdfs的操作權限,false表示任何用戶都可以在hdfs上操作文件-->
<property>
  <name>dfs.permissions</name>
  <value>false</value>
 </property>
</configuration>

保存並退出

5.編輯 mapred-site.xml

這個文件初始時是沒有的,但是有一個模板文件,mapred-site.xml.template
所以需要拷貝一份,並重命名爲mapred-site.xml
使用命令:
(需要進入到/home/haigui/hadoop/etc/hadoop

cp ./mapred-site.xml.template ./mapred-site.xml

然後編輯打開 mapred-site.xml

vim mapred-site.xml

在這裏插入圖片描述
直接複製:

<configuration>
<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
  </property>
</configuration>

保存並退出

6.編輯 yarn-site.xml

編輯打開:

vim yarn-site.xml

在這裏插入圖片描述
箭頭標識:
bigdata是你上面設置的主機名

直接複製:

<configuration>
<property>
     <!--指定yarn的老大 resoucemanager的地址-->
   <name>yarn.resourcemanager.hostname</name>:
   <value>bigdata</value>
</property>       
<property>
         <!--NodeManager獲取數據的方式-->
     <name>yarn.nodemanager.aux-services</name>
     <value>mapreduce_shuffle</value>
</property>
</configuration>

最後保存退出

7.編輯slaves文件

vim slaves

直接在最上面寫上你上面自己設置的主機名。
在這裏插入圖片描述
保存並退出

到這裏,我們就配置完了hadoop核心文件了,基本上就配置好了,接下來是啓動跟實例測試。

五 查看及啓動

1.用命令 jps 查看在線的工作節點

jps

在這裏插入圖片描述
我們可以看到沒有啓動hadoop,是沒有任何節點在線的

2.格式化namenode

在第一次安裝hadoop的時候,需要對namenode進行格式化,以後請不要隨便在去用這個命令格式化namenode

hadoop namenode -format

只要出現 successfully則表明格式化成功。
在這裏插入圖片描述
3. 啓動hadoop

因爲我們已經配置hadoop的環境變量了,所以不要在sbin 目錄下啓動,在任何目錄下直接用這個命令都能啓動hadoop
直接使用這個命令

start-dfs.sh

(這個命令是啓動hdfs的,還有一個命令對應的是啓動yarn:start-yarn.sh),假如想完全啓動hadoop,可以直接輸入:start-start.sh,啓動hdfs跟yarn)

以後出現:WARN util.NativeCodeLoader:…警告的信息的不用管它,直接忽略就行了
在這裏插入圖片描述
然後在jps查看:
在這裏插入圖片描述
出現上面這些說明hadoop僞分佈式配置好了。

4…打開瀏覽器輸入 http://bigdata:50070
查看能成功打開 namenode狀態信息

在這裏插入圖片描述
網頁並且能打開

六 實例測試

既然已經裝好了hadoop了,那麼我們來試試官方給出的wordcount實例操作一下,感受hadoop的強大吧。

1.創建一個本地文件1.txt:

目錄我選擇爲:/home/haigui/1.txt

輸入命令:

vim 1.txt

輸入下面內容:
在這裏插入圖片描述

i like hadoop
and i like study
i like java
i like jdk
i like java jdk hadoop

保存並退出

2.上傳到hdfs文件系統上

我的1.txt是在/home/haigui/下
在這裏插入圖片描述
首先先在hdfs的根目錄下創建一個input目錄,使用命令:

hdfs dfs -mkdir /input

在這裏插入圖片描述
然後上傳到hdfs上:(確保你當前的路徑在/home/haigui下)

hdfs dfs -put ./1.txt  /input

在這裏插入圖片描述
然後查看是否成功上傳:

hdfs dfs -ls /input

在這裏插入圖片描述
看到這裏說明成功上傳了。

3.使用命令讓hadoop工作

在上面的啓動hadoop中,我們只啓動hdfs,沒有啓動yarn,因此我們先使用命令啓動yarn:

start-yarn.sh

在這裏插入圖片描述
然後直接使用命令:

hadoop jar ./hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar wordcount /input /output

在這裏插入圖片描述
我們看到hadoop已經跑起來了,最後的successful代表工作成功!

4.查看輸出結果

hadoop工作成功後會自己在指定路徑/output 生成兩個文件
我們看一下

 hdfs dfs -ls /output

在這裏插入圖片描述
第一個文件/output/_SUCCESS:是表示工作成功的文件,沒有具體的文本,這個我們忽略

第二個文件/output/part-r-00000:纔是我們真正的輸出文件

查看一下結果:

hdfs dfs -cat /output/part-r-00000

在這裏插入圖片描述
最後得出了每個單詞出現的次數

5.介紹該實例
上面那個命令 中下面的路徑:
./hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar

其實是hadoop裏面的官方實例的路徑,如圖:
在這裏插入圖片描述
wordcount 是說使用這個命令去統計danc
/input 是hadoop工作輸入的路徑
/output是hadoop工作輸出的路徑(這個路徑不能率先存在)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章