1. 程式人生 > >Hadoop學習(一)---搭建

Hadoop學習(一)---搭建

一,VMware,Centos 7下載以及安裝

官網下載即可,然後虛擬機器安裝也是傻瓜式下一步下一步安裝。

二,JDK,hadoop安裝

1.JDK官網下載到虛擬機器,解壓到/opt/modules/目錄(沒有就建立一個)。
2.配置JDK環境變數。

進去解壓後的目錄,我的是
在這裡插入圖片描述
得到該路徑。
在這裡插入圖片描述
寫入這幾行

export JAVA_HOME="/opt/modules/jdk1.8.0_191"
export PATH=$JAVA_HOME/bin:$PATH

JAVA_HOME是上面pwd後得到的路徑。
在這裡插入圖片描述
3.測試JDK:
在這裡插入圖片描述
4.Hadoop下載到虛擬機器,解壓到/opt/modules/目錄(沒有就建立一個)。

5.配置Hadoop中的hadoop-env.sh
在這裡插入圖片描述
更改這一行,JAVA_HOME是剛剛pwd後得到的路徑
在這裡插入圖片描述
6.配置Hadoo環境變數
進去解壓後的目錄,我的是
在這裡插入圖片描述
得到該路徑。
在這裡插入圖片描述
寫入這幾行

export HADOOP_HOME=/opt/modules/hadoop-2.8.5
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

HADOOP_HOME是上面pwd後得到的路徑。
在這裡插入圖片描述
7.測試Hadoop:
在這裡插入圖片描述

三,關閉防火牆,修改靜態ip,修改hostname

1.關閉防火牆

systemctl stop firewalld.service

2.修改靜態ip
2.1.關閉VMware中虛擬網路編輯器中DHCP服務
2.2.修改ifcfg-ens33檔案

vim /etc/sysconfig/network-scripts/ifcfg-ens33 
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO=static	#修改
IPADDR="192.168.32.133"	#增加
NETMAS="255.255.255.0"	#增加
GATEWA="192.168.32.2"	#增加
DNS="192.168.32.1" 	#增加
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="0c99dbd0-79ee-45b4-9f84-dcab63e47a75"
DEVICE="ens33"
ONBOOT="yes"	#修改
~             

2.3.重啟網路服務

service network restart

3.修改hostname

hostnamectl set-hostname xxx

四,本地執行Hadoop

1.建立一個資料夾存放資料
我的資料夾在:
/opt/modules/hadoop-2.8.5/input
裡面的資料為hadoop的配置資訊
在這裡插入圖片描述
2.執行share目錄下的mapreduce程式的grep案例:

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.5.jar grep input/ output/ 'dfs[a-z]+'

input是存放輸入檔案的資料夾,output是存放輸出的資料夾(不能已經存在),後面的字串是需要匹配的。
結果是:
在這裡插入圖片描述

五,偽分散式執行Hadoop

1.首次使用需要(後面別再執行)namenode格式化

hdfs namenode -format

2.啟動namenode和datanode

hadoop-daemon.sh start namenode
hadoop-daemon.sh start datanode

3.上傳一個輸入檔案

hadoop fs -put wcinput/ /user

wcinput是本地上一個資料夾,裡面有資料,/user是hdfs上的資料夾
4.執行wordcount案例

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.5.jar wordcount /user/wcinput/ /user/output/

得到的結果再hdfs上的/user/output目錄