天天看点

hadoop集群搭建详细过程(完全分布式)一、所需资源下载路径二、centos基础环境配置

一、所需资源下载路径

  • linux选用centos8
https://mirrors.aliyun.com/centos/8/isos/x86_64/CentOS-8.2.2004-x86_64-dvd1.iso
           
  • jdk1.8(hadoop是java写的,运行需要jre)
    https://repo.huaweicloud.com/java/jdk/8u201-b09/jdk-8u201-linux-x64.tar.gz
               
  • hadoop3
链接:https://pan.baidu.com/s/11sPp1oec6uBi8Ci1BvV0rw 提取码:1234
           

二、centos基础环境配置

1. JDK8配置

1)scp 本机中jdk文件 [email protected]的ip:目标路径。解压到 /opt/module目录下(个人习惯)。

2)配置JAVA_HOME、JRE、CLASSPATH环境变量

修改/etc/profile在文件末尾添加:

export JAVA_HOME=/opt/moudle/jdk-14.0.2
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
           

2.修改centos虚拟机的基本环境

1)将动态ip改为静态ip

修改/etc/sysconfig/network-script/ifcfg-ens33

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"

 

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="9931db14-5f9e-4366-99c2-d5a218ef645c"
DEVICE="ens33"
1. 修改BOOTPROTO="static"
2. 修改ONBOOT="yes"
3. 添加
IPADDR="192.168.152.10"
NETMASK="255.255.255.0"
GATEWAY="192.168.152.2"
DNS1="114.114.114.114"

           

2)关闭防火墙

关闭防火墙服务systemctl stop firewalld

关闭开机启动 systemctl disable firewalld

关闭selinux :

vim /etc/sysconfig/selinux 然后将配置SELinux=enforcing改为SELinux=disabled

关闭windows防火墙,否则linux ping 不通windows

关闭 防火墙和网络保护 =>

  • 局域网
  • 专用网络
  • 公用网络

三、hadoop集群配置

192.168.179.20 192.168.179.30 192.168.179.31
master20 slaver30 slaver31

1.克隆master20虚拟机得到 slaver30 slaver31

  • 为slaver配置静态ip (vim /etc/sysconfig/network-script/ifcfg-ens33)
  • 为slaver设置hostname (vim /etc/hostname)
  • 设置host映射(vim /etc/hosts)
  • 为每一台都配置ssh登录(实现任意两台可以ssh登录,并且自己可以ssh登录自己)

    执行:ssh-keygen

    新建文件:vim ~/.ssh/authorized_keys (权限:chmod 600 authorized_keys ;chmod 700 -R .ssh)

    公钥分发:ssh-copy-id -i ~/.ssh/id_rsa.pub -p 22 [email protected]

2. 配置hadoop

1) 配置环境变量

修改/etc/profile末尾添加(source /etc/profile后生效)
           
export HADOOP_HOME=/opt/moudle/hadoop-3.3.0
 export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
           

2)修改hadoop配置文件(/opt/moudule/hadoop3/etc/hadoop)

(1)在 core-site.xml 添加以下配置
<configuration>
        <!-- NameNode 地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>

   <!-- Hadoop临时文件目录,默认是/tmp目录,系统重启后数据丢失 -->
    <property>
            <name>hadoop.tmp.dir</name>
            <value>/opt/moudule/hadoop3/data/tmp</value>
   </property>
</configuration>

           
(2) 在 hadoop-env.sh 最后添加以下配置
export JAVA_HOME=/opt/moudule/jdk8


#root用户启动失败 修改 etc/hadoop/hadoop-env.sh 添加如下
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

           
(3) 在 hdfs-site.xml 中添加以下配置
<configuration>
        <property>
                <name>dfs.namenode.ame.dir</name>
                <value>/opt/moudule/hadoop3/data/name</value>
        </property>
        <!--本结点datanode数据目录-->
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>/opt/moudule/hadoop3/data/data</value>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>2</value>
        </property>
</configuration>

           
(4) 在 mapred-site.xml 中添加以下配置
<configuration>

        <property>
                <name>mapreduce.framwork.name</name>
                <value>yarn</value>
        </property>
</configuration>
           

(5) 在 workers 中修改为如下配置

master20
slaver30
slaver31
           

(6) 在 yarn-site.xml 添加如下配置

<configuration>

<!-- Site specific YARN configuration properties -->

        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>master20</value>
        </property>
        <property>
                <name>yarn.resourcemanager.webapp.address</name>
                <value>192.168.179.20:8088</value>
        </property>
        <property>
                <name>yarn.nodemanager.aux-service</name>
                <value>mapreduce_shuffle</value>
        </property>

</configuration>
           

(7) 将 hadoop 目录从 master 拷贝到 slave1 与 slave2,由于之前配置了免密登录,所以不需要输入密码即可完成拷贝.

(8) 创建临时文件目录 (三台机器都需创建), 创建的目录对应于 hdfs-site.xml 中配置的数据存储目录

(9) 格式化 hdfs 文件系统,在master结点上的hadoop的安装目录下的 bin 目录下执行以下命令

hdfs namenode -format
           

(10) 运行hadoop集群

start-all.sh
           

四、测试

在master30执行jps命令:

hadoop集群搭建详细过程(完全分布式)一、所需资源下载路径二、centos基础环境配置

namenode: hdfs的master

resourcemanager: yarn的master

在slaver执行jps:

hadoop集群搭建详细过程(完全分布式)一、所需资源下载路径二、centos基础环境配置

datanode: hdfs的slaver

nodemanager: yarn的slaver

恭喜你,大功告成!!!

继续阅读