hadoop集群環(huán)境搭建之完全分布式集群環(huán)境搭建(二)

hadoop集群環(huán)境搭建之完全分布式集群環(huán)境搭建(二)

我們?cè)谏弦黄?hadoop集群環(huán)境搭建之偽分布式集群環(huán)境搭建(一)中介紹了hadoop偽分布式集群環(huán)境的搭建蚕涤,下面我們介紹下完全分布式集群環(huán)境搭建。

完全分布式集群是指在多臺(tái)機(jī)器上部署hadoop的服務(wù)茬祷。下面我以三臺(tái)機(jī)器(server1是牢,server2溢吻,server3)為例铆铆。搭建一個(gè)完全分布式的集群環(huán)境建车。

1俺夕、Linux機(jī)器環(huán)境配置

首先在使用VMware虛擬機(jī)創(chuàng)建一臺(tái)虛擬機(jī)server1裳凸。配置好虛擬機(jī)的基本環(huán)境。

1.1 修改主機(jī)名

切換成root用戶

su root

編輯/etc/sysconfig/network文件

vim /etc/sysconfig/network

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

1.2 修改ip

編輯/etc/sysconfig/network-scripts/ifcfg-eno16777736文件

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

修改內(nèi)容如下:

TYPE=Ethernet
DEFROUTE=no # 設(shè)置no
BOOTPROTO=none  # 設(shè)置none
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  
ONBOOT=yes  # 開始機(jī)自動(dòng)網(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.3 修改主機(jī)名和ip映射關(guān)系

編輯/etc/hosts文件

# 編輯/etc/hosts文件
vim /etc/hosts

192.168.108.11 server1

編輯/etc/hostname文件

vim /etc/hostname

zhang

1.4 關(guān)閉防火墻

chkconfig iptables off

1.5 給hadoop用戶添加root操作權(quán)限

修改/etc/sudoers權(quán)限

chmod u+w /etc/sudoers

編輯/etc/sudoers文件劝贸,給hadoop用戶添加root操作權(quán)限

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

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

centos 7以下版本:

vim /etc/inittab

id:5:initdefault:
改為
id:3:initdefault:

centos 7.x版本:

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

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

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

2姨谷、java環(huán)境搭建

2.1 刪除自帶的jdk

  • 執(zhí)行java -version查看java環(huán)境,如果沒有則可以忽略

  • 查看自帶的jdk映九,rpm -qa | grep jdk

  • 刪除自帶的jdk梦湘,yum -y remove java-1.7.0-openjdk-xxxx

2.2 上傳jdk壓縮包

通過Windows客戶端,上傳jdk壓縮包件甥。(使用git命令窗口)

scp D:/dsoftmanager/jdk-8u151-linux-x64.tar.gz root@192.168.108.11:/home/hadoop

2.3 解壓jdk捌议,配置環(huán)境變量

  • 創(chuàng)建/java目錄,sudo mkdir /java

  • 將上傳的jdk壓縮包復(fù)制到/java目錄

    sudo cp /home/hadoop/jdk-8u151-linux-x64.tar.gz /java
    
  • 解壓壓縮包

    # 切換到/java目錄
    cd /java
    
    # 解壓jdk
    sudo tar -zxvf jdk-8u151-linux-x64.tar.gz
    
  • 配置java環(huán)境變量

    # 編輯/etc/profile文件
    vim /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
    
  • 重啟后引有,測(cè)試java -version瓣颅,出現(xiàn)如下,表示成功

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)

3譬正、克隆機(jī)器修改Linux基本的配置

3.1 克隆機(jī)器server2宫补,server3

關(guān)于VMware虛擬機(jī)克隆檬姥,這里不截圖展示,在克隆時(shí)粉怕,選擇完全克隆健民。

3.2 修改server2和server3的配置

需要修改server2和server3的如下文件:

  • 3.2.1 修改/etc/sysconfig/network
vim /etc/sysconfig/network

# server2機(jī)器HOSTNAME改為server2,server3機(jī)器HOSTNAME改為server3
HOSTNAME=server2
  • 3.2.2 修改/etc/sysconfig/network-scripts/ifcfg-eno16777736
vim /etc/sysconfig/network-scripts/ifcfg-eno16777736

# server2機(jī)器將ip改為192.168.108.12斋荞,server3的ip改為192.168.108.13
IPADDR=192.168.108.12

在克隆時(shí)荞雏,會(huì)把網(wǎng)卡信息也一起克隆,所以需要修改網(wǎng)卡的mac值平酿。

修改/etc/sysconfig/network--scripts/ifcfg-eno16777736中的HWADDR的mac值。mac值是每臺(tái)機(jī)器唯一的悦陋。

mac值獲取蜈彼,如圖:

image

具體參考:Linux虛擬機(jī)復(fù)制后eth0不能啟動(dòng)解決方法

  • 3.2.3 修改/etc/hostname
# server2機(jī)器改為server2,server3機(jī)器改為server3
server2
  • 3.2.4 修改/etc/hosts

將server1俺驶,server2幸逆,server3的/etc/hosts都改為

192.168.108.11 server1
192.168.108.12 server2
192.168.108.13 server3
  • 3.2.5 重啟后相互ping一下,能ping通就沒問題
ping 192.168.108.11
ping 192.168.108.12
ping 192.168.108.13

4暮现、SSH無秘登錄

以下操作还绘,每臺(tái)機(jī)器都需要執(zhí)行

4.1 在server1,server2栖袋,server3分別生成公鑰拍顷,私鑰

執(zhí)行ssh-keygen -t rsa命令,一路回車就行

ssh-keygen -t rsa
image

4.2 將生成好的公鑰塘幅,發(fā)送到其他的主機(jī)上

ssh-copy-id server1
ssh-copy-id server2
ssh-copy-id server3
image

4.3 相互以ssh 主機(jī)名進(jìn)行切換

ssh server1

ssh server2

ssh server3

如果不需要輸入密碼昔案,表示無秘登入成功


5、hadoop的壓縮包解壓及環(huán)境變量配置

hadoop的完全分布式集群电媳,先server1機(jī)器將hadoop的環(huán)境配置好踏揣,通過scp命令同步到server2server3機(jī)器上。

5.1 上傳hadoop的壓縮包

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

5.2 壓縮hadoop包

  • 5.2.1 創(chuàng)建/hadoop目錄
sudo mkdir /hadoop
  • 5.2.2 將hadoop壓縮包復(fù)制到/hadoop目錄
sudo cp /home/hadoop/hadoop-2.7.5.tar.gz /hadoop
  • 5.2.3 解壓hadoop包
# 進(jìn)入/hadoop目錄
cd /hadoop

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

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

打開/etc/profile文件匾乓,配置hadoop環(huán)境變量

sudo vim /etc/profile


export HADOOP_HOME=/hadoop/hadoop-2.7.5
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

5.4 重啟捞稿,測(cè)試hadoop環(huán)境變量

echo ${HADOOP_HOME}

輸出:/hadoop/hadoop2.7.5

6、hadoop的服務(wù)基本環(huán)境配置

在配置環(huán)境之前拼缝,我們需要對(duì)server1娱局,server2,server3進(jìn)行hadoop服務(wù)分配珍促。

分配如下:

server1 server2 server3
namenode --- ---
datanode datanode datanode
--- secondarynode ---
resourcemanager --- ---
nodemanager nodemanager nodemanager
--- --- historyserver

6.1 hadoop開發(fā)目錄權(quán)限設(shè)置

把當(dāng)前目錄切換到根目錄/铃辖。執(zhí)行ls -l目錄。

image

我們可以看到hadoop目錄是root用戶權(quán)限猪叙。我們需要將權(quán)限更改為hadoop用戶娇斩。

# 更改/hadoop目錄權(quán)限
sudo chown -R hadoop:hadoop /hadoop

6.2 hadoop-env.sh文件配置

修改hadoop-env.sh的JAVA_HOME環(huán)境

# 將目錄切換到${HADOOP_HOME}目錄下
cd ${HADOOP_HOME}

# 打開etc/hadoop/hadoop-env.sh文件
sudo vim etc/hadoop/hadoop-env.sh

# 修改JAVA_HOME路徑
JAVA_HOME=/java/jdk1.8.0_151

6.3 core-site.xml文件配置

在${HADOOP_HOME}目錄下創(chuàng)建data/tmp目錄

# 創(chuàng)建data目錄
mkdir data

# 切換到data目錄
cd data

# 創(chuàng)建tmp目錄
mkdir tmp

修改core-site.xml文件

# 進(jìn)入${HADOOP_HOME}
cd ${HADOOP_HOME}

# 打開 etc/hadoop/core-site.xml文件
sudo vim etc/hadoop/core-site.xml

修改內(nèi)容:

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://server1:8020</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/hadoop/hadoop-2.7.5/data/tmp</value>
    </property>
</configuration>

6.4 hdfs-site.xml文件配置

修改 etc/hadoop/hdfs-site.xml文件

sudo vim etc/hadoop/hdfs-site.xml

修改內(nèi)容:

<configuration>
    <!-- 指定HDFS副本的數(shù)量 -->
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <property>
        <!--指定secondaryNameNode的地址和端口號(hào)-->
        <name>dfs.namenode.secondary.http-address</name>
        <value>server2:50090</value>
    </property>
</configuration>

6.5 配置slaves

打開slaves文件

sudo vim etc/hadoop/slaves

修改內(nèi)容如下:

server1
server2
server3

6.5 yarn-site.xml文件配置

打開yarn-site.xml文件

sudo vim etc/hadoop/yarn-site.xml

修改內(nèi)容:

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <!--resourcemanager服務(wù)指定地址-->
        <name>yarn.resourcemanager.hostname</name>
        <value>server1</value>
    </property>
    <property>
        <!--啟動(dòng)日志聚集功能-->
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
    <property>
        <!--日志保存時(shí)間-->
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>106800</value>
    </property>
</configuration>

6.6 mapred-site.xml文件配置

從mapred-site.xml.template復(fù)制一個(gè)mapred-site.xml

sudo cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml

修改mapred-site.xml文件

sudo vim etc/hadoop/mapred-site.xml

修改內(nèi)容:

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <!--historyserver地址為server3-->
        <name>mapreduce.jobhistory.address</name>
        <value>server3:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>server3:19888</value>
    </property>
</configuration>

7 將/hadoop目錄通過scp命令傳輸?shù)絪erver2和server3機(jī)器

7.1 分別在server2和server3機(jī)器上創(chuàng)建一個(gè)/hadoop目錄

sudo mkdir /hadoop

7.2 修改/hadoop用戶權(quán)限

sudo chown -R hadoop:hadoop /hadoop

7.3 scp命令將server1的/hadoop/hadoop2.7.5目錄發(fā)送到server2和server3的/hadoop目錄

# 將server1的/hadoop/hadoop2.7.5通過scp發(fā)送到server2的/hadoop目錄
scp /hadoop/hadoop2.7.5 server2:/hadoop

scp /hadoop/hadoop2.7.5 server3:/hadoop

7.4 配置server2和server3的hadoop環(huán)境變量

server2和server3的hadoop的環(huán)境配置

sudo vim /etc/profile

export HADOOP_HOME=/hadoop/hadoop-2.7.5
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

8仁卷、格式化namenode

bin/hdfs namenode -format

9、hadoop的服務(wù)啟動(dòng)

9.1 server1啟動(dòng)dfs服務(wù)

sbin/start-dfs.sh

9.2 server1啟動(dòng)yarn服務(wù)

sbin/start-yarn.sh

9.3 啟動(dòng)server3的historyserver

sbin/mr-jobhistory-daemon.sh start historyserver

9犬第、hadoop的wordcount案例測(cè)試

9.1 創(chuàng)建一個(gè)wc.input文件

在/home/hadoop目錄下锦积,創(chuàng)建一個(gè)wc.input文件

vim /home/hadoop/wc.input

9.2 在HDFS創(chuàng)建輸入目錄/wordcounttest/input

bin/hdfs dfs -mkdir -p /wordcounttest/input

9.3 將wc.inpt文件上傳到hdfs中

bin/hdfs dfs -put /home/hadoop/wc.input /wordcounttest/input

9.4 運(yùn)行wordcount的demo

bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.5.jar wordcount /wordcounttest/input /wordcounttest/output

image

9.5 運(yùn)行結(jié)果查看

  • 9.5.1 查看輸出目錄
bin/hdfs dfs -ls /wordcounttest/output/

結(jié)果:

Found 2 items
-rw-r--r--   3 hadoop supergroup          0 2018-01-31 06:33 /wordcounttest/output/_SUCCESS
-rw-r--r--   3 hadoop supergroup        140 2018-01-31 06:33 /wordcounttest/output/part-r-00000
  • 9.5.2 查看輸出結(jié)果
bin/hdfs dfs -cat /wordcounttest/output/part-r-00000
image

10、關(guān)閉服務(wù)

10.1 關(guān)閉dfs服務(wù)

sbin/stop-dfs.sh

10.2關(guān)閉yarn服務(wù)

sbin/stop-yarn.sh

10.3 關(guān)閉historyserver服務(wù)

sbin/mr-jobhistory-daemon.sh stop historyserver

10.4 關(guān)閉所有服務(wù)

sbin/stop-all.sh
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末歉嗓,一起剝皮案震驚了整個(gè)濱河市丰介,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌鉴分,老刑警劉巖哮幢,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異志珍,居然都是意外死亡橙垢,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門伦糯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來柜某,“玉大人,你說我怎么就攤上這事敛纲∥够鳎” “怎么了?”我有些...
    開封第一講書人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵淤翔,是天一觀的道長(zhǎng)翰绊。 經(jīng)常有香客問我,道長(zhǎng)办铡,這世上最難降的妖魔是什么辞做? 我笑而不...
    開封第一講書人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮寡具,結(jié)果婚禮上秤茅,老公的妹妹穿的比我還像新娘。我一直安慰自己童叠,他們只是感情好框喳,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著厦坛,像睡著了一般五垮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上杜秸,一...
    開封第一講書人閱讀 49,749評(píng)論 1 289
  • 那天放仗,我揣著相機(jī)與錄音,去河邊找鬼撬碟。 笑死诞挨,一個(gè)胖子當(dāng)著我的面吹牛莉撇,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播惶傻,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼棍郎,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了银室?” 一聲冷哼從身側(cè)響起涂佃,我...
    開封第一講書人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蜈敢,沒想到半個(gè)月后辜荠,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡扶认,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年侨拦,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片辐宾。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖膨蛮,靈堂內(nèi)的尸體忽然破棺而出叠纹,到底是詐尸還是另有隱情,我是刑警寧澤敞葛,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布誉察,位于F島的核電站,受9級(jí)特大地震影響惹谐,放射性物質(zhì)發(fā)生泄漏持偏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一氨肌、第九天 我趴在偏房一處隱蔽的房頂上張望鸿秆。 院中可真熱鬧,春花似錦怎囚、人聲如沸卿叽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)考婴。三九已至,卻和暖如春催烘,著一層夾襖步出監(jiān)牢的瞬間沥阱,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來泰國(guó)打工伊群, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留考杉,地道東北人策精。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像奔则,于是被迫代替她去往敵國(guó)和親蛮寂。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

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