IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 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
      
      <configuration>
          
      <property>
          <name>fs.obs.readahead.inputstream.enabled</name>
          <value>true</value>
      </property>
      <property>
          <name>fs.obs.buffer.max.range</name>
          <value>6291456</value>
      </property>
      <property>
          <name>fs.obs.buffer.part.size</name>
          <value>2097152</value>
      </property>
      <property>
          <name>fs.obs.threads.read.core</name>
          <value>500</value>
      </property>
      <property>
          <name>fs.obs.threads.read.max</name>
          <value>1000</value>
      </property>
      <property>
          <name>fs.obs.write.buffer.size</name>
          <value>8192</value>
      </property>
      <property>
          <name>fs.obs.read.buffer.size</name>
          <value>8192</value>
      </property>
      <property>
          <name>fs.obs.connection.maximum</name>
          <value>1000</value>
      </property>
      <property>
          <name>fs.defaultFS</name>
          <value>hdfs://node1:8020</value>
      </property>
      <property>
          <name>hadoop.tmp.dir</name>
          <value>/home/modules/hadoop-2.8.3/tmp</value>
      </property>
      <property>
          <name>fs.obs.buffer.dir</name>
          <value>/home/modules/data/buf</value>
      </property>
      <property>
          <name>fs.obs.impl</name>
          <value>org.apache.hadoop.fs.obs.OBSFileSystem</value>
      </property>
      <property>
          <name>fs.obs.connection.ssl.enabled</name>
          <value>false</value>
      </property>
      <property>
          <name>fs.obs.fast.upload</name>
          <value>true</value>
      </property>
      <property>
          <name>fs.obs.socket.send.buffer</name>
          <value>65536</value>
      </property>
      <property>
          <name>fs.obs.socket.recv.buffer</name>
          <value>65536</value>
      </property>
      <property>
          <name>fs.obs.max.total.tasks</name>
          <value>20</value>
      </property>
      <property>
          <name>fs.obs.threads.max</name>
          <value>20</value>
      </property>
          
      </configuration>
      
  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
      
      <configuration></configuration>
      <property>
          <name>fs.obs.access.key</name>
          <value>Access Key ID</value>
      </property>
      <property>
          <name>fs.obs.secret.key</name>
          <value>Secret Access Key</value>
      </property>
      <property>
          <name>fs.obs.endpoint</name>
          <value>obs.cn-north-4.myhuaweicloud.com</value>
      </property>
      </configuration>
      
  4. 配置hdfs-site.xml

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

    vim /home/modules/hadoop-2.8.3/etc/hadoop/yarn-site.xml
    
    <configuration>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>node1</value>
        <description>表示ResourceManager安装的主机</description>
    </property>
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>node1:8032</value>
        <description>表示ResourceManager监听的端口</description>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
        <description>为map reduce应用打开shuffle 服务</description>
    </property>
    <property>
        <name>yarn.nodemanager.local-dirs</name>
        <value>/home/nm/localdir</value>
        <description>表示nodeManager中间数据存放的地方</description>
    </property>
    <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>3072</value>
        <description>表示这个NodeManager管理的内存大小</description>
    </property>
    <property>
        <name>yarn.nodemanager.resource.cpu-vcores</name>
        <value>2</value>
        <description>表示这个NodeManager管理的cpu个数</description>
    </property>
    <property>
        <name>yarn.nodemanager.pmem-check-enabled</name>
        <value>false</value>
        <description>不检查每个任务的物理内存量</description>
    </property>
    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
        <description>不检查每个任务的虚拟内存量</description>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
        <description>为map reduce应用打开shuffle 服务</description>
    </property>
    </configuration>
    
  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
    
    <configuration>
    <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    </property>
    <property>
    <name>mapreduce.jobhistory.address</name>
    <value>node1:10020</value>
    </property>
    <property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>node1:19888</value>
    </property>
    <property>
    <name>mapred.task.timeout</name>
    <value>1800000</value>
    </property>
    </configuration>
    
  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完成

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

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-10-11 17:55:43  更:2021-10-11 17:56:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 17:24:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码