Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >hadoop之完全分布式集群配置(centos7)

hadoop之完全分布式集群配置(centos7)

作者头像
西西嘛呦
发布于 2020-08-26 02:17:15
发布于 2020-08-26 02:17:15
48300
代码可运行
举报
运行总次数:0
代码可运行

一、基础环境

现在我们有两台虚拟机了,再克隆两台:

克隆好之后需要做三件事:1、更改主机名称 2、修改ip地址 3、将ip地址和对应的主机号加入到/etc/hosts文件中

1、永久修改主机名

hostnamectl set-hostname hadoop03 等等

2、修改ip地址

vim /etc/sysconfig/network-scripts/ifcfg-ens33

删除掉UUID,然后注意红色框中的

3、将ip地址和主机名加入到/etc/hosts中

vim /etc/hosts

(图中最后应该是hadoop04)

同理对于hadoop04也这么做。hadoop02是我之前学习伪分布式时已经克隆配置好了的。也要在hadoop01和hadoop02中将这四个也添加上去。hadoop01是克隆源,里面的UUID不可删去。

二、集群配置

1、集群部署规划

hadoop02

hadoop03

hadoop04

HDFS

NameNode DataNode

DataNode

SecondaryNameNode DataNode

YARN

NodeManager

ResourceManager NodeManager

NodeManager

说明:NameNode和SecondaryNameNode要求不在一个节点上。ResourceManager不能和NameNode、SecondaryNameNode在同一个节点上。

2、修改hadoop02中的配置

在hadoop-2.9.2目录下:vim etc/hadoop/core-site.xml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    <!--指定HDFS中NameNode的地址-->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop02:9000</value>
    </property>
    <!--指定hadoop运行时产生文件的存储目录-->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/module/hadoop-2.9.2/data/tmp</value>
    </property>

在vim etc/hadoop/hadoop-env.sh中配置JAVA_HOME路径

在vim etc/hadoop/hdfs-site.xml中

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<configuration>
<!--备份的个数-->
<property>
        <name>dfs.replication</name>
        <value>3</value>
</property>
<!--辅助节点的位置-->
<property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop04:50090</value>
</property>
</configuration>

在vim etc/hadoop/yarn-env.sh中配置JAVA_HOME路径

在vim etc/hadoop/yarn-site.xml中配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<configuration>
<!--Reducer获取数据的方式-->
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
<!--指定yarn的ResourceManager的地址-->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>hadoop03</value>
</property>
</configuration>

在vim etc/hadoop/mapred-env.sh中配置JAVA_HOME路径

vim etc/hadoop/mapred-site.xml中配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!--指定MR运行在yarn上-->
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>

3、配置好hadoop02,利用之前博客中的集群分发脚本将配置文件传给hadoop03、hadoop04

xsync.sh /opt/module/hadoop-2.9.2/etc/hadoop/

然后去hadoop03和hadoop04中查看是否成功:

4、在hadoop02、hadoop03、hadoop04中删除掉之前运行的data和logs文件夹,在/opt/modul/hadoop-2.9.2/下

rm -rf data logs

5、集群节点启动

可使用jps指令查看节点是否启动。

(1)在hadoop02中:

首先格式化namenode:bin/hdfs namenode -format

sbin/hadoop-daemon.sh start namenode

sbin/hadoop-daemon.sh start datanode

(2) 在hadoop03中:

sbin/hadoop-daemon.sh start datanode

(3)在hadoop04中:

sbin/hadoop-daemon.sh start datanode

(4)关闭hadoop02中的防火墙

三、查看

在windows中输入http://192.168.124.23:50070/,若出现以下界面:

四、ssh无密码登录

问题:我们都是一个个去别的虚拟机启动节点,当节点很多时,我们要一个个去输入?

事实上,在当前虚拟机中终端中输入:ssh 主机名就可以登录到其他虚拟机

比如,当前的是hadoop02,那么输入ssh hadoop03,就可以登录到hadoop03,只不过每次切换的时候都需要输入密码。为了避免麻烦,可以部署免密登录,只需要输入一次密码,之后再次登录就不需要密码了。那么如何进行操作呢?

免密登录原理:

先来到hadoop02: 输入ls -al查看隐藏的文件,有一个.ssh。cd .ssh

里面有你访问过的主机名称。

生成相应的密钥:ssh-keygen -t rsa

然后输入三次回车。

id_rsa就是私钥,id_rsa.pub就是公钥

将id_rsa.pub中的内容拷贝到hadoop03和hadoop04中:

在hadoop02的.ssh目录下输入:

ssh-copy-id hadoop03

ssh-copy-id hadoop04

然后我们再输入ssh hadoop03

发现就不需要再输入密码了,并且在.ssh目录下会生成一个authorized_keys:里面存放的就是hadoop02的公钥

同时也需要在hadoop02中的.ssh目录下:

ssh-copy-id hadoop02,

也要将root用户配置ssh免密登录:su切换到root,然后执行以上操作

同样对hadoop03和hadoop04重复上述的操作 。

五、群起集群

1、配置slaves

在hadoop02中

vim /opt/module/hadoop-2.9.2/etc/hadoop/slaves

在该文件中加入以下内容(将原本的localhost删除掉):主要是datanode,hadoop02、hadoop03、hadoop04上面都有

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
hadoop02
hadoop03
hadoop04

注意末尾不能有空格、回车。

然后使用集群分发脚本将其分发给hadoop03、hadoop04

在/opt/module/hadoop-2.9.2/etc/hadoop目录下输入:xsync.sh slaves

接下来将之前启动的那些节点都给停止掉:

sbin/hadoop-daemon.sh stop namenode

sbin/hadoop-daemon.sh stop datanode

然后在hadoop02中的/opt/module/hadoop-2.9.2目录下输入:sbin/start-dfs.sh

诸葛检查一下吧,首先是hadoop02:

hadoop03:

hadoop04:

说明是成功的,不容易啊。

六、启动yarn

这里注意,我们要在hadoop03中启动。即如果NameNode和ResourceManager不在同一台机器上,要在ResourceManager机器上启动yarn

输入:sbin/start-yarn.sh

可能会报权限不够问题。

那就改权限吧:需要注意看清前面是哪个服务器有权限问题

sudo chmod 777 /tmp/yarn-xiximayou-resourcemanager.pid

sudo chmod 777 /tmp/yarn-xiximayou-nodemanager.pid

之后再执行:

查看一下:

hadoop03:

hadoop02:

hadoop04:

跟预期的对照一下:

七、进行测试

记得将hadoop03和hadoop04的防火墙也给关闭掉

1、上传一个文件到集群

在hadoop02中的hadoop-2.9.2目录下:

先上传一个小文件:

bin/hdfs dfs -put wcinput/wc.input /

再上传一个大文件:

bin/hdfs dfs -put /opt/software/Market.zip /

然后我们去查看

点开Market.zip

大文件(超过128M)分成了两块 ,同时在hadoop02、03、04上都有一份备份。

八、集群停止

sbin/stop-yarn.sh

sbin/stop-dfs.sh

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-03-08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
CSS3着重符及其fallback
在中文里面,我们一般会在文字下方加上圆形符号。在日语中会在文字上方加上小顿号。在CSS3中如下属性可以控制着重符号:
mmzhou
2018/08/06
1.8K0
CSS3着重符及其fallback
18个很有用的 CSS 技巧
shape-outside 是一个允许设置形状的 CSS 属性。它还有助于定义文本流动的区域:
@超人
2023/05/12
5970
18个很有用的 CSS 技巧
2020年你不应该错过的CSS新特性
@argyleink在第四次的伦敦(LondonCSS 2020)CSS活动中分享了一个有关于CSS特性相关的话题。看了一下这个主题的PPT,里面有些新东西还是蛮有意思的。基于该PPT,我稍微整理近24个CSS方面的新特性,感兴趣的同学可以继续往下阅读。
童欧巴
2020/11/02
1.2K0
2020年你不应该错过的CSS新特性
我可能学到了“假”的CSS:伪类伪元素
==在*-child系列伪类中,索引是相对于所有同级兄弟元素计算的,而非特定类型==
江米小枣
2020/06/15
1.5K0
妙用 background 实现花式文字效果
Hello 大家好,我是 Coco。本文将讲解如何利用 background 系列属性,巧妙的实现一些花式的文字效果。通过本文,你将可以学到:
ConardLi
2021/09/29
6190
妙用 background 实现花式文字效果
适合收藏,一些CSS优化技巧!
当各种框架以及复杂的 JS 知识开始充斥着我们的工作环境时。谁还能够记得,以 CSS 来构建更加良好的用户体验,也是前端的一个重要组成部分。 所以说,今天咱们就来看看 css 的优化方案-终极合集。一共一百条,有点多,适合收藏
老K博客
2024/03/10
4000
前端之BOM和DOM
BOM(Browser Object Model)浏览器对象模型,它使得JS能够与浏览器进行‘对话’(交互,通过JS对页面内容进行操作)。
GH
2019/12/16
2.8K0
前端之BOM和DOM
你这磨人的小妖精——选中文本并标注的实现过程
但是现在问题来了,我们这是一个现成的react页面,是一个详情页,页面的内容是多个接口返回填进去的:
lhyt
2020/07/21
2K0
useTextSelection vue 文本选择hook
文本选择 vx-hookhttps://www.npmjs.com/package/vx-hook vue 3.0 hook 库 getSelection 文本选择 Uesage <template> <div id="app"> {{ state }} <div ref='ele'> 测试文本 </div> </div> </template> <script> import { useTextSelection } from 'vx-hook'
copy_left
2020/05/09
7910
JavaScript基础②
console.log(item)//点哪里,item的值就是你点击对应的currentvalue console.log(index)//点哪里,index的值就是你点击对应的索引
ymktchic
2022/01/18
1.1K0
JavaScript基础②
emmet(Zen coding)前端写代码神器
emmet前身zen coding。支持sublime Text。 基本上,大多数文本编辑器有允许你存储和再利用常用的代码块,称为“片段”。而片段是提高生产率的一个好方法,所有的实现都是常见的陷阱:你需要定义段第一,你不能在运行时扩展。 埃米特以片段的想法到一个新的水平:你可以像CSS表达式类型可以动态解析,并产生输出取决于你输入的缩写。埃米特是开发和优化Web开发者的工作依赖于HTML / XML和CSS,但可以用编程语言太。 官网:http://docs.emmet.io/ api:http://doc
deepcc
2018/05/16
2.1K0
博客园美化大全
1.1、自动生成目录 首先得有js权限 (1)页脚js代码 <script type="text/javascript"> /* 功能:生成博客目录的JS工具 测试:IE8,火狐,google测试通过 zhang_derek 2018-01-03 */ var BlogDirectory = { /* 获取元素位置,距浏览器左边界的距离(left)和距浏览器上边界的距离(top) */ getElementPosition:functi
zhang_derek
2018/05/30
1.9K0
学习js在线html(富文本)编辑器
你要的是所见即所得HTML编辑器,简单来说需要几个基本步骤: 1,需要一个可以编辑同时又可显效果的编辑框。textarea不行,它只能用来输入纯文本,不能显示颜色、斜体之类的文字样式,就像记事本。 你可以使用iframe来实现,修改iframe的designMode属性使其可以被编辑。 <iframe id="myEditer" width="100%" height="150px"></iframe> <script>myEditer.document.designMode = 'on';</scri
deepcc
2018/05/16
20.1K0
前端开发面试题总结之——CSS3
---- 相关知识点 布局、 浮动、 盒子模型、 弹性和模型、 选择器优先级、 居中定位、 兼容性、 hack写法...... 题目&答案 如何理解CSS的盒子模型? 每个HTML元素都是长方形盒子。 (1)盒子模型有两种:IE盒子模型、标准W3C盒子模型;IE的content部分包含了border和pading。 (2)标准W3C盒模型包含:内容(content)、填充(padding)、边界(margin)、边框(border)。 link和@import的区别? (1)link属于XHTML标签,
用户1667431
2018/04/18
1.1K0
前端开发面试题总结之——CSS3
前端代码相关规范
项目目录和文件的命名使用小写字母,避免使用大写或驼峰,多个单词以下划线 _ 分隔  如:my_project/cast_detail.js
书童小二
2018/09/03
2K0
前端代码相关规范
JS快速入门(二)
和 innerHTML 类似,写入内容如果包含 html 标签字符串,会被解析成对应的 html 标签,document.write()根据运行时机,会写入文档不同的位置
HammerZe
2022/03/24
6.6K0
JS快速入门(二)
文本溢出截断省略
文本溢出截断省略是比较常见的业务场景,主要分为单行文本溢出截断省略与多行文本溢出截断省略,单行的截断方案比较简单,多行截断相对比较复杂。
WindRunnerMax
2020/08/27
1.7K0
Js DOM
要创建新的 HTML 元素 (节点)需要先创建一个元素,然后在已存在的元素中添加它。
hss
2022/02/25
3.8K0
Day15:大前端
position: relative, absolute, fixed, static
达达前端
2019/07/15
3.9K0
Day15:大前端
事件基础及操作元素
JavaScript 使我们有能力创建动态页面,而事件是可以被 JavaScript 侦测到的行为。
星辰_大海
2020/09/30
1.5K0
相关推荐
CSS3着重符及其fallback
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验