1.4 Apache Hadoop完全分布式集群搭建-hadoop-最全最完整的保姆级的java大 ...

打印 上一主题 下一主题

主题 1920|帖子 1920|积分 5770

目录

1.4 Apache Hadoop 完全分布式集群搭建


  • 软件和操作系统版本
    Hadoop框架是采用Java语言编写,需要java环境(jvm)
    JDK版本:JDK8版本
    集群:
    知识点学习:统一使用vmware虚拟机虚拟三台linux节点,linux操作系统:Centos7
    生产阶段:建议最少5台服务器节点
  • Hadoop搭建方式
    单机模式:单节点模式,非集群,生产不会使用这种方式
    单机伪分布式模式:单节点,多线程模拟集群的效果,生产不会使用这种方式
    完全分布式模式:多台节点,真正的分布式Hadoop集群的搭建(生产环境建议使用这种方式)
1.4.1 虚拟机环境准备


  • 三台虚拟机(静态IP,关闭防火墙,修改主机名,配置免密登录,集群时间同步)
  • 在/opt目录下创建文件夹
  1. #软件安装包存放目录
  2. mkdir -p /opt/lagou/software
  3. #软件安装目录
  4. mkdir -p /opt/lagou/servers
复制代码

  • Hadoop下载地址:
​        https://archive.apache.org/dist/hadoop/common/hadoop-2.9.2/
​        Hadoop官网地址:
​        http://hadoop.apache.org/

  • 上传hadoop安装文件到/opt/lagou/software
1.4.2 集群规划

框架linux121
linux122
linux123HDFSNameNode、DataNodeDataNodeSecondaryNameNode、DataNodeYARNNodeManagerNodeManagerNodeManager、ResourceManager1.4.3 安装Hadoop


  • 登录linux121节点;进入/opt/lagou/software,解压安装文件到/opt/lagou/servers
  1. tar -zxvf hadoop-2.9.2.tar.gz -C /opt/lagou/servers
复制代码

  • 查看是否解压成功
  1. ll /opt/lagou/servers/hadoop-2.9.2
复制代码

  • 添加Hadoop到环境变量 vim /etc/profile
  1. #HADOOP_HOME
  2. export HADOOP_HOME=/opt/lagou/servers/hadoop-2.9.2 export PATH=$PATH:$HADOOP_HOME/bin
  3. export PATH=$PATH:$HADOOP_HOME/sbin
复制代码

  • 使环境变量生效
  1. source /etc/profile
复制代码

  • 验证hadoop
  1. hadoop version
复制代码
​        校验结果:


  • hadoop目录


  • bin目录:对Hadoop进行操作的相关命令,如hadoop,hdfs等
  • etc目录:Hadoop的配置文件目录,如hdfs-site.xml,core-site.xml等
  • lib目录:Hadoop本地库(解压缩的依赖)
  • sbin目录:存放的是Hadoop集群启动停止相关脚本,命令
  • share目录:Hadoop的一些jar,官方案例jar,文档等
1.4.3.1 集群配置

Hadoop集群配置 = HDFS集群配置 + MapReduce集群配置 + Yarn集群配置


  • HDFS集群配置

    • 将JDK路径明确配置给HDFS(修改hadoop-env.sh)
    • 指定NameNode节点以及数据存储目录(修改core-site.xml)
    • 指定SecondaryNameNode节点(修改hdfs-site.xml)
    • 指定DataNode从节点(修改etc/hadoop/slaves文件,每个节点配置信息占一行)

  • MapReduce集群配置

    • 将JDK路径明确配置给MapReduce(修改mapred-env.sh)
    • 指定MapReduce计算框架运行Yarn资源调度框架(修改mapred-site.xml)

  • Yarn集群配置

    • 将JDK路径明确配置给Yarn(修改yarn-env.sh)
    • 指定ResourceManager老大节点所在计算机节点(修改yarn-site.xml)
    • 指定NodeManager节点(会通过slaves文件内容确定)

集群配置具体步骤:
1.4.3.1.1 HDFS集群配置
  1. cd /opt/lagou/servers/hadoop-2.9.2/etc/hadoop
复制代码

  • 配置:hadoop-env.sh
    将JDK路径明确配置给HDFS
    vim hadoop-env.sh
  1. export JAVA_HOME=/opt/lagou/servers/jdk1.8.0_231
复制代码

  • 指定NameNode节点以及数据存储目录(修改core-site.xml)
    vim core-site.xml
  1. <property>
  2.         <name>fs.defaultFS</name>
  3.         <value>hdfs://linux121:9000</value>
  4. </property>
  5. <property>
  6.         <name>hadoop.tmp.dir</name>
  7.         <value>/opt/lagou/servers/hadoop-2.9.2/data/tmp</value>
  8. </property>
复制代码
core-site.xml的默认配置:
https://hadoop.apache.org/docs/r2.9.2/hadoop-project-dist/hadoop-common/core-default.xml

  • 指定secondarynamenode节点(修改hdfs-site.xml)
    vim hdfs-site.xml
  1. <property>
  2.         <name>dfs.namenode.secondary.http-address</name>
  3.     <value>linux123:50090</value>
  4. </property>
  5. <property>
  6.         <name>dfs.replication</name>
  7.         <value>3</value>
  8. </property>
复制代码
官方默认配置
https://hadoop.apache.org/docs/r2.9.2/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml

  • 指定datanode从节点(修改slaves文件,每个节点配置信息占一行)
​                vim slaves
  1. linux121
  2. linux122
  3. linux123
复制代码
注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行。
1.4.3.1.2 MapReduce集群配置


  • 指定MapReduce使用的jdk路径(修改mapred-env.sh)
    vim mapred-env.sh
  1. export JAVA_HOME=/opt/lagou/servers/jdk1.8.0_231
复制代码

  • 指定MapReduce计算框架运行Yarn资源调度框架(修改mapred-site.xml)
  1. mv mapred-site.xml.template mapred-site.xml
  2. vim mapred-site.xml
复制代码
  1. <property>
  2.         <name>mapreduce.framework.name</name>
  3.         <value>yarn</value>
  4. </property>
复制代码
mapred-site.xml默认配置
https://hadoop.apache.org/docs/r2.9.2/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml
1.4.3.1.3 Yarn集群配置


  • 指定JDK路径
​        vim yarn-env.sh
  1. export JAVA_HOME=/opt/lagou/servers/jdk1.8.0_231
复制代码

  • 指定ResourceManager的master节点信息(修改yarn-site.xml)
​        vim yarn-site.xml
  1. <property>
  2.         <name>yarn.resourcemanager.hostname</name>
  3.         <value>linux123</value>
  4. </property>
  5. <property>
  6.         <name>yarn.nodemanager.aux-services</name>
  7.         <value>mapreduce_shuffle</value>
  8. </property>
复制代码
yarn-site.xml的默认配置
https://hadoop.apache.org/docs/r2.9.2/hadoop-yarn/hadoop-yarn-common/yarn-default.xml

  • 指定NodeManager节点(slaves文件已修改)
注意:
Hadoop安装目录所属用户和所属用户组信息,默认是501 dialout,而我们操作Hadoop集群的用户使用的是虚拟机的root用户,所以为了避免出现信息混乱,修改Hadoop安装目录所属用户和用户组!!!
  1. chown -R root:root /opt/lagou/servers/hadoop-2.9.2
复制代码
1.4.3.2 分发配置

编写集群分发脚本rsync-script

  • rsync 远程同步工具
rsync主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。
rsync和scp区别:用rsync做文件的复制要比scp的速度快,rsync只对差异文件做更新。scp是把所有文 件都复制过去。

  • 基本语法
  1. rsync   -rvl                 $pdir/$fname          $user@$host:$pdir/$fname
复制代码
​        命令    选项参数    要拷贝的文件路径/名称      目的用户@主机:目的路径/名称

  • 选项参数说明
表2-2
选项功能-r递归-v显示复制过程-l拷贝符号连接<ul>rsync案例

  • 三台虚拟机安装rsync (执行安装需要保证机器联网)
  1. [root@linux121 ~]# yum install -y rsync
复制代码

  • 把linux121机器上的/opt/lagou/software目录同步到linux122服务器的root用户下的/opt/目录
  1. [root@linux121 opt]$ rsync -rvl /opt/lagou/software/ root@linux122:/opt/lagou/software
复制代码
集群分发脚本编写
<ol>需求:循环复制文件到集群所有节点的相同目录下
rsync命令原始拷贝:
  1. rsync  -rvl          /opt/module         root@linux123:/opt/
复制代码
期望脚本
脚本+要同步的文件名称
说明:在/usr/local/bin这个目录下存放的脚本,root用户可以在系统任何地方直接执行。
脚本实现
(1)在/usr/local/bin目录下创建文件rsync-script,文件内容如下:
  1. [root@linux121 bin]$ touch rsync-script
  2. [root@linux121 bin]$ vim rsync-script
复制代码
在文件中编写shell代码
[code]#!/bin/bash#1 获取命令输入参数的个数,如果个数为0,直接退出命令 paramnum=$# if((paramnum==0)); then echo no params; exit; fi  #2 根据传入参数获取文件名称 p1=$1file_name=`basename $p1`echo fname=$file_name  #3 获取输入参数的绝对路径pdir=`cd -P $(dirname $p1); pwd`echo pdir=$pdir  #4 获取用户名称user=`whoami`  #5 循环执行rsync for((host=121; host
继续阅读请点击广告

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

篮之新喜

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表