栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Hadoop集群构建

Hadoop集群构建

Hadoop集群构建
    • 前期准备
        • 购买服务器
        • 新建安全组
    • 开始部署
        • 更改主机名称
        • ssh配置文件检查
        • hosts 配置文件设置
        • 修改 cloud.cfg 配置文件
        • 关闭防火墙
        • 配置ssh互信
        • 挂载数据盘
        • 创建必要目录
        • 下载软件包 (以下操作皆在node1服务器下操作)
        • 分发组件
        • 添加并校验环境变量
    • 初始化服务
        • 初始化word
      • 启动Hadoop集群
      • 验证Hadoop状态
    • **至此部署Hadoop完成**

前期准备
  1. 购买服务器

    2vCPUS 4GB 鲲鹏计算 Centos7.6

  2. 新建安全组

    放行 22、8088、50070、16010、 16030、19888

开始部署
  1. 更改主机名称
   1. 容易查看
   hostname node1 
   bash
   直接命名主机名 但重启会自动变回来
   
   2. 彻底更改 
   vim /etc/hostname 
   cat /etc/hostname 
   > node1
   reboot
   
   3. 还有一种更加简便的办法,直接执行后就可以了,不需要重启
   hostnamectl set-hostname node1
    bash
  1. ssh配置文件检查
vim /etc/ssh/sshd_config
在非编辑模式下
:set number     显示行号
i o 修改UseDNS no 以提升ssh的连接速度。 
MaxStartups 1000 配置为大于等于1000,1000表示允许sshd服务最大连接数
:wq! 保存配置强制退出

重启ssdh服务
systemctl restart sshd.service
四台机器都需要设置,并且在设置的时候记得删除对应行的井号“#”。

  1. hosts 配置文件设置
ifconfig eth0
# 使用命令 ifconfig eth0 查询 ECS 内网 IP

vim /etc/hosts
#需要删除自己的主机名映射到 127.0.0.1 的映射,如 node1 为:
#127.0.0.1  node1  node1

# 添加自己四个内网的ip地址 例如:
192.168.0.101  node1
192.168.0.102  node2
192.168.0.103  node3 
192.168.0.104  node4
# 根据自己内网ip来修改 ,一定要删除自己localhost的映射
# 确保各节点之间可以使用主机名作为通信的方式 四个节点都需要进行修改
  1. 修改 cloud.cfg 配置文件

    使用公共镜像创建的ECS服务器,默认安装Cloud-init工具,能够对新创建弹性云服务器中指定的自定义信息(主机名、密钥和用户数据等)进行初始化配置

    但它会在ECS重启动后修改一下系统配置文件,如/etc/hosts、/etc/hostname等。所以需要修改Cloud-init工具的配置文件/etc/cloud/cloud.cfg,注释对系统关键配置文件的影响项。

在 node1-4 进行以下操作(在非编辑模式下,按 49,然后再按一下 shift+g,可跳转到 49 行

vim /etc/cloud/cloud.cfg
# 注释第 49、50、51 行内容:
# - set_hostname
# - update_hostname
# - update_etc_host
  1. 关闭防火墙

systemctl status firewalld
查看防火墙状态 
systemctl stop firewalld
systemctl disable firewalld
  1. 配置ssh互信
# 生成id_rsa.pub
ssh-keygen
各节点执行 ssh-keygen -t rsa 命令后,连续回车三次后生成/root/.ssh/id_rsa.pub 文件
# 汇总id_rsa.pub
- node2上执行此命令 执行的时候可能输入“yes”,并且需要输入node1的服务器密码
scp ~/.ssh/id_rsa.pub root@node1:~/.ssh/id2  
- node3上执行此命令 执行的时候可能输入“yes”,并且需要输入node1的服务器密码
scp ~/.ssh/id_rsa.pub root@node1:~/.ssh/id3 
- node4上执行此命令 执行的时候可能输入“yes”,并且需要输入node1的服务器密码
scp ~/.ssh/id_rsa.pub root@node1:~/.ssh/id4 

- 四合一到node1  在node1上执行此命令
ll ~/.sh

汇总到一个目录中
cd ~/.ssh
cat id_rsa.pub id2 id3 id4 >> authorized_keys
cat authorized_keys


# 选择 yes 后,确保能够互相免密码登录
ssh node1 
ssh node2 
ssh node3 
ssh node4 
exit #退出node4 到node3
exit #退出node3 到node2 
exit #同理
  1. 挂载数据盘
# 步骤 1 查看新增的数据盘
fdisk -l 
# 步骤 2 分区并将分区结果写入到分区表
fdisk /dev/vdb 
# 输入n 新建分区 然后一直enter 看到 Command (m for help): 输入w 回车,将分区结果写入分区表中,其会自动退出命令行
#步骤 3	将新的分区表变更同步至操作系统
partprobe
# 步骤 4	将新建分区挂载到/home目录
mkfs -t ext4 /dev/vdb1  
mount /dev/vdb1 /home 
# 步骤 5	校验是否挂载成功 
df -h 
#步骤 6	设置开机自动挂载
blkid


vim /etc/fstab
UUID=18440b36-ddb0-40f4-b512-f23404c5bccf /home ext4 defaults 1 1
## 四台服务器都需要操作可以通过ssh node_ 来切换 挂载磁盘 
# 注意 若/home 下有重要文件需要先备份后挂载  因为挂载会清空/home文件夹

  • 创建必要目录
## 四个节点都需要创建(必须创建)
mkdir -p /home/modules/data/buf/
mkdir -p /home/test_tools/
mkdir -p /home/nm/localdir

  1. 下载软件包 (以下操作皆在node1服务器下操作)
  • 步骤 1 下载Hadoop软件包

    cd /home 
    wget https://xunfang.obs.cn-south-1.myhuaweicloud.com/kunpeng_bigdata_pro_extend_tools.tar.gz
    ## 重命名
    mv kunpeng_bigdata_pro_extend_tools.tar.gz extend_tools.tar.gz 
    
  • 步骤 2 解压软件包

    tar -zxvf extend_tools.tar.gz 
    
  1. 查看解压目录

    # 在node1上准备hadoop组件
    cd /home/extend_tools
    
    ll
    # 就要hadoop-2.8.3.tar.gz 到 /home/modules 目录下
    tar -zxvf hadoop-2.8.3.tar.gz -C /home/modules
    
    ls /home/modules/  | grep hadoop
    
    
  2. 修改配置文

    • 步骤 1 配置hadoop-env.sh

      vim /home/modules/hadoop-2.8.3/etc/hadoop/hadoop-env.sh
      #修改JAVA_HOME路径为ECS已经默认装好了JDK路径
      export JAVA_HOME=/usr/lib/jvm/java
      
    • 步骤 2 预配置core-site.xml

      vim /home/modules/hadoop-2.8.3/etc/hadoop/core-site.xml
      
      
          
      
          fs.obs.readahead.inputstream.enabled
          true
      
      
          fs.obs.buffer.max.range
          6291456
      
      
          fs.obs.buffer.part.size
          2097152
      
      
          fs.obs.threads.read.core
          500
      
      
          fs.obs.threads.read.max
          1000
      
      
          fs.obs.write.buffer.size
          8192
      
      
          fs.obs.read.buffer.size
          8192
      
      
          fs.obs.connection.maximum
          1000
      
      
          fs.defaultFS
          hdfs://node1:8020
      
      
          hadoop.tmp.dir
          /home/modules/hadoop-2.8.3/tmp
      
      
          fs.obs.buffer.dir
          /home/modules/data/buf
      
      
          fs.obs.impl
          org.apache.hadoop.fs.obs.OBSFileSystem
      
      
          fs.obs.connection.ssl.enabled
          false
      
      
          fs.obs.fast.upload
          true
      
      
          fs.obs.socket.send.buffer
          65536
      
      
          fs.obs.socket.recv.buffer
          65536
      
      
          fs.obs.max.total.tasks
          20
      
      
          fs.obs.threads.max
          20
      
          
      
      
  3. 配置OBS转存

    • 步骤 1 登录华为公有云,选择OBS对象存储服务

    • 步骤 2 在OBS控制台中选择要对接Hadoop的OBS桶

    • 步骤 3 记录桶名称、Endpoint、区域等基本信息

    • 步骤 4 记录AK和SK

    • 步骤 5 重新修改core-site.xml配置文件

      vim /home/modules/hadoop-2.8.3/etc/hadoop/core-site.xml
      
      
      
          fs.obs.access.key
          Access Key ID
      
      
          fs.obs.secret.key
          Secret Access Key
      
      
          fs.obs.endpoint
          obs.cn-north-4.myhuaweicloud.com
      
      
      
  4. 配置hdfs-site.xml

    vim /home/modules/hadoop-2.8.3/etc/hadoop/hdfs-site.xml
    
    
        
        dfs.replication
        3
    
    
        dfs.namenode.secondary.http-address
        node1:50090
    
    
        dfs.namenode.secondary.https-address
        node1:50091
    
    
    
  5. 配置yarn-site.xml

    vim /home/modules/hadoop-2.8.3/etc/hadoop/yarn-site.xml
    
    
    
        yarn.resourcemanager.hostname
        node1
        表示ResourceManager安装的主机
    
    
        yarn.resourcemanager.address
        node1:8032
        表示ResourceManager监听的端口
    
    
        yarn.nodemanager.aux-services
        mapreduce_shuffle
        为map reduce应用打开shuffle 服务
    
    
        yarn.nodemanager.local-dirs
        /home/nm/localdir
        表示nodeManager中间数据存放的地方
    
    
        yarn.nodemanager.resource.memory-mb
        3072
        表示这个NodeManager管理的内存大小
    
    
        yarn.nodemanager.resource.cpu-vcores
        2
        表示这个NodeManager管理的cpu个数
    
    
        yarn.nodemanager.pmem-check-enabled
        false
        不检查每个任务的物理内存量
    
    
        yarn.nodemanager.vmem-check-enabled
        false
        不检查每个任务的虚拟内存量
    
    
        yarn.nodemanager.aux-services
        mapreduce_shuffle
        为map reduce应用打开shuffle 服务
    
    
    
  6. 配置mapred-site.xml

    ##注意cp空格
    cp /home/modules/hadoop-2.8.3/etc/hadoop/mapred-site.xml.template /home/modules/hadoop-2.8.3/etc/hadoop/mapred-site.xml
    
    vim /home/modules/hadoop-2.8.3/etc/hadoop/mapred-site.xml
    
    
    
    mapreduce.framework.name
    yarn
    
    
    mapreduce.jobhistory.address
    node1:10020
    
    
    mapreduce.jobhistory.webapp.address
    node1:19888
    
    
    mapred.task.timeout
    1800000
    
    
    
  7. 配置slaves (四个节点都需要配置)

    # 在node1节点配置从节点,删掉里面的localhost,配置上从节点(node2、node3、node4)
    vim /home/modules/hadoop-2.8.3/etc/hadoop/slaves
    
    # 删掉里面的localhost,添加以下内容
    node2
    node3
    node4
    
    
  8. 拷贝插件jar包到指定目录(在node1下执行该指令配置一个环境后面皆cp)

    > cp /home/extend_tools/hadoop-huaweicloud-2.8.3.33.jar /home/modules/hadoop-2.8.3/share/hadoop/common/lib/
    
    > cp /home/extend_tools/hadoop-huaweicloud-2.8.3.33.jar /home/modules/hadoop-2.8.3/share/hadoop/tools/lib
    
    > cp /home/extend_tools/hadoop-huaweicloud-2.8.3.33.jar /home/modules/hadoop-2.8.3/share/hadoop/httpfs/tomcat/webapps/webhdfs/WEB-INF/lib/
    
    > cp /home/extend_tools/hadoop-huaweicloud-2.8.3.33.jar /home/modules/hadoop-2.8.3/share/hadoop/hdfs/lib/
    
  9. 分发组件
     #在 node1 执行如下命令,将 hadoop-2.8.3 目录拷贝到其他各个节点的/home/modules/下
     for i in {2..4};do scp -r /home/modules/hadoop-2.8.3 root@node${i}:/home/modules/;done
     在 node2~node4 节点执行如下命令检查是否复制成功
     校验
     ls /home/modules/ | grep hadoop
    

  1. 添加并校验环境变量
    #在 node1~node4,执行下面命令添加环境变量
    # 添加内容为:
    export HADOOP_HOME=/home/modules/hadoop-2.8.3
    export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
    export HADOOP_CLASSPATH=/home/modules/hadoop-2.8.3/share/hadoop/tools/lib/*:$HADOOP_CLASSPATH
    export JAVA_HOME=/usr/lib/jvm/java
    export PATH=$JAVA_HOME/bin:$PATH
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    
    
    #在 node1~node4,执行如下命令,使环境变量生效
    source /etc/profile
    #在 node1~node4,执行如下命令,校验环境变量:
    echo $HADOOP_HOME
    

初始化服务 初始化word
```shell
在 node1上执行如下命令,初始化 word
hdfs word -format
```
  1. 启动Hadoop集群
- 步骤 1	在node1节点执行以下命令 
    start-dfs.sh ; start-yarn.sh
    
    
    Starting word word  on [node1]
    Starting secondary word  [node1]
    starting yarn daemons
    
    # 关闭Hadoop集群的命令为
    stop-dfs.sh && stop-yarn.sh
  1. 验证Hadoop状态
  • 步骤 1 使用jps命令在node1-4中查看Java进程
#在node1中可以查看到 NameNode,SecondaryNameNode,ResourceManager进程,
#在node2-4中可以查看到 NodeManager 和 Datanode 进程,表示hadoop集群状态正常。

jps
  • 步骤 2 访问http://node1弹性公网IP:50070,可以登录Namenode的Web界面:


至此部署Hadoop完成

成功来源于一点一滴的坚持!!!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/307947.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号