zoukankan      html  css  js  c++  java
  • 【大数据】Hadoop的全分布式安装

    准备

    集群服务器准备

    在虚拟机中创建四个配置为1核,2G内存,20G存储的虚拟机。(在这里有任何问题,请参考上篇博文——>传送门

    必要的软件工具准备

    FileZilla Client(FTP客户端)

    MobaXterm(SSH客户端)

    hadoop-3.3.1(hadoop核心文件)

    这里不提供下载地址,有需要请直接参考上篇博文

    配置

    将四个虚拟机的源全部变更为清华源或其他国内源

    传送门

    将四个虚拟机安装Java环境,同时设置环境变量

    请直接参考上篇博文

    使用SFTP软件,将下载好的hadoop-3.3.1包放置在固定目录下并解压

    这里安装路径统一为/data/hadoop

    执行命令如下:
    mkdir /data/hadoop tar -zxvf hadoop-3.3.0.tar.gz -C /data/hadoop

    修改各个主机的节点名称,便于后续配置

    # 在主机一上,设置为hadoopmaster
    hostnamectl set-hostname hadoopmaster
    # 在主机二上,设置为hadoopnode2
    hostnamectl set-hostname hadoopnode2
    # 在主机三上,设置为hadoopnode3
    hostnamectl set-hostname hadoopnode3
    # 在主机四上,设置为hadoopnode4
    hostnamectl set-hostname hadoopnode4

    修改各个主机的host文件,便于后续配置

    下面的ip是对应我的虚拟机的ip,这里需要自己查看自己虚拟机分配的ip。

    192.168.206.128 hadoopmaster
    192.168.206.132 hadoopnode2
    192.168.206.133 hadoopnode3
    192.168.206.131 hadoopnode4

    在每台虚拟机中执行命令,并添加上述代码:

    vim /etc/hosts

    这里需要说明一下,由于虚拟机的ip是通过DHCP服务获取的,所以若分配IP更改,则会导致各个服务器之间通信受阻,建议将服务器设置为静态IP,保证通讯不中断,这个操作为可选操作,未来有时间我会添加,目前暂时不表。

    权限配置

    由于目前全部服务器的账号均为root,之前的博文中提及root用户可能会存在问题,hadoop不建议使用此账户管理hadoop

    因此,这里需要创建普通用户用于对hadoop进行管理。

    这里给每个机器创建一个名为hadoop的账户。

    adduser hadoop
    passwd hadoop
    #输入你的密码

    配置节点间ssh免密钥登录

    需要配置 master 主机(node1)到 slave1(node2) , slave2(node3),slave3(node4)和其本身的 SSH 免密登入

    # 在node1主机上执行
    su hadoop
    ssh-keygen -t rsa
    ssh-copy-id hadoop@hadoopmaster
    ssh-copy-id hadoop@hadoopnode2
    ssh-copy-id hadoop@hadoopnode3
    ssh-copy-id hadoop@hadoopnode4

    配置各个节点间的hadoop的JAVA_HOME

    vim /data/hadoop/hadoop-3.3.0/etc/hadoop/hadoop-env.sh

    修改JAVA_HOME

    export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-0.el7_8.x86_64/

    保存即可

    在hadoopmaster主机上配置NameNode节点

    # 在hadoopmaster主机上运行
    vim /data/hadoop/hadoop-3.3.0/etc/hadoop/core-site.xml
    # 修改为如下配置


    <configuration>
      <property>
        <name>fs.default.name</name>
        <value>hdfs://hadoopmaster:9000</value>
      </property>
    </configuration>

    在hadoopmaster上配置HDFS

    # 在hadoopmaster主机上运行
    vim /data/hadoop/hadoop-3.3.0/etc/hadoop/hdfs-site.xml
    # 修改为如下配置
    <configuration>
      <property>
          <name>dfs.namenode.name.dir</name>
          <value>/data/hadoop/data/nameNode</value>
      </property>
    
      <property>
          <name>dfs.datanode.data.dir</name>
          <value>/data/hadoop/data/dataNode</value>
      </property>
    
      <property>
          <name>dfs.replication</name>
          <value>3</value>
      </property>
    </configuration>

    上述配置中,第一个是配置NameNode节点,第二个配置DataNode节点,第三个配置副本数量。注意第三个若从节点有三个,则副本数量必然<=3,以此类推。具体原因,后续慢慢介绍

    在hadoopmaster上配置MR、YARN

    # 在hadoopmaster主机上运行
    vim /data/hadoop/hadoop-3.3.0/etc/hadoop/mapred-site.xml
    # 修改为如下配置
    <configuration>
      <property>
          <name>mapreduce.framework.name</name>
          <value>yarn</value>
      </property>
      
      <property>
          <name>yarn.app.mapreduce.am.env</name>
          <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
      </property>
      
      <property>
          <name>mapreduce.map.env</name>
          <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
      </property>
      
      <property>
          <name>mapreduce.reduce.env</name>
          <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
      </property>
    </configuration>

    vim /data/hadoop/hadoop-3.3.0/etc/hadoop/yarn-site.xml
    # 修改为如下配置
    <configuration>
      <property>
      <name>yarn.resourcemanager.hostname</name>
      <value>hadoopmaster</value>
      </property>
      <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
      </property>
    </configuration>

    配置 Workers 节点

    vim /data/hadoop/hadoop-3.3.0/etc/hadoop/workers

    #修改配置为

    hadoopnode2
    hadoopnode3
    hadoopnode4

    拷贝分发至其他节点,无需再次配置

    scp /data/hadoop/hadoop-3.3.0/etc/hadoop/* hadoopnode2:/data/hadoop/hadoop-3.3.0/etc/hadoop/
    scp /data/hadoop/hadoop-3.3.0/etc/hadoop/* hadoopnode3:/data/hadoop/hadoop-3.3.0/etc/hadoop/
    scp /data/hadoop/hadoop-3.3.0/etc/hadoop/* hadoopnode4:/data/hadoop/hadoop-3.3.0/etc/hadoop/

    关闭其他节点防火墙,防止出现其他可能的问题

    由于这里仅仅用于学习,因此可以如此做。在生产环境过程中,这里是需要防火墙安全的,要做更加精细化的安全策略。

    systemctl stop firewalld
    systemctl disable firewalld

    测试

    初始化HDFS

    可将Hadoop相关命令放置到系统环境变量中,这里我不做赘述,需要请移步上篇博文。

    hdfs namenode -format

     说明成功初始化!

    开启HDFS集群

    start-dfs.sh

     说明成功!然后,在各个节点输入jps,查看目前运行的hadoop进程

     

     

     

     

     说明集群正常工作!

    开启YARN

    start-yarn.sh

    访问集群可视化界面

    访问:http://192.168.206.128:8088/

     成功!

    访问:http://192.168.206.128:9870/

    若无法访问,请在hdfs-site.xml文件中添加

    <property>
      <name>dfs.namenode.http-address</name>
      <value>0.0.0.0:9870</value>
    </property>

     

  • 相关阅读:
    Excel宏开发之合并单元格
    excel破解工作簿与工作表保护
    jquery高级编程学习
    Git 和 SVN 存储方式的差异对比
    SSH 连接时间超时
    linux 使用 Python 画图工具matplotlib 提示display 错误
    centos安装字体
    linux编译安装中configure、make和make install各自的作用
    npm run build
    centos ssh 免密码登录
  • 原文地址:https://www.cnblogs.com/nfuquan/p/13665951.html
Copyright © 2011-2022 走看看