溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

hadoop 分布式集群初步搭建

發(fā)布時(shí)間:2020-08-30 11:57:20 來(lái)源:網(wǎng)絡(luò) 閱讀:715 作者:一語(yǔ)成讖灬 欄目:大數(shù)據(jù)

一、配置環(huán)境

1.設(shè)置主機(jī)名和對(duì)應(yīng)的地址映射

[root@master ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.230.130 master
192.168.230.131 slave1
192.168.230.100 slave2
#分別對(duì)三臺(tái)設(shè)備配置hostname和hosts

2.在三個(gè)節(jié)點(diǎn)上分別新建hadoop用戶

[root@master ~]# tail -1 /etc/passwd
hadoop:x:1001:1001::/home/hadoop:/bin/bash

二、為hadoop配置所有節(jié)點(diǎn)之間的ssh免密登陸

1.生成密鑰

[hadoop@master ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hadoop/.ssh/id_rsa): 
/home/hadoop/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/hadoop/.ssh/id_rsa.
Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub.
The key fingerprint is:
1c:16:61:04:4f:76:93:cd:da:9a:08:04:15:58:7d:96 hadoop@master
The key's randomart p_w_picpath is:
+--[ RSA 2048]----+
|    .===B.o=     |
|    . .=.oE.o    |
|     .  +o o     |
|      .o .. .    |
|       .S. o     |
|        . o      |
|                 |
|                 |
|                 |
+-----------------+
[hadoop@master ~]$

2.發(fā)送公鑰

[hadoop@master ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@slave1
The authenticity of host 'slave1 (192.168.230.131)' can't be established.
ECDSA key fingerprint is 32:1a:8a:37:f8:11:bc:cc:ec:35:e6:37:c2:b8:e1:45.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
hadoop@slave1's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'hadoop@slave1'"
and check to make sure that only the key(s) you wanted were added.

[hadoop@master ~]$
[hadoop@master ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@slave2
[hadoop@master ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@master
#slave1和slave2對(duì)其他節(jié)點(diǎn)略

3.驗(yàn)證登陸

[hadoop@master ~]$ ssh hadoop@slave1
Last login: Wed Jul 26 01:11:22 2017 from master
[hadoop@slave1 ~]$ exit
logout
Connection to slave1 closed.
[hadoop@master ~]$ ssh hadoop@slave2
Last login: Wed Jul 26 13:12:00 2017 from master
[hadoop@slave2 ~]$ exit
logout
Connection to slave2 closed.
[hadoop@master ~]$

三、配置JAVA

1.使用xftp將hadoop-2.7.3.tar.gz和jdk-8u131-linux-x64.tar.gz上傳至master

[hadoop@master ~]$ ls
hadoop-2.7.3.tar.gz  jdk-8u131-linux-x64.tar.gz

2.使用root用戶解壓并移動(dòng)到/usr/local 下

[hadoop@master ~]$ exit
exit
[root@master ~]# cd /home/hadoop/
[root@master hadoop]# ls
hadoop-2.7.3.tar.gz  jdk-8u131-linux-x64.tar.gz
[root@master hadoop]# tar -zxf jdk-8u131-linux-x64.tar.gz 
[root@master hadoop]# ls
hadoop-2.7.3.tar.gz  jdk1.8.0_131  jdk-8u131-linux-x64.tar.gz
[root@master hadoop]# mv jdk1.8.0_131 /usr/local/
[root@master hadoop]# cd /usr/local/
[root@master local]# ls
bin  etc  games  include  jdk1.8.0_131  lib  lib64  libexec  sbin  share  src
[root@master local]#

3.配置java環(huán)境變量(這里使用的是全局變量)

[root@master ~]# vim /etc/profile    #在文件末尾添加如下java環(huán)境變量
[root@master ~]# tail -5 /etc/profile

export JAVA_HOME=/usr/local/jdk1.8.0_131    #注意jdk版本
export JRE_HOME=$JAVA_HOME/jre 
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib 
export PATH=$JAVA_HOME/bin:$PATH
[root@master ~]#
[root@master ~]# source /etc/profile    #使配置生效

4.測(cè)試master上的java是否配置完成

[root@master ~]# java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
[root@master ~]#

5.使用scp將jdk拷貝到slave1和slave2

[root@master ~]# scp -r /usr/local/jdk1.8.0_131/ root@slave1:/usr/local/
[root@master ~]# scp -r /usr/local/jdk1.8.0_131/ root@slave2:/usr/local/

6.配置slave1和slave2上的環(huán)境變量(同步驟3),配置完后使用java -version驗(yàn)證一下


四、配置hadoop環(huán)境

1.解壓hadoop并移動(dòng)到/usr/local 下

[root@master ~]# cd /home/hadoop/
[root@master hadoop]# ls
hadoop-2.7.3.tar.gz  jdk-8u131-linux-x64.tar.gz
[root@master hadoop]# tar -zxf hadoop-2.7.3.tar.gz 
[root@master hadoop]# mv hadoop-2.7.3 /usr/local/hadoop
[root@master hadoop]# ls /usr/local/
bin  etc  games  hadoop  include  jdk1.8.0_131  lib  lib64  libexec  sbin  share  src

2.更改hadoop的文件所屬用戶

[root@master ~]# cd /usr/local
[root@master local]# chown -R hadoop:hadoop /usr/local/hadoop
[root@master local]# ll
drwxr-xr-x  9 hadoop hadoop 149 Aug 17  2016 hadoop
[root@master local]#

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

[root@master local]# vim /etc/profile
[root@master local]# tail -4 /etc/profile

#hadoop
export HADOOP_HOME=/usr/local/hadoop    #注意路徑
export PATH="$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin"
[root@master local]# 
[root@master local]# source /etc/profile    #使配置生效

4.測(cè)試

[root@master local]# hadoop version
Hadoop 2.7.3
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r baa91f7c6bc9cb92be5982de4719c1c8af91ccff
Compiled by root on 2016-08-18T01:41Z
Compiled with protoc 2.5.0
From source with checksum 2e4ce5f957ea4db193bce3734ff29ff4
This command was run using /usr/local/hadoop/share/hadoop/common/hadoop-common-2.7.3.jar
[root@master local]#

5.配置hadoop-env.sh

[root@master local]# cd $HADOOP_HOME/etc/hadoop
[root@master hadoop]# pwd
/usr/local/hadoop/etc/hadoop
[root@master hadoop]# 
[root@master hadoop]# vim hadoop-env.sh 
[root@master hadoop]# tail -1 hadoop-env.sh 
export JAVA_HOME=/usr/local/jdk1.8.0_131    #在末尾添加
[root@master hadoop]#

6.配置core-site.xml

<configuration>
<!-- 指定hdfs的nameService -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
</configuration>

7.配置hdfs-site.xml

<configuration>
    <!-- 數(shù)據(jù)節(jié)點(diǎn)數(shù) -->
    <property>
      <name>dfs.replication</name>
      <value>1</value>
    </property>
    <!-- nameNode數(shù)據(jù)目錄 -->
    #目錄不存在需要手動(dòng)創(chuàng)建,并把所屬改為hadoop
    <property>
      <name>dfs.namenode.name.dir</name>
      <value>/usr/local/hadoop/dfs/name</value>    
    </property>
    <!-- dataNode數(shù)據(jù)目錄 -->
    #目錄不存在需要手動(dòng)創(chuàng)建,并把所屬改為hadoop
    <property>
      <name>dfs.datanode.data.dir</name>
      <value>/usr/local/hadoop/dfs/data</value>
    </property>
</configuration>

8.配置yarn-site.xml

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

9.配置mapred-site.xml

[root@master hadoop]# cp mapred-site.xml.template mapred-site.xml
[root@master hadoop]# vim mapred-site.xml
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

10.配置slaves

[root@master hadoop]# vim slaves 
[root@master hadoop]# cat slaves 
slave1
slave2
[root@master hadoop]#

11.使用scp將配置好的hadoop傳輸?shù)絪lave1和slave2節(jié)點(diǎn)上

[root@master ~]# scp -r /usr/local/hadoop root@slave1:/usr/local/
[root@master ~]# scp -r /usr/local/hadoop root@slave2:/usr/local/


12.配置slave1和slave2上的環(huán)境變量(同步驟3),配置完后使用hadoop version驗(yàn)證一下


13.格式化 hdfs namenode–format

[root@master hadoop]# su hadoop
[hadoop@master hadoop]$ cd /usr/local/hadoop/
[hadoop@master hadoop]$ hdfs namenode -format    #一定要在hadoop用戶下進(jìn)行
17/07/26 20:26:12 INFO namenode.NameNode: STARTUP_MSG: 
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG:   host = master/192.168.230.130
STARTUP_MSG:   args = [-format]
STARTUP_MSG:   version = 2.7.3
.
.
.
17/07/26 20:26:15 INFO util.ExitUtil: Exiting with status 0    #status 為0才是成功
17/07/26 20:26:15 INFO namenode.NameNode: SHUTDOWN_MSG: 
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at master/192.168.230.130
************************************************************/
[hadoop@master hadoop]$

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

1.啟動(dòng)所有的服務(wù)

[hadoop@master dfs]$ start-all.sh 
This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh
Starting namenodes on [master]
hadoop@master's password:     #輸入master上的hadoop的密碼
master: starting namenode, logging to /usr/local/hadoop/logs/hadoop-hadoop-namenode-master.out
slave1: starting datanode, logging to /usr/local/hadoop/logs/hadoop-hadoop-datanode-slave1.out
slave2: starting datanode, logging to /usr/local/hadoop/logs/hadoop-hadoop-datanode-slave2.out
Starting secondary namenodes [0.0.0.0]
hadoop@0.0.0.0's password:     #輸入master上的hadoop的密碼
0.0.0.0: starting secondarynamenode, logging to /usr/local/hadoop/logs/hadoop-hadoop-secondarynamenode-master.out
starting yarn daemons
starting resourcemanager, logging to /usr/local/hadoop/logs/yarn-hadoop-resourcemanager-master.out
slave1: starting nodemanager, logging to /usr/local/hadoop/logs/yarn-hadoop-nodemanager-slave1.out
slave2: starting nodemanager, logging to /usr/local/hadoop/logs/yarn-hadoop-nodemanager-slave2.out
[hadoop@master dfs]$

2.驗(yàn)證

[hadoop@master dfs]$ jps    #master上的進(jìn)程
7491 Jps
6820 NameNode
7014 SecondaryNameNode
7164 ResourceManager
[hadoop@master dfs]$
[root@slave1 name]# jps    #slave1上的進(jìn)程
3160 NodeManager
3050 DataNode
3307 Jps
[root@slave1 name]#
[root@slave2 name]# jps     #slave2上的進(jìn)程
3233 DataNode
3469 Jps
3343 NodeManager
[root@slave2 name]#

3.使用瀏覽器管理

hadoop 分布式集群初步搭建

hadoop 分布式集群初步搭建

六、總結(jié)

1.格式化 hdfs namenode–format時(shí)是root用戶,導(dǎo)致/usr/local/hadoop/dfs/data目錄權(quán)限為root。切換為hadoop用戶啟動(dòng)時(shí)發(fā)現(xiàn)NameNode啟動(dòng)不了;

2.出現(xiàn)問(wèn)題分析日志文件找出問(wèn)題原因才能有針對(duì)性的解決;



向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI