hadoop集群環(huán)境搭建之偽分布式集群環(huán)境搭建(一)

hadoop集群環(huán)境搭建之偽分布式集群環(huán)境搭建(一)

1、Linux基本環(huán)境配置

1.1 虛擬機(jī)網(wǎng)絡(luò)模式選擇NAT

一般虛擬機(jī)默認(rèn)是NAT模式

1.2 修改主機(jī)名

vim /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=zhang    # 主機(jī)名

1.3 修改IP

切換root的用戶祖凫,修改/etc/sysconfig/network-scripts/ifcfg-eth0文件

有的是/etc/sysconfig/network-scripts/ifcfg-eno16777736文件

vim /etc/sysconfig/network-scripts/ifcfg-eth0

TYPE=Ethernet
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777736
UUID=2ce59a48-ae92-483b-a73c-7844147b6ba0
HWADDR=00:0C:29:21:8D:08
PREFIX0=24  
DEFROUTE=no
BOOTPROTO=none  # 設(shè)置none
ONBOOT=yes  # 開始機(jī)自動網(wǎng)絡(luò)
IPADDR=192.168.108.99   # 設(shè)置IP
NETMASK=255.255.255.0   #  子網(wǎng)掩碼
GATEWAY0=192.168.108.2 # 設(shè)置網(wǎng)關(guān)

1.4 修改主機(jī)名和IP的映射關(guān)系

以root用戶非竿,打開/etc/hosts文件

vim /etc/hosts

192.168.108.99 zhang

修改/etc/hostname中文件

vim /etc/hostname

zhang

1.5 關(guān)閉防火墻

#查看防火墻狀態(tài)
service iptables status
#關(guān)閉防火墻
service iptables stop
#查看防火墻開機(jī)啟動狀態(tài)
chkconfig iptables --list
#關(guān)閉防火墻開機(jī)啟動
chkconfig iptables off

1.6 修改sudo

切換到root用戶下

su root

修改/etc/sudoers文件權(quán)限蜕着,不然修改不了該文件

chmod u+w /etc/sudoers

打開/etc/sudoers文件

vim /etc/sudoers

給用戶添加執(zhí)行的權(quán)限

# hadoop 用戶名
hadoop ALL=(root) NOPASSWD:ALL

1.7 關(guān)閉linux圖形化界面

centos 7以下版本:

vim /etc/inittab

id:5:initdefault:

改為

id:3:initdefault:

centos 7.x版本:

  • 刪除已經(jīng)存在的符號鏈接
rm /etc/systemd/system/default.target
  • 默認(rèn)級別轉(zhuǎn)換為3
# 默認(rèn)級別轉(zhuǎn)換為3(文本模式)
ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target

# 默認(rèn)級別轉(zhuǎn)換為5(圖形模式)
ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
  • 重啟
reboot

如果需要切換圖形界面執(zhí)行命令:startx


2、Linux之java環(huán)境安裝

在CentOS 7.x的Linux操作系統(tǒng)下,會自帶openjdk的環(huán)境承匣,如果我們想自己安裝jdk環(huán)境蓖乘,需要卸載自帶的openjdk環(huán)境。

步驟如下:

2.1 查看java環(huán)境

java -version

2.2 查詢jdk

# 查看linux的jdk
rpm -qa | grep jdk

2.3 刪除jdk

# 移除openjdk
yum -y remove java-openjdk-xxxxx

java-openjdk-xxxxx :是需要刪除的openjdk

刪除自帶的openjdk環(huán)境后韧骗,我們就開始安裝我們的jdk嘉抒。

2.4 從Windows或其他機(jī)器獲取tar包

# 將文件傳出Linux中的用戶目錄
scp D:/dsoftmanager/jdk-8u151-linux-x64.tar.gz root@192.168.108.99:/home/hadoop

D:/dsoftmanager/jdk-8u151-linux-x64.tar.gz:A機(jī)器的tar包目錄位置

root@192.168.108.99:/home/hadoop:linux機(jī)器存儲tar的目錄位置

2.5 解壓tar包到指定的目錄

# 創(chuàng)建java目錄
mkdir /java

# 將文件復(fù)制到j(luò)ava目錄
cp /home/hadoop/jdk-8u151-linux-x64.tar.gz  /java

# 進(jìn)入/java
cd /java

# 解壓縮
tar -zxvf jdk-8u151-linux-x64.tar.gz 

2.6 配置環(huán)境變量

# 打開配置文件
vim /etc/profile

打開/etc/profile文件,在文件的末尾袍暴,放入下面的配置信息:

# 配置java環(huán)境

JAVA_HOME=/java/jdk1.8.0_151
PATH=$PATH:$JAVA_HOME/bin:/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export  JAVA_HOME  PATH  CLASSPATH

2.7 重啟機(jī)器

# 立即重啟機(jī)器
shutdown -r now

或者

reboot

如果不重啟些侍,配置不會生效。

2.8 java環(huán)境測試

# 測試java環(huán)境是否安裝成功
java -version
javac -version

出現(xiàn)如下信息政模,表示安裝成功岗宣。

[hadoop@localhost Desktop]$ java -version
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)

[hadoop@localhost Desktop]$ javac -version
javac 1.8.0_151

3、hadoop偽分布式集群環(huán)境搭建

關(guān)于Linux機(jī)器環(huán)境和java環(huán)境配置淋样,參考我的上一篇文章:hadoop集群環(huán)境搭建之Linux基本環(huán)境和java環(huán)境配置(一)耗式,在Linux環(huán)境和java環(huán)境配置好之后,我們開始搭建hadoop的偽分布式集群(偽分布式集群:在一臺機(jī)器上跑hadoop需要的服務(wù))吧趁猴。

3.1 上傳hadoop安裝包

scp d:/dsoftmanager/hadoop-2.7.5.tar.gz root@192.168.108.99:/home/hadoop

3.2 解壓安裝包

# 創(chuàng)建一個hadoop的目錄
mkdir /hadoop

# 將/home/hadoop目錄下的hadoop-2.7.5.tar.gz文件復(fù)制到/hadoop目錄下
cp /home/hadoop/hadoop-2.7.5.tar.gz /hadoop

# 進(jìn)入/hadoop目錄
cd /hadoop

# 解壓
tar -zxvf hadoop-2.7.5.tar.gz

3.3 配置hadoop環(huán)境變量

# 打開配置文件
vim /etc/profile

# 在配置文件中末尾輸入
export HADOOP_HOME=/hadoop/hadoop-2.7.5
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

重啟Linux刊咳,測試hadoop配置是否生效

# 重啟
reboot

# 測試hadoop環(huán)境配置是否生效
echo ${HADOOP_HOME}

輸出:/hadoop/hadoop-2.7.5

3.4 修改hadoop配置

  • 3.4.1 將${HADOOP_HOME}設(shè)置權(quán)限許可

    sudo chown -R hadoop:hadoop ${HADOOP_HOME}
    
  • 3.4.2 配置hadoop-env.shJAVA_HOME參數(shù)

    # 使用sudo命令,打開hadoop-env.sh文件
    sudo vim ${HADOOP_HOME}/etc/hadoop/hadoop-env.sh
    
    # 修改JAVA_HOME的環(huán)境配置為如下所示:
    export JAVA_HOME=/java/jdk1.8.0_151
    
  • 3.4.3 配置core-site.xml文件

    # 創(chuàng)建一個tmp目錄
    mkdir ${HADOOP_HOME}/tmp
    
    # 設(shè)置權(quán)限
    sudo chown hadoop:hadoop ${HADOOP_HOME}/tmp
    
    # 打開core-site.xml文件
    sudo vim ${HADOOP_HOME}/etc/hadoop/core-site.xml
    
    # 在<configuration>中添加配置
    <configuration>
        <!-- 指定HADOOP所使用的文件系統(tǒng)schema(URI)儡司,HDFS的老大(NameNode)的地址 -->
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://zhang:9000</value>
        </property>
        <!-- 指定hadoop運行時產(chǎn)生臨時文件的存儲目錄 -->
        <property>
            <name>hadoop.tmp.dir</name>
            <value>/hadoop/hadoop-2.7.5/tmp</value>
        </property>
    </configuration>
    
  • 3.4.4 配置hdfs-site.xml文件

    <configuration>
        <!-- 指定HDFS副本的數(shù)量 -->
        <property>
            <name>dfs.replication</name>
            <value>1</value>
        </property>
        
        <property>
            <name>dfs.secondary.http.address</name>
            <value>192.168.108.99:50090</value>
        </property>
    </configuration>
    
  • 3.4.5 配置mapred-site.xml文件

    # 將mapred-site.xml.template改為mapred-site.xml
    sudo mv mapred-site.xml.template mapred-site.xml
    
    # 配置mapred-site.xml
    <configuration>
        <!-- 指定mr運行在yarn上 -->
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
    </configuration>
    
  • 3.4.6 配置yarn-site.xml文件

    <configuration>
        <!-- 指定YARN的老大(ResourceManager)的地址 -->
        <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>zhang</value>
        </property>
        <!-- reducer獲取數(shù)據(jù)的方式 -->
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>
    </configuration>
    

3.5 格式化namenode

hdfs namenode -format

格式化成功會在${HADOOP_HOME}/tmp/dfs/name/current/目錄生成幾個文件秽澳,表示成功冲簿,如下:

image

3.6 啟動各個服務(wù)

進(jìn)入${HADOOP_HOME}目錄

  • 3.6.1 啟動namenode

    # 啟動namenode
    sbin/hadoop-daemon.sh start namenode
    

    出現(xiàn)如下結(jié)果病游,表示啟動成功

    image
  • 3.6.2 啟動datanode

    # 啟動datanode
    sbin/hadoop-daemon.sh start datanode
    

    出現(xiàn)如下結(jié)果凹蜂,表示啟動成功

    image
  • 3.6.3 啟動SecondaryNameNode

    # 啟動secondarynamenode
    sbin/hadoop-daemon.sh start secondarynamenode
    

    出現(xiàn)如下結(jié)果醉锅,表示啟動成功

    image
  • 3.6.4 啟動Resourcemanager

    # 啟動resourcemanager
    sbin/yarn-daemon.sh start resourcemanager
    

    出現(xiàn)如下結(jié)果鼎俘,表示啟動成功

    image
  • 3.6.5 啟動nodemanager

    # 啟動nodemanager
    sbin/yarn-daemon.sh start nodemanager
    

    出現(xiàn)如下結(jié)果妥粟,表示啟動成功

    image
  • 3.6.6 使用jsp命令查看是否啟動成功

    image
  • 3.6.7 啟動dfs服務(wù)和yarn服務(wù)的另外方式

    # 開啟dfs渔彰,包括namenode笋婿,datanode誉裆,secondarynamenode服務(wù)
    sbin/start-dfs.sh 
    
    # 開啟yarn,包括resourcemanager缸濒,nodemanager
    sbin/start-yarn.sh
    
    # 開啟所有的服務(wù)(過時)
    sbin/start-all.sh
    

    在執(zhí)行啟動時足丢,需要輸入用戶密碼

    image
  • 3.6.8 打開yarn的web頁面

    YARN的Web客戶端端口號是8088,通過http://192.168.108.99:8088/可以查看庇配。

    image

3.7 運行MapReduce Job

在Hadoop的share目錄中斩跌,自帶jar包,里面有一些MapReduce的例子捞慌,位置在share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.5.jar耀鸦。我們可以使用這些例子體驗搭建好的Hadoop平臺。我們以wordCount為例。

  • 3.7.1 創(chuàng)建輸入目錄

    # 進(jìn)入${HADOOP_HOME}目錄
    cd ${HADOOP_HOME}
    
    # 創(chuàng)建輸入目錄
    bin/hdfs dfs -mkdir -p /wordcounttest/input
    
  • 3.7.2 創(chuàng)建測試文件wc.input袖订,內(nèi)容如下:

    ${HADOOP_HOME}目錄下氮帐,創(chuàng)建一個data目錄。在data目錄下創(chuàng)建一個wc.input文件洛姑,文件內(nèi)容:

    # 創(chuàng)建data目錄
    mkdir data
    
    # 進(jìn)入data目錄
    cd data
    
    # 創(chuàng)建wc.input
    vim wc.input
    
    # 在文件中輸入上沐,如下內(nèi)容
    
    hadoop mapreduce hive
    hbase spark storm
    sqoop hadoop hive
    spark hadoop
    
  • 3.7.3 將wc.input文件上傳到HDFS的/wordcounttest/input目錄下:

    bin/hdfs dfs -put data/wc.input /wordcounttest/input
    
  • 3.7.4 查看/wordcounttest/input目錄

    bin/hdfs dfs -ls /wordcounttest/input
    
    image
  • 3.7.5 運行WordCount MapReduce Job

    bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.5.jar wordcount  /wordcounttest/input /wordcounttest/output
    
    image
  • 3.7.6 查看輸出結(jié)果目錄

    bin/hdfs dfs -ls /wordcounttest/output
    
    image
    • output目錄中有兩個文件,_SUCCESS文件是空文件楞艾,有這個文件說明Job執(zhí)行成功参咙。

    • part-r-00000文件是結(jié)果文件,其中-r-說明這個文件是Reduce階段產(chǎn)生的結(jié)果硫眯。

  • 3.7.7 查看輸出文件結(jié)果

    bin/hdfs dfs -cat /wordcounttest/output/part-r-00000
    
    image

3.8 停止Hadoop服務(wù)

# 停止namenode
sbin/hadoop-daemon.sh stop namenode

# 停止datanode
sbin/hadoop-daemon.sh stop datanode

# 停止resourcemanager
sbin/yarn-daemon.sh stop resourcemanager
 停止nodemanager
sbin/yarn-daemon.sh stop nodemanager

停止Hadoop服務(wù)的其他方式

# 停止dfs服務(wù)
sbin/stop-dfs.sh

# 停止yarn服務(wù)
sbin/stop-yarn.sh


# 停止所有服務(wù)
sbin/stop-all.sh
image

注1:開啟歷史服務(wù)

sbin/mr-jobhistory-daemon.sh start historyserver

可以通過http://192.168.108.99:19888打開蕴侧,可看到JobHistory頁面

image

點擊進(jìn)去,可看見Job的詳情頁面舟铜。

image

注2:開啟日志

hadoop默認(rèn)不啟動日志戈盈,我們可以在yarn-site.xml文件中配置啟用日志。

  • 1.log環(huán)境配置
<property>
    <!--是否啟用日志-->
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
</property>
<property>
    <!--設(shè)置日志保存時間,單位秒-->
    <name>yarn.log-aggregation.retain-seconds</name>
    <value>106800</value>
</property>
  • 2.重啟Yarn進(jìn)程
# 停止yarn服務(wù)
sbin/stop-yarn.sh

# 啟動yarn服務(wù)
sbin/start-yarn.sh
  • 3.重啟HistoryServer進(jìn)程
# 停止HistoryServer服務(wù)
sbin/mr-jobhistory-daemon.sh stop historyserver

# 開啟HistoryServer服務(wù)
sbin/mr-jobhistory-daemon.sh start historyserver
  • 4.測試日志谆刨,運行一個MapReduce的demo塘娶,產(chǎn)生日志
bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.5.jar wordcount /wordcounttest/input /wordcounttest/output2
  • 5.查看日志:

進(jìn)入MapReduce的Job頁面

image

點擊進(jìn)入log頁面,如下

image

如果沒有配置yarn-site.xml中的log配置痊夭,不會出現(xiàn)log刁岸,而是一串提示文字。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末她我,一起剝皮案震驚了整個濱河市虹曙,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌番舆,老刑警劉巖酝碳,帶你破解...
    沈念sama閱讀 221,576評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異恨狈,居然都是意外死亡疏哗,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評論 3 399
  • 文/潘曉璐 我一進(jìn)店門禾怠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來返奉,“玉大人,你說我怎么就攤上這事吗氏⊙科” “怎么了?”我有些...
    開封第一講書人閱讀 168,017評論 0 360
  • 文/不壞的土叔 我叫張陵弦讽,是天一觀的道長污尉。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么十厢? 我笑而不...
    開封第一講書人閱讀 59,626評論 1 296
  • 正文 為了忘掉前任等太,我火速辦了婚禮,結(jié)果婚禮上蛮放,老公的妹妹穿的比我還像新娘缩抡。我一直安慰自己,他們只是感情好包颁,可當(dāng)我...
    茶點故事閱讀 68,625評論 6 397
  • 文/花漫 我一把揭開白布瞻想。 她就那樣靜靜地躺著,像睡著了一般娩嚼。 火紅的嫁衣襯著肌膚如雪蘑险。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,255評論 1 308
  • 那天岳悟,我揣著相機(jī)與錄音佃迄,去河邊找鬼。 笑死贵少,一個胖子當(dāng)著我的面吹牛呵俏,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播滔灶,決...
    沈念sama閱讀 40,825評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼普碎,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了录平?” 一聲冷哼從身側(cè)響起麻车,我...
    開封第一講書人閱讀 39,729評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎斗这,沒想到半個月后动猬,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,271評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡表箭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,363評論 3 340
  • 正文 我和宋清朗相戀三年枣察,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片燃逻。...
    茶點故事閱讀 40,498評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖臂痕,靈堂內(nèi)的尸體忽然破棺而出伯襟,到底是詐尸還是另有隱情,我是刑警寧澤握童,帶...
    沈念sama閱讀 36,183評論 5 350
  • 正文 年R本政府宣布姆怪,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏稽揭。R本人自食惡果不足惜俺附,卻給世界環(huán)境...
    茶點故事閱讀 41,867評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望溪掀。 院中可真熱鬧事镣,春花似錦、人聲如沸揪胃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,338評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽喊递。三九已至随闪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間骚勘,已是汗流浹背铐伴。 一陣腳步聲響...
    開封第一講書人閱讀 33,458評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留俏讹,地道東北人当宴。 一個月前我還...
    沈念sama閱讀 48,906評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像藐石,于是被迫代替她去往敵國和親即供。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,507評論 2 359

推薦閱讀更多精彩內(nèi)容