在公网IP为x.x.x.x、y.y.y.y和z.z.z.z并装有Centos8的服务器上进行hadoop集群搭建,都安装hadoop-3.1.3和server-jre-8u202-linux-x64。

环境准备(三台服务器都一样)

第一步,创建统一工作目录。

# 软件安装路径

命令:mkdir -p /usr/local/src/server/

# 数据存储路径

命令:mkdir -p /usr/local/src/data/

# 安装包存放路径

命令:mkdir -p /usr/local/src/software/

第二步,下载server-jre-8u202-linux-x64.tar.gz安装包。

到地址:https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html下载server-jre-8u202-linux-x64.tar.gz安装包。然后使用WinSCP将安装包上传到/usr/local/src/software文件夹中。或者也可以使用wget命令下载。

命令:cd /usr/local/src/software

wget https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html/jre-8u202-linux-x64.tar.gz

第三步,解压server-jre-8u202-linux-x64.tar.gz安装包。

命令:cd /usr/local/src/software

tar -zxvf server-jre-8u202-linux-x64.tar.gz -C /usr/local/src/server

第四步,配置环境变量。

配置/etc/profile文件,在文件添加下面的代码:

export JAVA_HOME=/usr/local/src/server/jdk1.8.0_202export JRE_HOME=$JAVA_HOME/jreexport PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

# 刷新profile文件

命令:source /etc/profile

第五步,测试server-jre是否配置成功。

# 查看jdk版本

命令:java -version

若结果显示server-jre的版本,则说明server-jre配置成功。

第六步,关闭防火墙。

为了可以让本地的机器可以通过Web网页访问集群资源,为了防止在运行集群的时候出现集群不可访问的状况,需要关闭防火墙。

命令:systemctl stop firewalld

# 开机时禁用防火墙

命令:systemctl disable firewalld

第七步,各自修改主机名,配置IP地址映射。

命令:hostnamectl set-hostname node1

hostnamectl set-hostname node2

hostnamectl set-hostname node3

对三台主机的IP地址进行映射,可以方便后续的配置,同时也方便对集群进行通信,三台机器同样操作。

在/etc/hosts文件中加入下面的代码:

x.x.x.x     node1y.y.y.y     node2z.z.z.z     node3

第八步,配置免密登录。

# 在~目录下执行,生成密钥

命令:cd

ssh-keygen -t rsa  # 按四下enter

cd /root/.ssh/

cp id_rsa.pub authorized_keys

# 将node1的密钥拷到其他服务器上

ssh-copy-id -i node2

ssh-copy-id -i node3

第九步,集群时间同步。

命令:yum -y install ntpdate

ntpdate ntp4.aliyun.com

安装Hadoop(三台服务器都一样)

第一步,集群规划。

NameNode=NN          DataNode=DN        SecondaryNameNode=SNN

NodeManager=NM     ResourceManager=RM

HDFS集群—主角色:NN   从角色:DN   主角色辅助角色:SNN

YARN集群—主角色:RM   从角色:NM

框架          node1      node2       node3HDFS        NN、DN        DN        SNN、DNYARN          NM        RM、NM        NM

Hadoop集群包括两个集群:HDFS集群和YARN集群。

两个集群都是标准的主从架构集群。

逻辑上分离:两个集群互相之间没有依赖、互不影响。

物理上在一起:某些角色进程往往部署在同一台物理服务器上。

MapReduce是计算框架、代码层面的组件,没有集群之说。

角色规划的准则:

根据软件工作特性和服务器硬件资源情况合理分配。

角色规划注意事项:

资源上有抢夺冲突的,尽量不要部署在一起。

工作上需要互相配合的,尽量部署在一起。

第二步,下载hadoop-3.1.3。

登录网址:https://archive.apache.org/dist/hadoop/common/

下载hadoop-3.1.3.tar.gz。也可以使用命令下载。

命令:cd /usr/local/src/software

wget https://archive.apache.org/dist/hadoop/common/hadoop-3.1.3/hadoop-3.1.3.tar.gz

第三步,上传、解压tar.gz压缩包。

命令:cd /usr/local/src/software

tar -zxvf hadoop-3.1.3.tar.gz -C /usr/local/src/server

第四步,配置环境变量。

在/etc/profile文件添加下面的代码:

export HADOOP_HOME=/usr/local/src/server/hadoop-3.1.3export PATH=$PATH:$HADOOP_HOME/binexport PATH=$PATH:$HADOOP_HOME/sbin

# 使环境变量生效

命令:source /etc/profile

# 测试是否配置成功

命令:hadoop version

如果结果显示“Hadoop 3.1.3”,则说明hadoop配置成功。

集群配置

配置文件在/usr/local/src/server/hadoop-3.1.3/etc/hadoop中。

第一步,对node1中的Hadoop自定义配置文件进行配置。

1)创建目录

命令:mkdir /usr/local/src/server/hadoop-3.1.3/tmp

mkdir /usr/local/src/server/hadoop-3.1.3/dfs

2)配置hadoop-env.sh。

在hadoop-env.sh文件中加入下面的代码:

export JAVA_HOME=/usr/local/src/server/jdk1.8.0_202# 在文件末尾加入下面的代码,设置用户以执行对应角色shell命令export HDFS_NAMENODE_USER=rootexport HDFS_DATANODE_USER=rootexport HDFS_SECONDARYNAMENODE_USER=rootexport YARN_RESOURCEMANAGER_USER=rootexport YARN_NODEMANAGER_USER=root

3)配置core-site.xml

在core-site.xml文件中加入下面的代码:

<configuration><property><name>fs.defaultFS</name><value>hdfs://node1:9000</value></property><!-- 配置Hadoop存储数据目录,默认/tmp/hadoop-${user.name} --><property><name>hadoop.tmp.dir</name><value>file:/usr/local/src/server/hadoop-3.1.3/tmp</value></property><!--  缓冲区大小,实际工作中根据服务器性能动态调整 --><property><name>io.file.buffer.size</name><value>131072</value></property><!--  开启hdfs的垃圾桶机制,删除掉的数据可以从垃圾桶中回收,单位分钟 --><property><name>fs.trash.interval</name><value>10080</value></property></configuration>

4)配置hdfs-site.xml

在hdfs-site.xml文件中加入下面的代码:

<configuration><!-- namenode存储hdfs名字的空间的元数据文件目录 --><property><name>dfs.namenode.name.dir</name>                     <value>file:/usr/local/src/server/hadoop-3.1.3/dfs/name</value></property><!-- datanode上的一个数据块的物理的存储位置文件 --><property><name>dfs.datanode.data.dir</name> <value>file:/usr/local/src/server/hadoop-3.1.3/dfs/data</value></property><!-- 指定HDFS保存数据副本的数量 --><property><name>dfs.replication</name><value>3</value></property><!-- 设置一个block的大小:128M--><property><name>dfs.blocksize</name><value>134217728</value></property><!-- 定义namenode界面的访问地址 --><property><name>dfs.http.address</name><value>node1:50070</value></property><!-- 设置HDFS的文件权限--><property><name>dfs.permissions</name><value>false</value></property><!-- 指定DataNode的节点配置文件 --><property><name>dfs.hosts</name><value>/usr/local/src/server/hadoop-3.1.3/etc/hadoop/workers</value></property></configuration>

5)配置workers。

在workers文件中加入下面的代码:

node1node2node3

注意:不要有多余的换行和空格

6)mapred-site.xml配置

在mapred-site.xml文件中加入下面的代码:

<configuration><!-- 指定 MapReduce 程序运行在 Yarn 上,表示MapReduce使用yarn框架 --><property><name>mapreduce.framework.name</name><value>yarn</value></property><!-- 开启MapReduce小任务模式 --><property><name>mapreduce.job.ubertask.enable</name><value>true</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></configuration>

7)配置yarn-site.xml

在yarn-site.xml文件中加入下面的代码:

<configuration><!-- Site specific YARN configuration properties --><!-- NodeManager获取数据的方式shuffle --><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><!-- yarn的web访问地址 --><property><description>The http address of the RM web application.If only a host is provided as the value,the webapp will be served on a random port.</description><name>yarn.resourcemanager.webapp.address</name><value>${yarn.resourcemanager.hostname}:8088</value></property><property><description>The https address of the RM web application.If only a host is provided as the value,the webapp will be served on a random port.</description><name>yarn.resourcemanager.webapp.https.address</name><value>${yarn.resourcemanager.hostname}:8090</value></property><!-- 开启日志聚合功能,方便我们查看任务执行完成之后的日志记录 --><property><name>yarn.log-aggregation-enable</name><value>true</value></property><!-- 设置聚合日志在hdfs上的保存时间 --><property><name>yarn.log-aggregation.retain-seconds</name><value>604800</value></property></configuration>

第二步,对node2中的Hadoop自定义配置文件进行配置。

1)创建目录

命令:mkdir /usr/local/src/server/hadoop-3.1.3/tmp

mkdir /usr/local/src/server/hadoop-3.1.3/dfs

2)配置hadoop-env.sh。

在hadoop-env.sh文件中加入下面的代码:

export JAVA_HOME=/usr/local/src/server/jdk1.8.0_202# 在文件末尾加入下面的代码,设置用户以执行对应角色shell命令export HDFS_NAMENODE_USER=rootexport HDFS_DATANODE_USER=rootexport HDFS_SECONDARYNAMENODE_USER=rootexport YARN_RESOURCEMANAGER_USER=rootexport YARN_NODEMANAGER_USER=root

3)配置core-site.xml

在core-site.xml文件中加入下面的代码:

<configuration><property><name>fs.defaultFS</name><value>hdfs://node2:9000</value></property><!-- 配置Hadoop存储数据目录,默认/tmp/hadoop-${user.name} --><property><name>hadoop.tmp.dir</name><value>file:/usr/local/src/server/hadoop-3.1.3/tmp</value></property><!--  缓冲区大小,实际工作中根据服务器性能动态调整 --><property><name>io.file.buffer.size</name><value>131072</value></property><!--  开启hdfs的垃圾桶机制,删除掉的数据可以从垃圾桶中回收,单位分钟 --><property><name>fs.trash.interval</name><value>10080</value></property></configuration>

4)配置hdfs-site.xml

在hdfs-site.xml文件中加入下面的代码:

<configuration><!-- namenode存储hdfs名字的空间的元数据文件目录 --><property><name>dfs.namenode.name.dir</name>           <value>file:/usr/local/src/server/hadoop-3.1.3/dfs/name</value></property><!-- datanode上的一个数据块的物理的存储位置文件 --><property><name>dfs.datanode.data.dir</name>         <value>file:/usr/local/src/server/hadoop-3.1.3/dfs/data</value></property><!-- 指定HDFS保存数据副本的数量 --><property><name>dfs.replication</name><value>3</value></property><!-- 设置一个block的大小:128M--><property><name>dfs.blocksize</name><value>134217728</value></property><!-- 设置HDFS的文件权限--><property><name>dfs.permissions</name><value>false</value></property><!-- 指定DataNode的节点配置文件 --><property><name>dfs.hosts</name><value>/usr/local/src/server/hadoop-3.1.3/etc/hadoop/workers</value></property></configuration>

5)配置workers。

在workers文件中加入下面的代码:

node1node2node3

注意:不要有多余的换行和空格

6)mapred-site.xml配置

在mapred-site.xml文件中加入下面的代码:

<configuration><!-- 指定MapReduce程序运行在Yarn上,表示MapReduce使用yarn框架 --><property><name>mapreduce.framework.name</name><value>yarn</value></property><!-- 开启MapReduce小任务模式 --><property><name>mapreduce.job.ubertask.enable</name><value>true</value></property><!-- 设置历史任务的主机和端口 --><property><name>mapreduce.jobhistory.address</name><value>node2:10020</value></property><!-- 设置网页访问历史任务的主机和端口 --><property><name>mapreduce.jobhistory.webapp.address</name><value>node2:19888</value></property></configuration>

7)配置yarn-site.xml

在yarn-site.xml文件中加入下面的代码:

<configuration><!-- Site specific YARN configuration properties --><!-- NodeManager获取数据的方式shuffle --><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><!-- 指定YARN的ResourceManager的地址 --><property><name>yarn.resourcemanager.hostname</name><value>node2</value></property><!-- yarn的web访问地址 --><property><description>The http address of the RM web application.If only a host is provided as the value,the webapp will be served on a random port.</description><name>yarn.resourcemanager.webapp.address</name><value>${yarn.resourcemanager.hostname}:8088</value></property><property><description>The https address of the RM web application.If only a host is provided as the value,the webapp will be served on a random port.</description><name>yarn.resourcemanager.webapp.https.address</name><value>${yarn.resourcemanager.hostname}:8090</value></property><!-- 开启日志聚合功能,方便我们查看任务执行完成之后的日志记录 --><property><name>yarn.log-aggregation-enable</name><value>true</value></property><!-- 设置聚合日志在hdfs上的保存时间 --><property><name>yarn.log-aggregation.retain-seconds</name><value>604800</value></property></configuration>

第三步,对node3中的Hadoop自定义配置文件进行配置。

1)创建目录

命令:mkdir /usr/local/src/server/hadoop-3.1.3/tmp

mkdir /usr/local/src/server/hadoop-3.1.3/dfs

2)配置hadoop-env.sh。

在hadoop-env.sh文件中加入下面的代码:

export JAVA_HOME=/usr/local/src/server/jdk1.8.0_202# 在文件末尾加入下面的代码,设置用户以执行对应角色shell命令export HDFS_NAMENODE_USER=rootexport HDFS_DATANODE_USER=rootexport HDFS_SECONDARYNAMENODE_USER=rootexport YARN_RESOURCEMANAGER_USER=rootexport YARN_NODEMANAGER_USER=root

3)配置core-site.xml

在core-site.xml文件中加入下面的代码:

<configuration><property><name>fs.defaultFS</name><value>hdfs://node3:9000</value></property><!-- 配置Hadoop存储数据目录,默认/tmp/hadoop-${user.name} --><property><name>hadoop.tmp.dir</name><value>file:/usr/local/src/server/hadoop-3.1.3/tmp</value></property><!--  缓冲区大小,实际工作中根据服务器性能动态调整 --><property><name>io.file.buffer.size</name><value>131072</value></property><!--  开启hdfs的垃圾桶机制,删除掉的数据可以从垃圾桶中回收,单位分钟 --><property><name>fs.trash.interval</name><value>10080</value></property></configuration>

4)配置hdfs-site.xml

在hdfs-site.xml文件中加入下面的代码:

<configuration><!-- namenode存储hdfs名字的空间的元数据文件目录 --><property><name>dfs.namenode.name.dir</name>                   <value>file:/usr/local/src/server/hadoop-3.1.3/dfs/name</value></property><!-- datanode上的一个数据块的物理的存储位置文件 --><property><name>dfs.datanode.data.dir</name><value>file:/usr/local/src/server/hadoop-3.1.3/dfs/data</value></property><!-- 指定HDFS保存数据副本的数量 --><property><name>dfs.replication</name><value>3</value></property><!-- 设置一个block的大小:128M--><property><name>dfs.blocksize</name><value>134217728</value></property><!-- 定义secondarynamenode的通信地址 --><property><name>dfs.namenode.secondary.http-address</name><value>node3:50071</value></property><!-- 设置HDFS的文件权限--><property><name>dfs.permissions</name><value>false</value></property><!-- 指定DataNode的节点配置文件 --><property><name>dfs.hosts</name><value>/usr/local/src/server/hadoop-3.1.3/etc/hadoop/workers</value></property></configuration>

5)配置workers。

在workers文件中加入下面的代码:

node1node2node3

注意:不要有多余的换行和空格

6)mapred-site.xml配置

在mapred-site.xml文件中加入下面的代码:

<configuration><!-- 指定 MapReduce 程序运行在 Yarn 上,表示MapReduce使用yarn框架 --><property><name>mapreduce.framework.name</name><value>yarn</value></property><!-- 开启MapReduce小任务模式 --><property><name>mapreduce.job.ubertask.enable</name><value>true</value></property><!-- 设置历史任务的主机和端口 --><property><name>mapreduce.jobhistory.address</name><value>node3:10020</value></property><!-- 设置网页访问历史任务的主机和端口 --><property><name>mapreduce.jobhistory.webapp.address</name><value>node3:19888</value></property></configuration>

7)配置yarn-site.xml

在yarn-site.xml文件中加入下面的代码:

<configuration><!-- Site specific YARN configuration properties --><!-- NodeManager获取数据的方式shuffle --><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><!-- yarn的web访问地址 --><property><description>The http address of the RM web application.If only a host is provided as the value,the webapp will be served on a random port.</description><name>yarn.resourcemanager.webapp.address</name><value>${yarn.resourcemanager.hostname}:8088</value></property><property><description>The https address of the RM web application.If only a host is provided as the value,the webapp will be served on a random port.</description><name>yarn.resourcemanager.webapp.https.address</name><value>${yarn.resourcemanager.hostname}:8090</value></property><!-- 开启日志聚合功能,方便我们查看任务执行完成之后的日志记录 --><property><name>yarn.log-aggregation-enable</name><value>true</value></property><!-- 设置聚合日志在hdfs上的保存时间 --><property><name>yarn.log-aggregation.retain-seconds</name><value>604800</value></property></configuration>

集群启动

# 注意:如果集群是第一次启动,需要在Namenode所在节点格式化NameNode,非第一次不用执行格式化 Namenode 操作。

命令:hadoop namenode -format

# 在node1,node2,node3上分别启动HDFS、YARN

命令:cd /usr/local/src/server/hadoop-3.1.3/sbin

./start-dfs.sh   (HDFS)

./start-yarn.sh   (YARN)

# 在node1,node2,node3上查看集群的hadoop进程

命令:jps

若在node1,node2,node3上分别显示下面的结果,则说明启动集群启动成功。

# 在node1,node2,node3上分别停止HDFS、YARN

命令:cd /usr/local/src/server/hadoop-3.1.3/sbin

./stop-dfs.sh  (HDFS)

./stop-yarn.sh  (YARN)

在Linux中进行hadoop集群搭建相关推荐

  1. Linux中的redis集群搭建

    看在多的书,若果不实践一次,我觉得效果并不好,只有自己完完整整的做一次! 所以今天打算搭建一个redis集群来练练手~! 1.Linux CentOS  , redis-3.2.4 版本 2.配置环境 ...

  2. Hadoop集群搭建(三台Linux服务器)

    Hadoop集群搭建(三台Linux服务器) 搭建之前注意的几点问题 环境以及版本 基本命令 Linux环境准备 首先安装Hadoop 配置集群分发脚本 克隆配置好的机器 Hadoop集群配置 第一步 ...

  3. linux hadoop集群搭建,hadoop集群搭建

    hadoop集群搭建步骤 实验介绍 下面将要在三台linux虚拟机上搭建hadoop集群. 知识点 linux基本命令 集群安装 完成实验需要以下相关知识 解压命令 tar -zxvf XX.tar. ...

  4. 【大数据实战】Docker中Hadoop集群搭建

    目录 Docker中Hadoop集群搭建 环境 网络设置 安装docker 安装OpenSSH免密登录 Ansible安装 软件环境配置 配置hadoop运行所需配置文件 Hadoop 启动 问题 D ...

  5. 好程序员大数据笔记之:Hadoop集群搭建

    好程序员大数据笔记之:Hadoop集群搭建在学习大数据的过程中,我们接触了很多关于Hadoop的理论和操作性的知识点,尤其在近期学习的Hadoop集群的搭建问题上,小细节,小难点拼频频出现,所以,今天 ...

  6. 【Oracle 集群】Linux下Oracle RAC集群搭建之基本测试与使用(九)

    Oracle 11G RAC数据库安装(九) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总 ...

  7. Hadoop集群搭建(27)

    2019独角兽企业重金招聘Python工程师标准>>> Hadoop集群搭建方式: 1.1    确定部署三个节点,分别是hadoop0,hadoop1,hadoop2. 其中had ...

  8. 不看就亏系列!这里有完整的 Hadoop 集群搭建教程,和最易懂的 Hadoop 概念!| 附代码...

    作者 | chen_01_c 责编 | Carol 来源 | CSDN 博客 封图 | CSDN付费下载于视觉中国 hadoop介绍 Hadoop 是 Lucene 创始人 Doug Cutting, ...

  9. 大数据Hadoop集群搭建

    大数据Hadoop集群搭建 一.环境 服务器配置: CPU型号:Intel® Xeon® CPU E5-2620 v4 @ 2.10GHz CPU核数:16 内存:64GB 操作系统 版本:CentO ...

最新文章

  1. PHP mysql数据迁移,【MySQL】迁移数据目录php-php教程
  2. python中集合的元素可以是任意数据类型_Python之基本数据类型——集合数据类型...
  3. Springboot总结,核心功能,优缺点
  4. Harmonic Number(调和级数+欧拉常数)
  5. android防治方法被反射,通过去classLoader避免Android P反射限制后还原classLoader的方法...
  6. 在MVC的cshtml视图页获取默认路由下的ID值的方法
  7. linux下编译wpa_supplicantnbsp;…
  8. PageRank算法简介及Map-Reduce实现
  9. easyx鼠标放置前按钮颜色_七种正确使用鼠标的好习惯,让你摆脱鼠标手的痛苦...
  10. 微信第三方平台定时接收component_verify_ticket
  11. android+查看内存容量apk,如何检查 Android 应用的内存使用情况
  12. 算法(八):图解KNN算法
  13. Java_Decimal
  14. java实例_Java线程方式及实例
  15. Qt 中实现在控件中点击鼠标,就在鼠标点击处加载图片的方法
  16. 每日一题(开开森森学前端之Object系列)
  17. Eclipse Egit 安装
  18. 单片机pic的linux环境代替,pic单片机can总线协议收发编程
  19. 基于Python的指数基金量化投资 - 指数投资技巧(二)定期不定额
  20. 网管员常用工具(二)

热门文章

  1. Parameter 0 of method errorPageCustomizer in ErrorMvcAutoConfiguration 异常解决
  2. Nessus安装使用及自动化说明
  3. unity微信小游戏开发【含源码】
  4. socket服务器文件名和客户端一致,缘分锝天空的博客:嵌入式课程设计:socket通信模拟服务器客户端...
  5. 电动力学专题:等离子体
  6. 基于微信小程序的校园二手交易平台
  7. 共享茶室,共享自习室,无人棋牌室小程序功能介绍
  8. 【SDCC讲师专访】58同城孙玄:一切抛开业务的架构设计都是耍流氓
  9. Qt中的.qrc文件
  10. 覆盖率工具gcov,lcov实践