Linux下的全分布式的HADOOP搭建(基于免密登录的)_大大柚子的博客-程序员宅基地_linux搭建hadoop步骤

技术标签: hadoop  大数据  

Hadoop 完全分布模式搭建

需要的工具,已安装好的三台ssh免密登录虚拟机
IP master:192.168.42.121 slave1:192.168.42.122 slave2:192.168.42.123
Xshell,Xftp软件
Hadoop 完全分布式模式的搭建相关配置文件都在下面的目录下
/usr/local/src/hadoop/hadoop2.7/etc/hadoop
JDK的安装路径和HADOOP总文件在下面的路径
/usr/local/src

IP 192.168.42.121 192.168.42.122 192.168.42.123
映射名 master slave1 slave2

JDK解压安装

1.通过Xftp上传JDK软件包到 /usr/local/src(jdk-8u171-linux-x64.tar.gz)
在这里插入图片描述

2.在Xshell会话框中,输入命令解压
tar -zxvf jdk-8u171-linux-x64.tar.gz
在这里插入图片描述

3.修改jdk-8u171-linux-x64.tar.gz文件名为jdk1.8,输入
mv jdk1.8.0_171 jdk1.8
在这里插入图片描述

4.使用命令vi /etc/profile打开配置文件,将jdk1.8的环境变量配置到配置文件中,在配置文件中最后处输入命令:

export JAVA_HOME=/usr/local/src/jdk1.8
export PATH=$PATH:$JAVA_HOME/bin

在这里插入图片描述

5.环境配置完成后,让配置文件生效,还需输入命令 ,输入命令 java -version查看
. /etc/profile
在这里插入图片描述

HADOOP解压安装

6.通过Xftp上传hadoop软件包到 /usr/local/src(jdk-8u171-linux-x64.tar.gz)
在这里插入图片描述

7.解压缩命令

tar -zxvf hadoop-2.7.1.tar.gz

8.修改hadoop-2.7.1.tar.gz文件名为hadoop2.7

mv hadoop-2.7.1 hadoop2.7

在这里插入图片描述

9.执行下面的命令配置 hadoop 环境变量。配置系统变量之后可在全局任意地方使用hadoop 命令。

vi /etc/profile

在这里插入图片描述

10.在文件的末尾添加下列内容。
#HADOOP

export HADOOP_HOME=/usr/local/src/hadoop/hadoop2.7
export PATH=$PATH:$HADOOP_HOME/bin 
export PATH=$PATH:$HADOOP_HOME/sbin

11.保存退出文件编辑之后执行下面的命令使得配置文件生效。

source /etc/profile 

12.执行下面的命令验证 hadoop 配置是否正确并生效。

hadoop version 

在这里插入图片描述

分发 hadoop 到节点

13.在 master 节点上执行下面的命令将 hadoop 文件夹中的所有内容拷贝到 slave1 和 slave2 节点上。

scp -r /usr/local/src/hadoop/hadoop2.7/etc/hadoop root@slave1:/usr/local/src/hadoop/hadoop2.7/etc

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

scp -r /usr/local/src/hadoop/hadoop2.7/etc/hadoop root@slave2:/usr/local/src/hadoop/hadoop2.7/etc

14.在 master 节点上执行下面的命令将/etc/ profile 配置文件拷贝到 slave1 和 slave2 节点上。

scp -r /etc/profile root@slave1:/etc/profile

在这里插入图片描述

scp -r /etc/profile root@slave2:/etc/profile

在这里插入图片描述

15.分别在 slave1 和 slave2 节点上执行下面的命令使得配置文件生效。

source /etc/profile 

执行下面的命令验证 hadoop 配置是否正确并生效。

hadoop version

Slave1

在这里插入图片描述

Slave2
在这里插入图片描述

如果出现权限不够,拒绝访问(-bash: /usr/local/src/jdk1.8/bin/java: Permission denied)

输入 chmod +x /usr/local/src/jdk1.8/bin/java 提升权限,路径让个人配置路径输入

Hadoop 完全分布式模式的搭建

16.集群部署规划

相关配置文件都在/usr/local/src/hadoop/hadoop2.7/etc/hadoop目录下 配置 hadoop-env.sh 执行下面的命令切换到 Hadoop 配置文件所在的目录。

/usr/local/src/hadoop/hadoop2.7/etc/hadoop

在这里插入图片描述

17.执行下面的命令修改 hadoop-env.sh 配置文件。

vi hadoop-env.sh 

找到 # The java implementation to use. 将其下面的一行改为:

export JAVA_HOME=/usr/local/src/jdk1.8

在这里插入图片描述

配置 hdfs-site.xml

18.执行下面的命令进行配置。

vi hdfs-site.xml 

在元素中添加下面的内容

<!-- 指定HDFS中NameNode的地址-->
<property>
        <!-- 指定 HDFS 中 NameNode 的地址 -->
         <property>
                 <name>fs.defaultFS</name>
                 <value>hdfs://master:9000</value>
         </property>
         <!-- 指定 hadoop 运行时产生文件的存储目录 -->
         <property>
                 <name>hadoop.tmp.dir</name>
                 <value>/usr/local/src/hadoop/hadoop2.7/data/full/tmp</value>
         </property>

修改 slaves

19.执行下面的命令修改 slaves 文件。
vi slaves
修改 slaves 文件的内容如下所示。

master 
slave1 
slave2 

在这里插入图片描述

分发 hadoop 到其他节点

20.执行下面的命令将修改后的配置文件分发到其他节点。

scp -r /usr/local/src/hadoop/hadoop2.7/etc/hadoop root@slave1:/usr/local/src/hadoop/hadoop2.7/etc
scp -r /usr/local/src/hadoop/hadoop2.7/etc/hadoop root@slave2:/usr/local/src/hadoop/hadoop2.7/etc

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

关闭防火墙
在这里插入图片描述

启动与停止

21.第一次启动集群需要进行对 NameNode 进行格式化,执行以下命令进行格式化:

hdfs namenode -format 

在这里插入图片描述

22.如上图红框所示表示正常格式化完成,然后启动 HDFS:

start-dfs.sh 

在这里插入图片描述

可能出现的错误(列举我出现的问题,共三个),以下为在网络中寻找的解决方法,路径可能不一样,但理解后更改为自己的路径就好了。
1.
报如错误:JAVA_HOME is not set and could not be found,可能是因为JAVA_HOME环境没配置正确,还有一种情况是即使各结点都正确地配置了JAVA_HOME,但在集群环境下还是报该错误,解决方法是显示地重新声明一遍JAVA_HOME
1、检查JAVA_HOME是否配置正确(伪分布式环境)
启动start-all.sh时报错,如下所示
在这里插入图片描述

    解决方法:
            输入java –version,查看jdk是否安装成功
           
            输入export,查看jdk环境变量是否设置成功
           
    2、在集群环境下,即使各结点都正确地配置了JAVA_HOME,也会报如下错误
     
             解决方法:
                     在hadoop-env.sh中,再显示地重新声明一遍JAVA_HOME

在搭建Hadoop集群的时候,遇到了这样的一个报错。
在这里插入图片描述

就在启动HDFS调用命令:

start-dfs.sh

的时候,报错:

然后输密码就一直很奇怪,反正一直运行不成功。

百度了半天,确定是core-site.xml的问题。
这段代码决定了什么namenode 的rpcaddress:

<property>
    <name>fs.defaultFS</name>
    <value> hdfs://hdp-node-01:9000 </value>
</property>

可是我左看右看都看不出哪里错,这个hostname也在hosts里面配置了啊:
hosts:
192.168.112.128 hdp-node-01

最后,可能是这个hadoop解析配置文件的问题,这个配置好像是不允许有空格???(excuse me?)
就我一开始为了查看方便,在 值 值中加了空格,然后后面去掉空格,问题解决…………………………

3
正常启动完成后使用 jps 查看进程,可以在 master 节点看到启动了 NameNode 和
DataNode 两个进程。
在这里插入图片描述

https://blog.csdn.net/qq_39954916/article/details/105747433?utm_medium=distribute.pc_relevant.none-task-blog-title-3&spm=1001.2101.3001.4242

hadoop集群中namenode启动不起来如何解决 新手在初次搭建 hadoop集群中经常遇到namenode或者databode启动不起来,大概率是因为多次格式化NameNode造成的。

在这里插入图片描述

因为每格式化一次NameNode,就会产生新的集群id,导致NameNode和DataNode的集群id不一致,最终启动不起来namenode。有二个解决方法:
第一种.删除原目录,先删除data文件和logs日志文件夹,然后再格式化NameNode。data文件的路径在core-site.xml下配置的hadoop.tmp.dir所指向的目录。

在这里插入图片描述

第二种:将namenode节点和datanode节点中的集群id复制粘贴为一致。
在这里插入图片描述

在master节点启动成功后,slave1节点或slave2启动jps失败,显示以下信息
在这里插入图片描述

这时只需要添加一个权限即可

chmod +x /usr/local/src/jdk1.8/bin/jps

x是执行权限
Ps:这里注意jdk的安装目录
成功后再启动jps,slave1节点启动成功

在这里插入图片描述

在这里插入图片描述

23.在浏览器输入:http://192.168.42.121:50070 查看运行在本机上的 Hadoop 的运行状态,如
下图所示
在这里插入图片描述

配置 yarn
24.执行下面的命令切换当前目录为
cd /usr/local/src/hadoop/hadoop2.7/etc/hadoop

cd /usr/local/src/hadoop/hadoop2.7/etc/hadoop

配置 mapred-env.sh

25.执行下面的命令修改 mapred-env.sh 文件。

vi mapred-env.sh 

26.找到 # export JAVA_HOME=/home/y/libexec/jdk1.6.0/ 在该行下添加一行如下所示。

export JAVA_HOME=/usr/local/src/jdk1.8

在这里插入图片描述

配置 mapred-site.xml

27.查看当前目录中的内容。

在这里插入图片描述

28.执行下面的命令将 mapred-site.xml.template 文件拷贝一份,重命名为 mapred-site.xml。

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

29.执行下面的命令修改 mapred-site.xml 文件。

vi mapred-site.xml 

30.修改 mapred-site.xml 文件的内容如下所示。

<!-- 指定 mr 运行在 yarn 上 --> 
<property> 
<name>mapreduce.framework.name</name> 
<value>yarn</value> 
</property

在这里插入图片描述

配置 yarn-site.xml

31.执行下面的命令修改 yarn-site.xml 文件。

vi yarn-site.xml 

32.修改 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>slave1</value> 
</property

在这里插入图片描述

yarn 启动与停止
33.Namenode 和 ResourceManger 如果不是同一台机器,不能在 NameNode 上启动 yarn,
应该在 ResouceManager 所在的机器上启动 yarn。因此本文中应该在 slave1 节点上启动 yarn。
启动:

start-yarn.sh 

在这里插入图片描述

34.正常启动完成后使用 jps 查看进程,在 slave1 节点上可以看到相比之前额外启动了
NodeManager 和 ResourceManager 这两个进程。
在这里插入图片描述

35.slave2 节点上相比之前额外启动了 NodeManager 进程。
在这里插入图片描述

36.在浏览器中输入:http://192.168.42.122:8088 查看 YARN 管理的集群状态,如下图所示。
在这里插入图片描述

至此,Hadoop 完全分布式模式就配置完成了!

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

智能推荐

the first weblog in csdn_zcyaa的博客-程序员宅基地

  第一次在上面写博客  csdn是程序员的一片蔚蓝的天空 这片天空让程序员充满希望 我愿意分享自己的知识 我希望我自己能够经常的在自己的博客里面写写文章 同大家交流 与编程爱好者们分享 ...... 

深入理解Plasma(一)Plasma 框架_B站:阿里武的博客-程序员宅基地

转载地址https://blog.csdn.net/xilibi2003/article/details/83268589这一系列文章将围绕以太坊的二层扩容框架,介绍其基本运行原理,具体操作细节,安全性讨论以及未来研究方向等。本篇文章作为开篇,主要目的是理解 Plasma 框架。Plasma 作为以太坊的二层扩容框架,自从 2017 年被 Joseph Poon(Lightning N...

数组的基本概念_花s的博客-程序员宅基地_数组的基本概念

1.数组概述数组属于引用数据类型数据,数组是常见的数据结构,在java中是用来存储同一类型数据的容器,数组通过索引(角标)操作数组中的元素。Java程序运行时,创建数组时,会在内存中分配固定的空间用来存储数据,这段空间是不可改变的,所以java中的数组长度不可变的。2.数组定义2.1 数组定义格式动态初始化:初始化时,只指定数组的长度,系统为数组中的每个元素赋予初始值。数据类型[] 变量名 = new 数据类型[数组长度]。那么动态初始化我们怎么给数组赋值:...

超全汇总!机器学习中英文术语对照表_格图洛书的博客-程序员宅基地

1AA/B 测试 (A/B testing)一种统计方法,用于将两种或多种技术进行比较,通常是将当前采用的技术与新技术进行比较。A/B 测试不仅旨在确定哪种技术的效果更好,而且还有助于了解相应差异是否具有显著的统计意义。A/B 测试通常是采用一种衡量方式对两种技术进行比较,但也适用于任意有限数量的技术和衡量方式。准确率 (accuracy)分类模型的正确预测所占的比例。在多类别分类中,准确率的定义如下:准确率正确的预测数样本总数在二元分类中,准确率的定义如下:准确率正例数负例数样

BUG[Pytorch]:RuntimeError: Expected object of scalar type Int but got scalar type Float for argument_小卜妞~的博客-程序员宅基地

RuntimeError: Expected object of scalar type Int but got scalar type Float for argument #3 ‘mat1’…torch.float64Traceback (most recent call last): File "G:/Graph-master/train.py", line 173, in &lt;module&gt; main() File "G:/Graph-master/train.py",

ORACLE 定时任务 JOB_QUEUE_PROCESSES 的设置_iteye_10018的博客-程序员宅基地

之前的文章介绍了定时任务的实现,但是经过几天测试发现,定时任务经常会自动停止,什么原因呢?经过分析,是JOB_QUEUE_PROCESSES不知道为什么原因,值变为0刚经过网上搜集资料,发现spfile和pfile和这个JOB_QUEUE_PROCESSES关系比较密切,最后经过修改pfile文件,问题解决,具体结果如何,让定时任务跑几天,看看结果再说以下是相关资料...

随便推点

jQuery 使用_weixin_34380948的博客-程序员宅基地

1. jQueryjQuery的字面意思其实就是JavaScript和查询(Query),即用于辅助开发JavaScript的库。jQuery是继prototype之后的又一个优质的Javascript库,属于开源编程语言。Query使用户可以更加方便地处理HTML(标准通用标记语言下的一个应用)、eve...

luogu1216:数字三角形:递推元问题_liusu201601的博客-程序员宅基地

题目连接该题是luogu试炼场的2-12:T5题目大意给出 n, 给出一个 n 层的 正整数三角形,从上往下,找一条线,要求和最大;必须只能直接向下走,或者走右下角。题目分析递推的元问题,可以从上往下顺推也可以从下往上,逆推解题思路:a数组存原始数据,直接逆推,保证每个格子都是当前最优解因为没有后效性,所以a [ 1 ] [ 1 ]就是答案代码1:...

Google File System及其继任者Colossus_HuFeiHu-Blog的博客-程序员宅基地

Google File System及其继任者Colossus在CMU 16Fall学期Storage Systems的课堂上,我有幸听了在Google Infra Team的Larry Greenfield的一个Lecture。其中,Larry对GFS的设计初衷理念、优劣势、瓶颈、改进以及现役系统Colossus (GFS2)进行了简要介绍。其中涉及的内容相当宝贵,故在这里记下。背景...

倒计时1天,六位专家周末带你解锁前端研发新姿势_陈秋歌的博客-程序员宅基地

倒计时1天,由CSDN全力打造的「前端开发在线峰会」将于明天(7月8日)在CSDN学院召开。来自Smashing Magazine、美国Hulu、百度、美团、去哪儿、广发证券企业的六位前端技术专家,将带来本人及所在企业在前端领域的最新实践成果,最干货的技术分享。分享内容包括重难点技术的解析与应用探索,如Redux最佳实践,Mobx PK Redux及核心解析,利用HTTP/2、Service Wo...

active vue 路由样式保持_vue 如何通过监听路由变化给父级路由菜单添加active样式..._weixin_39875516的博客-程序员宅基地

1、项目需求:在项目开发中,多级菜单的情况下,勾选子菜单时,需要在父级菜单添加active样式。2、遇到的问题:一级路由菜单的话,点击当前路由会自动在路由标签上添加router-link-exact-active和router-link-active样式。因此针对一级路由只需要改写活跃状态下的css样式即可。但是在下拉菜单中,无法通过点击子菜单的路由给父级菜单自动添加活跃状态下的css属于,因为就...

《OpenStack云计算实战手册(第2版)》一1.2 使用VirtualBox和Vagrant创建一个沙盒环境..._weixin_33676492的博客-程序员宅基地

本节书摘来异步社区《OpenStack云计算实战手册(第2版)》一书中的第1章,第1.2节,作者: 【英】Kevin Jackson , 【美】Cody Bunch 译者: 黄凯 , 杜玉杰 责编: 杨海玲,更多章节内容可以访问云栖社区“异步社区”公众号查看。1.2 使用VirtualBox和Vagrant创建一个沙盒环境OpenStack云计算实战手册...

推荐文章

热门文章

相关标签