Hadoop集群搭建,14张过程截图超详细教程

Hadoop集群搭建,14张过程截图超详细教程作者 大数据小禅 文章简介 本篇文章主要讲解 Hadoop 集群的搭建 为了方便大家理解与操作 关键的步骤博主都进行了截图 减少小伙伴的出错概率 文章源码获取 本文的搭建 PDF 相关安装包 小伙伴们可以关注文章底部的公众号 点击 联系我 备注 Hadoop 搭建获取哦 欢迎小伙伴们点赞 收藏 留言 Hadoop 集群搭建过程 1 Hadoop 简介以及集群规划 2 基础环境准备 3 关闭防火墙 4 配置 IP 地址映射 5 添加 Hadoop 用

? 作者 :“大数据小禅”

? 文章简介 :本篇文章主要讲解Hadoop集群的搭建,为了方便大家理解与操作,关键的步骤博主都进行了截图,减少小伙伴的出错概率。

? 文章源码获取 :本文的搭建PDF,相关安装包,小伙伴们可以关注文章底部的公众号,点击“联系我”备注Hadoop搭建获取哦。

? 欢迎小伙伴们 点赞?、收藏⭐、留言?

1.Hadoop简介以及集群规划

• Hadoop是由Apache基金会开源的 分布式储存+分布式计算平台提供分布式的储存和计算

• 是一个分布式的系统基础架构:用户可以在不了解分布式底层细节的情况下进行使用。

• 分布式文件系统:HDFS实现将文件分布式储存在很多服务器上

• 分布式计算框架:MapReduce实现在很多机器上分布式并行计算

• 分布式资源调度框架:YARN实现集群资源管理以及作业的调度

集群规划

HDFS: NameNode和DataNodes ==> NN DN

YARN: ResourceManager,NodeManager ==> RM NM

node1 node2 node3
NN RN DN NM DN NM DN NM

2.基础环境准备

要搭建Hadoop集群,Java环境是必不可少的,而且集群的每台机器必须具有,这一步我们进行Java的安装以及环境配置。

版本说明:Java的版本为JDK8,使用的Hadoop版本为2.7,集群的环境使用Linux Centos7,集群共三台机器,分别为node1,node2,node3。使用到的安装包也可以联系我备注相关安装包获取。更改主机名字的命令为

 hostnamectl set-hostname xxxx 

首先使用连接工具连接上我们的Linux,将JDK8的安装包进行上传,这里是建议创建一个文件夹,将上传的文件进行统一管理。上传好准备好的JDK安装包jdk-8u212-linux-x64.tar.gz,这里是我是放在了app目录下,上传好之后进行解压操作。命令如下

tar -xf jdk-8u212-linux-x64.tar.gz -C /app 

解压好之后,将bin目录进行环境变量配置。编辑配置文件,增加下面的配置。

 vi /etc/profile 

在这里插入图片描述

添加后,在命令行输入java -version,出现如下信息,即为成功。

在这里插入图片描述

3.关闭防火墙

关闭防火墙是为了可以让本地的机器也可以通过Web网页进行访问我们的集群资源。这一步没有做的话,运行集群的时候可能会出现集群不可访问的状况。直接使用如下命令进行关闭。

systemctl stop firewalld.service 

在这里插入图片描述

4.配置IP地址映射

5.添加Hadoop用户,并给与权限

在集群的搭建过程中,其实使用Root用户也是可以的,而且更加的方便。但是一般不会这样做,而是建立单独的Hadoop用户进行操作,这样也增加了集群的安全性。操作如下:

编辑配置文件,添加如下这一行,给与权限方便后面的操作 vi /etc/sudores 

在这里插入图片描述

6.集群免密登录

免密登录是比较重要的一步,在这一步我们主要对集群的三台机器进行免密的配置。大家都知道,使用ssh命令登录到其他主机的时候,我们需要输入密码,验证通过后才可以登录。如果不进行配置的话再集群在集群启动的时候会频繁的提示密码输出,免密操作如下:

免密登录 这里要在hadoop用户下操作,运行命令 ssh-keygen -t rsa,在主节点node1上运行命令,会产生一个密钥,接下来要把这个密钥分发给其他的机器,这样就实现集群间的免密访问。
在这里插入图片描述

密钥的Copy,可以看到,运行之后再登录node2就不需要输入密码了

ssh-copy-id -i ~/.ssh/id_rsa.pub node1 ssh-copy-id -i ~/.ssh/id_rsa.pub node2 ssh-copy-id -i ~/.ssh/id_rsa.pub node3 

在这里插入图片描述

7.Hadoop安装包解压与配置文件修改

我们使用的Hadoop版本为2.7,虽然现在出了3.0的版本,但博主推荐的话为了稳定还是使用2.7的版本。上传好之后进行解压,解压命令参考上面的JDK安装解压,之后把Hadoop的bin目录同样加入环境变量让系统可以识别。下面进行配置文件修改,这一步也比较重要,根据自己系统的情况,我会把对应配置文件的配置Copy供大家参考,需要修改的配置文件如下,位于hadoop安装包下面的etc下面的hadoop目录

hadoop-env.sh

export JAVA_HOME=/app/jdk1.8 

core-site.xml

<configuration> <property> <name>fs.default.name</name> <value>hdfs://node1:8020</value> </property> </configuration> 

hdfs-site.xml

<configuration> <property> <name>dfs.namenode.name.dir</name> <value>/app/tmp/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/app/tmp/dfs/data</value> </property> </configuration> 

mapred-site.xml

<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> //注意这个文件可以会没有,需要拷贝文件修改。 cp mapred-site.xml.template mapred-site.xml 

yarn-site.xml

<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.resourcemanager.hostname</name> <value>node1</value> </property> </configuration> 

slaves

node1 node2 node3 

到这里全部配置文件修改完成

8.集群文件分发

在node1配置好的基础环境,三台机器需要环境同步,之后将配置好的hadoop安装包进行分发给集群的其他机器。只用scp命令快捷完成。在node1上操作,之后可以在其他集群看到安装包被同步到对应的目录下

scp -r hadoop-2.7 node2:/app scp -r hadoop-2.7 node3:/app 

9.格式化NameNode

集群启动前需要格式化集群的环境,在node1上运行如下命令

 hadoop namenode -format 

10.集群启动

到这一步,准备工作就全部完成了,我们直接启动集群,启动的命令在hadoop安装包下的sbin命令中。运行如下命令代表启动集群

./start-all.sh 

在这里插入图片描述

查看集群是否启动成功,输出jps查看启动的进程,可以看到三台机器都成功启动对应的进程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

可以看到根据50070跟8088端口的服务可以成功访问

11.总结

到这里集群就搭建完成了,搭建的过程会比较繁杂,而且容易出错,所以小伙伴们在搭建的时候需要多注意细节,其中所需要的安装包可以直接在下方公众号中联系我,备注需要的安装包即可。大家可以加入小禅的?️大数据技术社区一起交流学习,感谢支持!?

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/234033.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pdaf添加实例(2p7,type2)[通俗易懂]

    pdaf添加实例(2p7,type2)[通俗易懂]/***s5k2p7_pdaf.h**Copyright(c)2015QualcommTechnologies,Inc.*AllRightsReserved.*ConfidentialandProprietary-QualcommTechnologies,Inc.*/.vendor_id=QTI,.stats_dt=0x30

    2022年9月7日
    0
  • 人际关系处理技巧

    人际关系处理技巧

    2022年1月23日
    42
  • mnist手写数字识别代码(knn手写数字识别)

    MNIST手写数字识别模型建立与优化本篇的主要内容有:TensorFlow处理MNIST数据集的基本操作建立一个基础的识别模型介绍SoftmaxSoftmaxSoftmax回归以及交叉熵等MNIST是一个很有名的手写数字识别数据集(基本可以算是“HelloWorld”级别的了吧),我们要了解的情况是,对于每张图片,存储的方式是一个28*28的矩阵,但是我们在导入数据进…

    2022年4月18日
    52
  • JedisCluster详解

    JedisCluster详解redisredisclusterjedisjediscluster

    2022年10月14日
    0
  • 代理模式proxy_反向代理是什么

    代理模式proxy_反向代理是什么代理模式 Proxy动机模式定义实例结构要点总结笔记动机在面向对象系统中,由于某种原因(比如对象创建的开销很大,或者某些操作需要安全控制,或者需要进程额外的访问等),直接访问会给使用者,或者系统结构带来很多麻烦.如何在不是去透明操作对象的同时来管理/控制这些对象特有的复杂性?增加一层间接曾是软件开发中常见的解决方式模式定义为其他对象提供一种代理以控制(隔离,使用接口)对这个对象的访问实例朴素客户端要去使用process 但是process周围需要做很多事情class ISubject{p

    2022年8月9日
    5
  • iocp是什么_acception

    iocp是什么_acception接受连接请求服务器要做的最普通的事情之一就是接受来自客户端的连接请求。在套接字上使用重叠I/O接受连接的惟一API就是AcceptEx()函数。有趣的是,通常的同步接受函数accept()的返回值是一个新的套接字,而AcceptEx()函数则需要另外一个套接字作为它的参数之一。这是因为AcceptEx()是一个重叠操作,所以你需要事先创建一个套接字(但不要绑定或连接它…

    2022年9月29日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号