hadoop完全分布式搭建(最通俗易懂)_hadoop完全分布式搭建步骤-程序员宅基地

技术标签: hdfs  hadoop  分布式  

1、首先创建好虚拟机并且上传jdk,hadoop到虚拟机上

这边我上传的位置为/opt/module 下,并将其解压到/opt/software下并且重命名为hadoop和jdk

2、设置好ip地址、主机名

设置ip地址首先点击vm上的编辑按钮下虚拟网络编辑器查看VMnet8的ip地址是多少,例如我这ip地址为192.168.119.0,那么我的hadoop的ip地址前3位就需要设置为192.168.119,然后进入我们的虚拟机里面进行ip地址的设置,输入命令vi /etc/sysconfig/network-scripts/ifcfg-ens33 进行ip地址的设置

第一步设置为静态获取,更改BOOTPROTO=static

第二步添加IP地址,在最下方添加IPADDR=192.168.119.50 注:IP地址最后一位取决你的网段分配情况,不是随便填写,随便填写很有可能导致不能联网。

第三步添加网关地址,添加GATEWAY=192.168.119.2

第四步添加子网掩码,添加NETMASK=255.255.255.0

第五步添加DNS地址,添加DNS1=114.114.114.114

设置完毕后按键盘上的esc键然后按下shift+;输入wq进行保存退出

退出后,输入命令进行网卡重置  systemctl restart network

再输入ifconfig查看IP地址是否设置成功

IP地址设置完成后设置自己的主机号,这里我将主机号设置为了hadoop101,主机号不做要求可按自己的想法去进行设置。

输入命令 hostnamectl set-hostname hadoop101进行主机号的设置

3、进行虚拟机的克隆

首先对当前虚拟机进行关机操作,然后右击虚拟机下的管理下的克隆,克隆分为两种,一种是创建链接克隆,一种是创建完整克隆,这里我们选择创建完整克隆,一共需要创建两个克隆,创建完成后在创建好的两台克隆虚拟机上进行第二步的操作,修改IP地址以及主机名,因为我们是进行克隆的所以我们修改IP地址只需要修改IPADDR那一项就行了,我这边修改后是第一台虚拟机IP地址为:192.168.119.50 主机号为hadoop101 第二台虚拟机IP地址为:192.168.119.51 主机号为hadoop102 第三台虚拟机IP地址为:192.168.119.52 主机号为hadoop103 ,设置好后使用工具xshell将3台虚拟机进行连接上

4、设置主机的映射

因为我们是搭建完全分布式,所以在设置映射的时候需要设置3台虚拟机的映射关系

输入命 vi /etc/hosts进行主机 ip的映射设置

 5、配置免密

在任意一台虚拟机上输入命令 ssh-keygen -t rsa 然后连续按下三次回车然后输入命令

ssh-copy-id hadoop101(之前设置的主机名)按下回车后输入hadoop101所对应的虚拟机密码

ssh-copy-id hadoop102(之前设置的主机名)按下回车后输入hadoop102所对应的虚拟机密码

ssh-copy-id hadoop103(之前设置的主机名)按下回车后输入hadoop103所对应的虚拟机密码

设置完后进行rsync命令操作进行另外两台虚拟机的文件更新

输入rsync -rvl /etc/hosts root@hadoop102:/etc/host

输入rsync -rvl /etc/hosts root@hadoop103:/etc/host

 更新完映射关系后在另外两台进行重复免密操作,也就是上面所写的ssh-keygen -t rsassh-copy-id xx 的操作

6、设置jdk和hadoop的配置文件

输入命令 vi /etc/profile

光标移动到命令行的最后一行输入配置文件如下图所示

输入好后保存退出,然后输入source /etc/profile进行配置文件的更新

进行使用rsync命令进行另外两台虚拟机的更新

rsync -rvl /etc/profile root@hadoop102:/etc/profile

rsync -rvl /etc/profile root@hadoop103:/etc/profile

然后进入另外两台虚拟机中输入source /etc/profile

7、设置hadoop配置文件

首先进入hadoop配置文件的目录下,也就是刚才解压后的hadoop文件下的etc下的hadoop,如果不是按照我的目录来写的就使用自己的方法进入hadoop配置文件目录下,如果目录和我的是一样的就输入 cd /opt/software/hadoop/etc/hadoop

vi core-site.xml

<!-- 指定HDFS中NameNode的地址 -->
<property>
		<name>fs.defaultFS</name>
      <value>hdfs://hadoop101:9000</value>
</property>

<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
		<name>hadoop.tmp.dir</name>
		<value>/opt/software/hadoop/data/tmp</value>
</property>

vi hadoop-env.sh

export JAVA_HOME=/opt/software/jdk  

vi hdfs-site.xml

<property>
		<name>dfs.replication</name>
		<value>3</value>
</property>

<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
      <name>dfs.namenode.secondary.http-address</name>
      <value>hadoop103:50090</value>
</property>

vi yarn-env.sh

export JAVA_HOME=/opt/software/jdk 

vi yarn-site.xml

<!-- Reducer获取数据的方式 -->
<property>
		<name>yarn.nodemanager.aux-services</name>
		<value>mapreduce_shuffle</value>
</property>

<!-- 指定YARN的ResourceManager的地址 -->
<property>
		<name>yarn.resourcemanager.hostname</name>
		<value>hadoop102</value>
</property>

vi mapred-env.sh

export JAVA_HOME=/opt/software/jdk  

cp mapred-site.xml.template mapred-site.xml

vi mapred-site.xml

<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
</property>

vi slaves    注意:slaves内的东西需要全部删完再输入配置文件

hadoop101

hadoop102

hadoop103

然后使用rsync 进行另外两台的hadoop配置文件更新

rsync -rvl /opt/software/hadoop/etc/hadoop/ root@hadoop102:/opt/software/hadoop/etc/hadoop/

rsync -rvl /opt/software/hadoop/etc/hadoop/ root@hadoop103:/opt/software/hadoop/etc/hadoop/

8、格式化namenode

输入命令:hdfs namnode -format

如果需要重新格式化

在重新格式化之前一定要先删除data数据和log日志。然后再进行格式化。

1、停止使用hadoop进程(stop-all.sh)

2、删除配置文件core-site.xml和hdfs-site.xml中指定目录下的文件

9、启动hdfs、启动yarn

首先进入hadoop主目录

输入 cd /opt/software/hadoop

启动hdfs,输入 sbin/start-dfs.sh

然后用3台虚拟机进行jps测试,和下图出现的进程一样就成功了

 然后启动yarn,yarn的启动需要在ResouceManager所在的机器上进行,在 yarn-site.xml中设置过,我这边设置的是hadoop102,所以我需要进入到hadoop102所在的虚拟机上操作yarn的启动命令。

输入 cd /opt/software/hadoop

启动yarn,输入 sbin/start-yarn.sh

然后用3台虚拟机进行jps测试,和下图出现的进程一样就成功了

 10、关闭防火墙进行网站访问

在三台虚拟机上都输入命令:systemctl stop firewalld.service即可关闭防火墙

然后进入浏览器输入网站http://192.168.119.50:50070/http://192.168.119.51:8088/,即可测试是否搭建成功。

 最后一句话:这完全分布式有手就行

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/T_Terryy/article/details/122312431

智能推荐

c# 调用c++ lib静态库_c#调用lib-程序员宅基地

文章浏览阅读2w次,点赞7次,收藏51次。四个步骤1.创建C++ Win32项目动态库dll 2.在Win32项目动态库中添加 外部依赖项 lib头文件和lib库3.导出C接口4.c#调用c++动态库开始你的表演...①创建一个空白的解决方案,在解决方案中添加 Visual C++ , Win32 项目空白解决方案的创建:添加Visual C++ , Win32 项目这......_c#调用lib

deepin/ubuntu安装苹方字体-程序员宅基地

文章浏览阅读4.6k次。苹方字体是苹果系统上的黑体,挺好看的。注重颜值的网站都会使用,例如知乎:font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, W..._ubuntu pingfang

html表单常见操作汇总_html表单的处理程序有那些-程序员宅基地

文章浏览阅读159次。表单表单概述表单标签表单域按钮控件demo表单标签表单标签基本语法结构<form action="处理数据程序的url地址“ method=”get|post“ name="表单名称”></form><!--action,当提交表单时,向何处发送表单中的数据,地址可以是相对地址也可以是绝对地址--><!--method将表单中的数据传送给服务器处理,get方式直接显示在url地址中,数据可以被缓存,且长度有限制;而post方式数据隐藏传输,_html表单的处理程序有那些

PHP设置谷歌验证器(Google Authenticator)实现操作二步验证_php otp 验证器-程序员宅基地

文章浏览阅读1.2k次。使用说明:开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。下载谷歌验证类库文件放到项目合适位置(我这边放在项目Vender下面)https://github.com/PHPGangsta/GoogleAuthenticatorPHP代码示例://引入谷_php otp 验证器

【Python】matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距-程序员宅基地

文章浏览阅读4.3k次,点赞5次,收藏11次。matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距

docker — 容器存储_docker 保存容器-程序员宅基地

文章浏览阅读2.2k次。①Storage driver 处理各镜像层及容器层的处理细节,实现了多层数据的堆叠,为用户 提供了多层数据合并后的统一视图②所有 Storage driver 都使用可堆叠图像层和写时复制(CoW)策略③docker info 命令可查看当系统上的 storage driver主要用于测试目的,不建议用于生成环境。_docker 保存容器

随便推点

网络拓扑结构_网络拓扑csdn-程序员宅基地

文章浏览阅读834次,点赞27次,收藏13次。网络拓扑结构是指计算机网络中各组件(如计算机、服务器、打印机、路由器、交换机等设备)及其连接线路在物理布局或逻辑构型上的排列形式。这种布局不仅描述了设备间的实际物理连接方式,也决定了数据在网络中流动的路径和方式。不同的网络拓扑结构影响着网络的性能、可靠性、可扩展性及管理维护的难易程度。_网络拓扑csdn

JS重写Date函数,兼容IOS系统_date.prototype 将所有 ios-程序员宅基地

文章浏览阅读1.8k次,点赞5次,收藏8次。IOS系统Date的坑要创建一个指定时间的new Date对象时,通常的做法是:new Date("2020-09-21 11:11:00")这行代码在 PC 端和安卓端都是正常的,而在 iOS 端则会提示 Invalid Date 无效日期。在IOS年月日中间的横岗许换成斜杠,也就是new Date("2020/09/21 11:11:00")通常为了兼容IOS的这个坑,需要做一些额外的特殊处理,笔者在开发的时候经常会忘了兼容IOS系统。所以就想试着重写Date函数,一劳永逸,避免每次ne_date.prototype 将所有 ios

如何将EXCEL表导入plsql数据库中-程序员宅基地

文章浏览阅读5.3k次。方法一:用PLSQL Developer工具。 1 在PLSQL Developer的sql window里输入select * from test for update; 2 按F8执行 3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后commit提交即可。(前提..._excel导入pl/sql

Git常用命令速查手册-程序员宅基地

文章浏览阅读83次。Git常用命令速查手册1、初始化仓库git init2、将文件添加到仓库git add 文件名 # 将工作区的某个文件添加到暂存区 git add -u # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件git add -A # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件...

分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120-程序员宅基地

文章浏览阅读202次。分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120

【C++缺省函数】 空类默认产生的6个类成员函数_空类默认产生哪些类成员函数-程序员宅基地

文章浏览阅读1.8k次。版权声明:转载请注明出处 http://blog.csdn.net/irean_lau。目录(?)[+]1、缺省构造函数。2、缺省拷贝构造函数。3、 缺省析构函数。4、缺省赋值运算符。5、缺省取址运算符。6、 缺省取址运算符 const。[cpp] view plain copy_空类默认产生哪些类成员函数

推荐文章

热门文章

相关标签