Hadoop大数据之 2、搭建Hadoop完全分布式开发环境(步骤)

前言:

Hadoop 国内下载地址

1、准备工作:

1、在 /opt 目录下创建 software module 两个目录,分别用来 放压缩包 和解压后的文件
并赋予 software module 可执行权限.

2、将下载的 jdk 压缩包,hadoop 压缩包解压到 module 目录下。

[root@hadoop102 ~]# cd /opt
[root@hadoop102 opt]# mkdir software/ module/
[root@hadoop102 opt]# chmod +x software/ module/
[root@hadoop102 opt]# cd software
[root@hadoop102 software]$ ls
 hadoop-2.7.2.tar.gz  jdk-8u144-linux-x64.tar.gz

[root@hadoop102 software]# tar -zxvf hadoop-2.7.2.tar.gz -C /opt/module
[root@hadoop102 software]$ tar -zxvf jdk-8u144-linux-x64.tar.gz -C /opt/module/
[root@hadoop103 opt]$ ll module/

drwxr-xr-x.  8      10     143  255 7月  22 2017 jdk1.8.0_144
drwxr-xr-x. 12 root    root     186 5月   4 19:05 hadoop-2.7.2

1、配置环境变量

[root@hadoop102 opt]# vim /etc/profile
#配置环境变量

#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin

#Hadoop_HOME
export HADOOP_HOME=/opt/module/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

#Zookeeper_HOME
export ZOOKEEPER_HOME=/opt/module/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin

#配置Hive_HOME
export HIVE_HOME=/opt/module/hive
export PATH=$PATH:$HIVE_HOME/bin

2、让修改后的文件生效

[root@hadoop102 opt]# source /etc/profile

3、测试JDK是否安装成功,hadoop 是否安装成功

[root@hadoop102 opt]# java -version
 java version "1.8.0_144"
[root@hadoop102 hadoop]$ cd /opt/module/hadoop-2.7.2
[root@hadoop102 hadoop-2.7.2]$ hadoop version
 Hadoop 2.7.2

4、集群分发脚本

[root@hadoop102 ~]# yum -y install rsync

[root@hadoop102 ~]$ cd /usr/local/bin/

[root@hadoop102 bin]$ vim xsync 

在 xsync 文件下编写如下shell代码

#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0)); then
echo no args;
exit;
fi
 
#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname
 
#3 获取上级目录到绝对路径 –P指向实际物理地址,防止软连接
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
 
#4 获取当前用户名称
user=`whoami`
 
#5 循环
for((host=103; host<105; host++)); do
       echo ------------------- hadoop$host --------------
       rsync -rvl $pdir/$fname $user@hadoop$host:$pdir
done

5、修改脚本 xsync 具有执行权限

[root@hadoop102 bin]$ chmod 777 xsync

2、集群部署规划

HDFS :
hadoop102 Namenode Datanode
hadoop103 Datanode
hadoop104 SecondaryNameNode DataNode
YARN :
hadoop102 NodeManager
hadoop103 ResourceManager NodeManager
hadoop104 NodeManager

3、配置集群

    core-site.xml         slaves
    hdfs-site.xml         hadoop-env.sh
    mapred-site.xml       mapred-env.sh 
    yarn-site.xml         yarn-env.sh

进入hadoop-2.7.2 配置文件目录

[root@hadoop102 ~]# cd /opt/module/hadoop-2.7.2/etc/hadoop

配置 slaves

[root@hadoop102 hadoop]# vim slaves
hadoop102
hadoop103
hadoop104

1、核心配置文件 core-site.xml

[root@hadoop102 hadoop]$ vim core-site.xml

在该文件中编写如下配置

<!-- 指定HDFS中NameNode的地址 -->
<property>
​​<name>fs.defaultFS</name>
     <value>hdfs://hadoop102:9000</value>
</property>
 
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
​​<name>hadoop.tmp.dir</name>
​​<value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>

2、HDFS配置文件
1. hdfs-site.xml

[root@hadoop102 hadoop]$ vim hdfs-site.xml
  <!-- 指定Hadoop副本数 -->
  <property>
​​          <name>dfs.replication</name>
          ​​<value>3</value>
  </property>
 
  <!-- 指定Hadoop辅助名称节点主机配置 -->
  <property>
          <name>dfs.namenode.secondary.http-address</name>
          <value>hadoop104:50090</value>
  </property>
  1. hadoop-env.sh
[root@hadoop102 hadoop]$ vim hadoop-env.sh

export JAVA_HOME=/opt/module/jdk1.8.0_144

3、YARN配置文件
1、yarn-env.sh

[root@hadoop102 hadoop]$ vi yarn-env.sh

export JAVA_HOME=/opt/module/jdk1.8.0_144

2、配置yarn-site.xml

 [root@hadoop102 hadoop]$ vi yarn-site.xml

在该文件中增加如下配置

<!-- Reducer获取数据的方式 -->
<property>
​​<name>yarn.nodemanager.aux-services</name>
​​<value>mapreduce_shuffle</value>
</property>
 
<!-- 指定YARN的ResourceManager的地址 -->
<property>
​​<name>yarn.resourcemanager.hostname</name>
​​<value>hadoop103</value>
</property>

4、MapReduce配置文件
配置mapred-env.sh

[root@hadoop102 hadoop]$ vi mapred-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144

配置mapred-site.xml

[root@hadoop102 hadoop]$ cp mapred-site.xml.template mapred-site.xml
[root@hadoop102 hadoop]$ vi mapred-site.xml
<!-- 指定MR运行在Yarn上 -->
<property>
​​<name>mapreduce.framework.name</name>
​​<value>yarn</value>
</property>

5.在集群上分发配置好的Hadoop配置文件

[root@hadoop102 hadoop]$ xsync /opt/module/hadoop-2.7.2/

6.查看文件分发情况

[root@hadoop102 hadoop]$ ssh hadoop103
 Last login: Wed May  6 15:49:07 2020 from hadoop102
[root@hadoop103 ~]$ cat /opt/module/hadoop-2.7.2/etc/hadoop/core-site.xml

7、hadoop 集群群起脚本

[bigdata@hadoop102 ~]$ cd
[bigdata@hadoop102 ~]$ vim bin/hadoop-all.sh 
#!/bin/env bash

case $1 in
"start"){
	      ssh hadoop102 "/opt/module/hadoop/sbin/start-dfs.sh"
          ssh hadoop103 "/opt/module/hadoop/sbin/start-yarn.sh"
	    
          if [[ $? -eq 0 ]]; then
                 echo "INFO:=======  集群 启动成功   =========="
          fi
};;

"stop"){
          ssh hadoop103 "/opt/module/hadoop/sbin/stop-yarn.sh"
		  ssh hadoop102 "/opt/module/hadoop/sbin/stop-dfs.sh;sudo service mysql stop"
          if [[ $? -eq 0 ]]; then
                 echo "INFO:=======  集群 关闭成功   =========="
          fi
};;

"restart"){
          ssh hadoop103 "/opt/module/hadoop/sbin/stop-yarn.sh"
		  ssh hadoop102 "/opt/module/hadoop/sbin/stop-dfs.sh"
	      ssh hadoop102 "/opt/module/hadoop/sbin/start-dfs.sh"
          ssh hadoop103 "/opt/module/hadoop/sbin/start-yarn.sh"     
          if [[ $? -eq 0 ]]; then
                 echo "INFO:=======  ${i} 查看状态成功  =========="
          fi
};;
esac

版权声明:本文为qq_39297673原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。