hadoop完全分佈式安裝教程

1 網絡配置

如果是配虛擬機,記得到計算機管理—》服務,打開以下服務,要不然上不了網。

1.1編輯網絡配置文件
vim /etc/sysconfig/network-scripts/ifcfg-ens33

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
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=ef14485b-10d0-4b42-ae97-c1776f696d7b
DEVICE=ens33
ONBOOT=yes

IPADDR=192.168.88.10
PREFIX=24
GATEWAY=192.168.88.2
DNS1=223.5.5.5

1.2 重啓網絡服務

Service network restart

2 時間同步

參考博客:https://blog.csdn.net/zisefeizhu/article/details/81535299

2.1安裝時間同步工具ntp : yum install –y ntp

改變時區 :

rm –rf /etc/localtime
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

同步時間 :
/usr/sbin/ntpdate –u cn.pool/ntp.org
自動同步時間 :
vim /etc/crontab(針對root用戶) 或 crontab –e
0 1 * * * /usr/sbin/ntpdate cn.pool.ntp.org

3 關閉防火牆

systemctl stop firewalld
systemctl disable firewalld

4 配置主機名

4.1 關於本機設置主機名

[root@master ~]# vim /etc/sysconfig/network
配置信息如下

NETWORKING=yes #啓動網絡
HOSTNAME=master  #主機名
[root@localhost ~]# vim /etc/hostname 
master

4.2 將主機名立即生效

[root@localhost ~]# hostname master

之後重啓永久有效

5 配置主機名IP地址映射文件/etc/hosts

[root@centos01 ~]# vim /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.88.10 centos01
192.168.88.11 centos02
192.168.88.12 centos03

6 安裝JDK

6.1 新建目錄/usr/java

[root@centos01 ~]# mkdir /usr/java

6.2 將JDK文件解壓,放到/usr/java目錄下

[root@centos01 java]# tar -zxvf /usr/java/jdk-8u201-linux-x64.tar.gz

6.3 設置環境路徑

[root@centos01 java]# vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_201/
export PATH=$JAVA_HOME/bin:$PATH

6.4 更新環境路徑

[root@centos01 java]# source /etc/profile

7 免密登錄設置

公鑰用來加密,私鑰用來解密。
要把所有機器的公鑰都放在.ssh/authorized_keys文件裏,並分享給所有機器,那麼集羣中機器就可以免密登錄了

CentOS默認沒有啓動ssh無密登錄,去掉/etc/ssh/sshd_config其中2行的註釋,每臺服務器都要設置,

#RSAAuthentication yes
#PubkeyAuthentication yes

7.1 Master節點上

7.1.1 生成公鑰和祕鑰文件

[root@localhost java]# ssh-keygen -t rsa

7.1.2 複製公鑰文件

[root@localhost .ssh]# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

7.1.3 設置公鑰文件權限

[root@localhost .ssh]# chmod 600 authorized_keys

7.1.4 將slave節點傳入的公鑰添加到ssh/authorized_keys文件

[root@centos01 ~]# cat id_rsa01.pub >> .ssh/authorized_keys 
[root@centos01 ~]# cat id_rsa02.pub >> .ssh/authorized_keys  

7.1.5 將authorized_keys文件複製到其他節點

[root@localhost .ssh]# scp ~/.ssh/authorized_keys root@centos02:~/
[root@localhost .ssh]# scp ~/.ssh/authorized_keys root@centos03:~/

7.2 在slave節點上

7.2.1 生成公鑰和祕鑰文件

[root@localhost java]# ssh-keygen -t rsa

7.2.2 將生成的公鑰傳入master節點

[root@centos02 .ssh]# scp ~/.ssh/id_rsa.pub root@centos01:~/id_rsa01.pub
[root@centos03 .ssh]# scp ~/.ssh/id_rsa.pub root@centos01:~/id_rsa02.pub

7.2.3 將master節點上傳來的公鑰放入~/.ssh目錄下

[root@localhost ~]# mv ~/authorized_keys ~/.ssh/

8 Hadoop安裝

8.1 在/usr/目錄下新建一個hadoop2.7.3的目錄

[root@centos01 usr]# mkdir hadoop2.7.3
然後將hadoop壓縮文件上傳到/usr/hadoop2.7.3目錄下。

8.2 解壓hadoop

[root@centos01 hadoop-2.7.3]# tar -zxvf hadoop-2.7.3.tar.gz

然後就會到/usr/hadoop2.7.3/hadoop-2.7.3/目錄下看到;

drwxr-xr-x. 2 root root   194 Aug 18  2016 bin
drwxr-xr-x. 3 root root    20 Aug 18  2016 etc
drwxr-xr-x. 2 root root   106 Aug 18  2016 include
drwxr-xr-x. 3 root root    20 Aug 18  2016 lib
drwxr-xr-x. 2 root root   239 Aug 18  2016 libexec
-rw-r--r--. 1 root root 84854 Aug 18  2016 LICENSE.txt
-rw-r--r--. 1 root root 14978 Aug 18  2016 NOTICE.txt
-rw-r--r--. 1 root root  1366 Aug 18  2016 README.txt
drwxr-xr-x. 2 root root  4096 Aug 18  2016 sbin
drwxr-xr-x. 4 root root    31 Aug 18  2016 share

8.3 配置環境變量hadoop-env.sh

環境變量文件中,只需要配置JDK的路徑。

[lan@master ~]$ cd hadoop-2.7.1/etc/hadoop/
[lan@master hadoop]$ vim hadoop-env.sh 

在文件的靠前的部分找到下面的一行代碼:
export JAVA_HOME=${JAVA_HOME}

將這行代碼修改爲下面的代碼:
export JAVA_HOME=/usr/java/jdk1.8.0_101

然後保存文件。

8.4 配置環境變量yarn-env.sh

環境變量文件中,只需要配置JDK的路徑。
[lan@master hadoop]$ vim yarn-env.sh

在文件的靠前的部分找到下面的一行代碼:
# export JAVA_HOME=/home/y/libexec/jdk1.6.0/

將這行代碼修改爲下面的代碼(將#號去掉):
export JAVA_HOME=/usr/java/jdk1.8.0_101

然後保存文件。

8.5 配置核心組件core-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
      <property>
                <name>fs.defaultFS</name>
                <value>hdfs://centos01:9000</value>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/usr/hadoop2.7.3/hadoopdate</value>
        </property>
        <property>
                <name>io.file.buffer.size</name>
                <value>131702</value>
        </property></configuration>

8.6 配置文件系統hdfs-site.xml

使用gedit編輯:
[lan@master hadoop]$ vim hdfs-site.xml

修改內容如下:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>centos01:9001</value>
    </property>
    <property>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
    </property>
</configuration>

注意:其中產生的namenode鏡像文件目錄dfs.namenode.name.dir和datanode的dfs.datanode.data.dir目錄和secondary namenode的dfs.namenode.checkpoint.dir目錄默認都在core-site.xml配置的tmp文件夾下。系統默認配置了,不需要我們在配置。

8.7 配置文件系統yarn-site.xml

使用gedit編輯:
[lan@master hadoop]$ vim yarn-site.xml

修改內容如下:

<?xml version="1.0"?>

<configuration>
<property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>centos01:8032</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>centos01:8030</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>centos01:8031</value>
    </property>
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>centos01:8033</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>centos01:8088</value>
    </property>
    <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>1536</value>
    </property>
</configuration>

8.8 配置計算框架mapred-site.xml

複製mapred-site-template.xml文件:
[lan@master hadoop]$ cp mapred-site.xml.template mapred-site.xml

使用vim編輯:
[lan@master hadoop]$ vim mapred-site.xml

修改內容如下:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
	<property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.address</name>
                <value>centos01:10020</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.webapp.address</name>
                <value>centos01:19888</value>
        </property>
</configuration>

8.9 配置slaves文件

使用vim編輯:
[lan@master hadoop]$ vim slaves

用下面的代碼替換slaves中的內容:

Centos02
Centos03

8.10 複製到從節點上

使用下面的命令將已經配置完成的Hadoop複製到從節點HadoopSlave上:

[rootcentos01 usr]$ scp -r hadoop-2.7.3 root@centos02:/usr/
[rootcentos01 usr]$ scp -r hadoop-2.7.3 root@centos03:/usr/

注意:因爲之前已經配置了免密鑰登錄,這裏可以直接遠程複製。

8.11 啓動hadoop集羣

8.11.1格式化文件系統

[root@centos02 hadoop-2.7.3]# ./bin/hdfs namenode –format

8.11.2啓動hadoop集羣

[root@centos02 hadoop-2.7.3]# ./sbin/start-all.sh

執行命令後,提示出入yes/no時,輸入yes。

8.12 查看進程

8.12.1在master節點

[root@centos02 hadoop-2.7.3]# jps
8486 Jps
8251 DataNode
8349 NodeManager
[root@centos02 hadoop-2.7.3]#

8.12.2在slave節點上

[root@centos03 ~]# jps
8320 NodeManager
8457 Jps
8222 DataNode

9查看web UI

官網上默認的端口
鏈接:https://hadoop.apache.org/docs/r2.7.3/hadoop-project-dist/hadoop-common/ClusterSetup.html#Web_Interfaces

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