继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Hadoop完全分布式集群配置

Helenr
关注TA
已关注
手记 246
粉丝 14
获赞 47

准备三台客户机

模板虚拟机准备

安装模板虚拟机

  1. ip地址192.168.10.100
  2. 主机名称hadoop100
  3. 内存4g
  4. 硬盘50g

配置

  1. 测试网络

    ping www.baidu.com

  2. 安装epel-release

    yum install -y epel-release

  3. 安装net-tools

    yum install -y net-tools

  4. 安装vim

    yum install -y vim

关闭防火墙

systemctl stop firewalld
systemctl disable firewalld.service

卸载虚拟机自带的JDK

rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps

克隆虚拟机

利用hadoop100,克隆出hadoop102、hadoop103、hadoop104

修改克隆机ip

  1. 修改静态ip

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

    DEVICE=ens33
    TYPE=Ethernet
    ONBOOT=yes
    BOOTPROTO=static
    NAME="ens33"
    IPADDR=192.168.10.102
    PREFIX=24
    GATEWAY=192.168.10.2
    DNS1=192.168.10.2

  2. 查看 Linux 虚拟机的虚拟网络编辑器,编辑->虚拟网络编辑器->VMnet8image-20210501153433555image-20210501153525525

  3. 查看 Windows 系统适配器 VMware Network Adapter VMnet8 的 IP 地址image-20210501153751285

  4. 保证 Linux 系统 ifcfg-ens33 文件中 IP 地址、虚拟网络编辑器地址和 Windows 系统 VM8 网络 IP 地址相同。

修改克隆机主机名

  1. 修改主机名称

    vim /etc/hostname

    hadoop102

  2. 配置 Linux 克隆机主机名称映射 hosts 文件,打开/etc/hosts

    vim /etc/hosts

    192.168.10.100 hadoop100
    192.168.10.101 hadoop101
    192.168.10.102 hadoop102
    192.168.10.103 hadoop103
    192.168.10.104 hadoop104
    192.168.10.105 hadoop105
    192.168.10.106 hadoop106
    192.168.10.107 hadoop107
    192.168.10.108 hadoop108

  3. 修改 windows 的主机映射文件(hosts 文件)

    1. 进入 C:\Windows\System32\drivers\etc 路径

    2. 打开 hosts 文件并添加如下内容,然后保存

      192.168.10.100 hadoop100
      192.168.10.101 hadoop101
      192.168.10.102 hadoop102
      192.168.10.103 hadoop103
      192.168.10.104 hadoop104
      192.168.10.105 hadoop105
      192.168.10.106 hadoop106
      192.168.10.107 hadoop107
      192.168.10.108 hadoop108

安装JDK和Hadoop

3.x版本的hadoop不支持jdk11,这里我们使用jdk8

  1. 用 xftp 传输工具将 JDK,hadoop导入到 opt 目录下面的 software 文件夹下面

  2. 将事先在/opt/software 下的jdk,hadoop解压到指位置

tar -zxvf jdk-8u291-linux-x64.tar.gz -C /opt/module/
tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/

配置环境变量

  1. 新建/etc/profile.d/my_env.sh 文件

    vim /etc/profile.d/my_env.sh

  2. #JAVA_HOME
    export JAVA_HOME=/opt/module/jdk8
    export PATH=PATH:PATH:PATH:JAVA_HOME/bin

    #HADOOP_HOME
    export HADOOP_HOME=/opt/module/hadoop-3.1.3
    export PATH=PATH:PATH:PATH:HADOOP_HOME/bin
    export PATH=PATH:PATH:PATH:HADOOP_HOME/sbin

    #root用户使用Hadoop需要的环境变量
    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. source /etc/profile

  4. 检测

    java -version
    hadoop version

配置集群

编写集群分发脚本xsync

  1. scp(secure copy)安全拷贝

    scp -r pdir/pdir/pdir/fname user@user@user@host:pdir/pdir/pdir/fname

  2. rsync 远程同步工具

    rsync -av pdir/pdir/pdir/fname user@user@user@host:pdir/pdir/pdir/fname

  3. xsync集群分发脚本

    1. 在/root/bin/下建立脚本

      vim xsync

      #!/bin/bash
      #1. 判断参数个数

      if [ $# -lt 1 ]
      then
      echo Not Enough Arguement!
      exit;
      fi
      #2. 遍历集群所有机器

      for host in hadoop102 hadoop103 hadoop104
      do
      echo ==================== $host ====================
      #3. 遍历所有目录,挨个发送
      for file in $@
      do
      #4. 判断文件是否存在
      if [ -e KaTeX parse error: Expected 'EOF', got '#' at position 30: …n #̲5. 获取父目录 …(cd -P $(dirname KaTeX parse error: Expected 'EOF', got '#' at position 26: …) #̲6. 获取当前文件的名称 …(basename $file)
      ssh $host "mkdir -p $pdir"
      rsync -av pdir/pdir/pdir/fname host:host:host:pdir
      else
      echo $file does not exists!
      fi
      done
      done

    2. 修改权限

      chmod +x xsync

ssh无密登录

  1. 生成公钥和私钥

    pwd
    /root/.ssh/

    ssh-keygen -t rsa

  2. 将公钥拷贝到要免密登录的目标机器上

    ssh-copy-id hadoop102
    ssh-copy-id hadoop103
    ssh-copy-id hadoop104

  3. 其它机器同理配置一遍

配置文件

  1. 配置 core-site.xml

    <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> fs.defaultFS hdfs://hadoop102:8020 hadoop.tmp.dir /opt/module/hadoop-3.1.3/data hadoop.http.staticuser.user atguigu
  2. 配置 hdfs-site.xml

    <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> dfs.namenode.http-address hadoop102:9870 dfs.namenode.secondary.http-address hadoop104:9868
  3. 配置 yarn-site.xml

    <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> yarn.nodemanager.aux-services mapreduce_shuffle yarn.resourcemanager.hostname hadoop103 yarn.nodemanager.env-whitelist JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR, CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME
  4. 配置 mapred-site.xml

    <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> mapreduce.framework.name yarn
  5. 分发集群配置文件

    xsync /opt/module/hadoop-3.1.3/etc/hadoop

群起集群

配置workers

vim /opt/module/hadoop-3.1.3/etc/hadoop/workers

hadoop102
hadoop103
hadoop104

同步配置文件

xsync /opt/module/hadoop-3.1.3/etc

启动集群

  1. 如果第一次启动需要在102节点格式化NameNode

    若集群崩溃应先删除每台机器的./data、./logs

    hdfs namenode -format

  2. 启动 HDFS

    start-dfs.sh

  3. 在配置了 ResourceManager的节点(hadoop103)启动 YARN

    start-yarn.sh

  4. Web 端查看 HDFS 的 NameNode

    1. 浏览器中输入:http://hadoop102:9870

    2. 查看 HDFS 上存储的数据信息

  5. Web 端查看 YARN 的 ResourceManager

    1. 浏览器中输入:http://hadoop103:8088
    2. 查看 YARN 上运行的 Job 信息

配置历史服务器

  1. 配置 mapred-site.xml

    mapreduce.jobhistory.address hadoop102:10020 mapreduce.jobhistory.webapp.address hadoop102:19888
  2. 分发配置

    xsync $HADOOP_HOME/etc/hadoop/mapred-site.xml

  3. 在 hadoop102启动历史服务器

    mapred --daemon start historyserver

  4. 查看JobHistory http://hadoop102:19888/jobhistory

配置日志的聚集

  1. 配置yarn-site.xml

    vim yarn-site.xml

    yarn.log-aggregation-enable true yarn.log.server.url http://hadoop102:19888/jobhistory/logs yarn.log-aggregation.retain-seconds 604800
  2. 分发配置

  3. 重启NodeManager、ResourceManager 和 HistoryServer

EOF

作者:bleso
本文链接:[https://www.cnblogs.com/bleso/p/14724840.html]
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP