为了账号安全,请及时绑定邮箱和手机立即绑定

Hadoop完全分布式集群配置

标签:
大数据 Hadoop

准备三台客户机

模板虚拟机准备

安装模板虚拟机

  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 许可协议。转载请注明出处!

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消