Hadoop 服务划分

使用三台节点,集群部署规划如下

服务\主机

hadoop1

hadoop2

hadoop3

HDFS

NameNode

DataNode

DataNode

SecondaryNameNode

DataNode

YARN

NodeManager

ResourceManager

NodeManager

NodeManager

IP地址规划

  1. hadoop1 192.168.123.11
  2. hadoop2 192.168.123.12
  3. hadoop3 192.168.123.13

系统环境配置

一、基本信息配置(三台节点需要分别配置)

IP地址配置

  1. # 配置 IP 地址,网卡配置文件不一定相同
  2. vim /etc/sysconfig/network-scripts/ifcfg-ens33
  3.  
  4. # 自启动网卡
  5. ONBOOT="yes"
  6. # IP地址
  7. IPADDR="192.168.123.11"
  8. # 子网页码
  9. PREFIX=""
  10. # 网关
  11. GATEWAY="192.168.123.2"
  12. # DNS 服务器
  13. DNS1="119.29.29.29"
  14.  
  15. # 重启网络服务
  16. systemctl restart network

修改主机名

  1. # 修改主机名字为 hadoop1
  2. hostnamectl set-hostname hadoop1
  3.  
  4. # 退出当前用户再登录即可看见
  5. logout

关闭防火墙,也可放行

  1. # 关闭防火墙
  2. systemctl stop firewalld
  3.  
  4. # 关闭防火墙开机自启动
  5. systemctl disable firewalld

安装 Rsync 工具,用于同步主机之间的文件,这样后面的配置文件修改就不用每台机器都改一遍,直接同步过去即可

  1. # 清空 yum 源。若已配置源,直接安装即可
  2. rm -rf /etc/yum.repos.d/*
  3.  
  4. # 配置阿里 yum 源
  5. curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  6.  
  7. # 安装 rsync
  8. yum install -y rsync

二、基本服务配置(配置一台主机,其他主机同步即可)

配置主机之间相互免密登录

  1. # 以一台机器为例子,其他一样
  2.  
  3. # 生成密钥文件,一直回车
  4. ssh-keygen -t ecdsa -b
  5.  
  6. # 配置免密登录,需要输入远程主机密码,本机也需要配置
  7. ssh-copy-id -i ~/.ssh/id_ecdsa.pub hadoop1
  8. ssh-copy-id -i ~/.ssh/id_ecdsa.pub hadoop2
  9. ssh-copy-id -i ~/.ssh/id_ecdsa.pub hadoop3
  10.  
  11. # 验证,不用输密码即为成功
  12. ssh hadoop1 ls /

添加主机名到 Hosts 文件

  1. vim /etc/hosts
  2.  
  3. 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
  4. :: localhost localhost.localdomain localhost6 localhost6.localdomain6
  5. # 对应本机IP地址,非 127.0.0.1
  6. 192.168.123.11 hadoop1
  7. 192.168.123.12 hadoop2
  8. 192.168.123.13 hadoop3

安装 JDK https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

  1. # 解压
  2. tar -zxf /opt/jdk-8u202-linux-x64.tar.gz -C /opt/
  3.  
  4. # 配置环境变量
  5. vim /etc/profile
  6.  
  7. # JAVA_HOME
  8. export JAVA_HOME=/opt/jdk1..0_202/
  9. export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$CLASSPATH
  10. export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
  11.  
  12. # 刷新环境变量
  13. source /etc/profile
  14.  
  15. # 验证
  16. java -version
  17.  
  18. # java version "1.8.0_202"
  19. # Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
  20. # Java HotSpot(TM) -Bit Server VM (build 25.202-b08, mixed mode)

安装 Hadoop https://hadoop.apache.org/releases.html

  1. # 解压
  2. tar -zxf /opt/hadoop-2.9.-snappy-.tar.gz -C /opt/
  3.  
  4. # 配置环境变量
  5. vim /etc/profile
  6.  
  7. # HADOOP_HOME
  8. export HADOOP_HOME=/opt/hadoop-2.9.
  9. export PATH=$PATH:$HADOOP_HOME/bin
  10. export PATH=$PATH:$HADOOP_HOME/sbin
  11.  
  12. # 刷新环境变量
  13. source /etc/profile
  14.  
  15. # 验证
  16. hadoop version
  17.  
  18. # Hadoop 2.9.
  19. # Subversion Unknown -r Unknown
  20. # Compiled by root on --16T09:39Z
  21. # Compiled with protoc 2.5.
  22. # From source with checksum 3a9939967262218aa556c684d107985
  23. # This command was run using /opt/hadoop-2.9./share/hadoop/common/hadoop-common-2.9..jar

同步服务到其他机器

  1. # 同步 Hosts 文件
  2. rsync -avz /etc/hosts hadoop2:/etc/
  3. rsync -avz /etc/hosts hadoop3:/etc/
  4.  
  5. # 同步 JDK,源路径不要带斜杠
  6. rsync -avz /opt/jdk1..0_202 hadoop2:/opt/
  7. rsync -avz /opt/jdk1..0_202 hadoop3:/opt/
  8.  
  9. # 同步 Hadoop,源路径不要带斜杠
  10. rsync -avz /opt/hadoop-2.9. hadoop2:/opt/
  11. rsync -avz /opt/hadoop-2.9. hadoop3:/opt/
  12.  
  13. # 同步环境变量文件 profile,目标主机上的环境变量需要手动刷新:source /etc/profile
  14. rsync -avz /etc/profile hadoop2:/etc/
  15. rsync -avz /etc/profile hadoop3:/etc/

Hadoop分布式配置

配置一台机器,其他同步即可,配置文件目录:hadoop-2.9.2/etc/hadoop/

一、基本配置

core-site.xml

  1. <configuration>
  2. <!-- 指定HDFS中NameNode的地址 -->
  3. <property>
  4. <name>fs.defaultFS</name>
  5. <value>hdfs://hadoop1:9000</value>
  6. </property>
  7.  
  8. <!-- 指定Hadoop运行时产生文件的存储目录 -->
  9. <property>
  10. <name>hadoop.tmp.dir</name>
  11. <value>/opt/hadoop-tmp</value>
  12. </property>
  13. </configuration>

hadoop-env.sh

  1. # The java implementation to use.
  2. export JAVA_HOME=/opt/jdk1..0_202/

二、HDFS 配置

hdfs-site.xml

  1. <configuration>
  2. <!-- 指定文件块副本数 -->
  3. <property>
  4. <name>dfs.replication</name>
  5. <value>3</value>
  6. </property>
  7.  
  8. <!-- 指定Hadoop辅助名称节点主机配置 -->
  9. <property>
  10. <name>dfs.namenode.secondary.http-address</name>
  11. <value>hadoop3:50090</value>
  12. </property>
  13. </configuration>

三、YARN 配置

yarn-env.sh

  1. # some Java parameters
  2. export JAVA_HOME=/opt/jdk1..0_202/

yarn-site.xml

  1. <configuration>
  2. <!-- Site specific YARN configuration properties -->
  3. <!-- Reducer获取数据方式 -->
  4. <property>
  5. <name>yarn.nodemanager.aux-services</name>
  6. <value>mapreduce_shuffle</value>
  7. </property>
  8.  
  9. <!-- 指定YARN的ResourceManager地址 -->
  10. <property>
  11. <name>yarn.resourcemanager.hostname</name>
  12. <value>hadoop2</value>
  13. </property>
  14. </configuration>

四、MapReduce 配置

mapred-env.sh

  1. # limitations under the License.
  2.  
  3. export JAVA_HOME=/opt/jdk1..0_202/
  4.  
  5. # when HADOOP_JOB_HISTORYSERVER_HEAPSIZE is not defined, set it.

mapred-site.xml,将 mapred-site.xml.template 重命名为 mapred-site.xml

  1. <configuration>
  2. <!-- 指定MapReduce运行在Yarn上 -->
  3. <property>
  4. <name>mapreduce.framework.name</name>
  5. <value>yarn</value>
  6. </property>
  7. </configuration>

五、集群节点地址配置

slaves

  1. # 所有 DataNode 节点的主机地址
  2. hadoop1
  3. hadoop2
  4. hadoop3

六、将配置文件同步到其他节点

  1. # 将 Hadoop 配置文件同步到其他节点上
  2. rsync -avz /opt/hadoop-2.9. hadoop2:/opt/
  3. rsync -avz /opt/hadoop-2.9. hadoop3:/opt/

启动 Hadoop 集群

一、第一次使用需要先格式化 NameNode,这里是在 hadoop1 上执行格式化

  1. hadoop namenode -format

二、在 NameNode 所在节点启动 hdfs,这里是 hadoop1

  1. start-dfs.sh

三、在 ResourceManger 所在节点启动 yarn,这里是 hadoop2

  1. start-yarn.sh

查看各个节点进程

配置时间服务

https://www.cnblogs.com/jhxxb/p/10579816.html


http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/ClusterSetup.html

CentOS7 下 Hadoop 分布式部署的更多相关文章

  1. [过程记录]Centos7 下 Hadoop分布式集群搭建

    过程如下: 配置hosts vim /etc/hosts 格式: ip hostname ip hostname 设置免密登陆 首先:每台主机使用ssh命令连接其余主机 ssh 用户名@主机名 提示是 ...

  2. CentOS7下Hadoop伪分布式环境搭建

    CentOS7下Hadoop伪分布式环境搭建 前期准备 1.配置hostname(可选,了解) 在CentOS中,有三种定义的主机名:静态的(static),瞬态的(transient),和灵活的(p ...

  3. 在Centos7下安装与部署.net core

    在Centos7下安装与部署.net core 2018年02月28日 19:36:16 阅读数:388 个人安装流程,参照文档 https://www.cnblogs.com/Burt/p/6566 ...

  4. # centos7下FFmpeg环境部署记录

    # centos7下FFmpeg环境部署记录 随着视频在网站上的应用越来越多,越来越多的网站服务器需要支持视频转码,视频压缩,FFmpeg是目前最好用的网站服务器后台转码程序,应用最多.FFmpeg是 ...

  5. Centos7下GlusterFS 分布式文件系统环境搭建

    Centos7下 GlusterFS 环境搭建准备工作glusterfs-3.6.9.tar.gzuserspace-rcu-master.zip三台服务器:192.168.133.53.192.16 ...

  6. CentOS7 下 Hadoop 单节点(伪分布式)部署

    Hadoop 下载 (2.9.2) https://hadoop.apache.org/releases.html 准备工作 关闭防火墙 (也可放行) # 停止防火墙 systemctl stop f ...

  7. 【Hadoop 分布式部署 十 一: NameNode HA 自动故障转移】

    问题描述:    上一篇就是NameNode 的HA 部署完成,但是存在问题,问题是如果 主NameNode的节点宕机了,还是需要人工去使用命令来切换NameNode的Acitve 这样很不方便,所以 ...

  8. 【Hadoop 分布式部署 六:环境问题解决和集群基准测试】

    环境问题: 出现Temporary  failure  in  name  resolutionp-senior-zuoyan.com 的原因有很多,主要就是主机没有解析到, 那就在hadoop的sl ...

  9. 【Hadoop 分布式部署 四:配置Hadoop 2.x 中主节点(NN和RM)到从节点的SSH无密码登录】

    *******************                一定要使这三台机器的用户名相同,安装目录相同          ************* SSH 无密钥登录的简单介绍(之前再搭 ...

随机推荐

  1. Elasticsearch 删除数据

    删除数据分为两种:一种是删除索引(数据和表结构同时删除,作用同SQLSERVER 中 DROP TABLE "表格名" ),另一种是删除数据(不删除表结构,作用同SQLSERVER ...

  2. 查询SQLSERVER中系统所有表

    SQL 查询所有表名: SELECT NAME FROM SYSOBJECTS WHERE TYPE='U' SELECT * FROM INFORMATION_SCHEMA.TABLES 查询表的所 ...

  3. Quartus prime 16.0 in_system memory content editor 使用

    前言 quartus提供了片内存储器的实时查看与修改,而不用编译工程,很棒.你可以方便的查看到存储器中到底存储了什么东西. 流程 1.打开: 2.主界面: 3.设置jtag项之后,查看即可. sign ...

  4. Nifi flow 备份恢复

      1. 备份  copy 下面的文件到本地: conf/flow.xml.gz   2. 恢复 新安装一个nifi的环境,把这个文件copy到conf文件夹下 运行nifi, 在界面上create ...

  5. emwin之自绘制 BUTTON 图形的一些问题

    @2018-11-8 [小记] [需求] 官方只提供圆角矩形图形,其他图形及颜色需求则要自己实现 [注意] 通过回调函数自实现的图形绘制存在该回调函数一直被调用的现象,而非像窗口回调函数中 BUTTO ...

  6. pip 安装第三方包提示Unknown or unsupported command 'install'

    Unknown or unsupported command 'install' Unknown or unsupported command 'show' Unknown or unsupporte ...

  7. 使用Coverage进行代码覆盖率的测试

    软件测试实验报告 一.实验目的: 使用软件测试代码覆盖率. 二.实验工具: Windows10.Python3.6.3.Coverage. 三.实验内容: 1.编写准备测试的代码main.py和测试代 ...

  8. 录毛线脚本,直接抓包手写最简洁的LoadRunner性能测试脚本

    通常情况下,我们测试性能先要做单场景测试,即某个功能,一般情况下,这个功能依赖的功能(可能是需要先登录)不会太多, 如果录制脚本的话,会录制到很多无关的请求,大大增加了脚本的复杂度以及调整脚本的工作量 ...

  9. BZOJ 4562: [Haoi2016]食物链(拓扑排序)

    题面: https://www.lydsy.com/JudgeOnline/problem.php?id=4562 一句话题意:给一个DAG,求有多少条不完全相同的链,使链首入度为0,链尾出度为0. ...

  10. 【CF1141G】Privatization of Roads in Treeland

    题目大意:给定一个 N 个点的无根树,现给这个树进行染色.定义一个节点是坏点,若满足与该节点相连的至少两条边是相同的颜色,求至多有 k 个坏点的情况下最少需要几种颜色才能进行合法染色. 题解:考虑一个 ...