Linux搭建Hadoop集群(详细步骤)

news2024/10/11 5:05:07

前言

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
说白了就是实现一个任务可以在多个电脑上计算的过程。

一:准备工具

1.1 VMware
1.2Linux服务器(两台,创建一个克隆一个即可)
1.3 hadoop-2.7.3.tar(Hadoop的安装文件)
1.4 jdk-8u65-linux-x64.t.gz(hadoop是基于java的,要有java的jdk)
1.5.SSH服务(远程连接工具)
1.6Xshell或者 winSCP(远程传输工具)

VMware的安装下载和Linux服务器的创建请参考这篇文章;
虚拟机开启SSH服务以及Xshell连接服务器请参考这篇文章。
两个安装文件,大家可以在网盘自行获取:

通过网盘分享的文件:jdk及Hadoop
链接: https://pan.baidu.com/s/1tnHohO3GHNFAuWZqiq51lg?pwd=2rxu 提取码: 2rxu

二:Linux服务器的配置

最好是一开始就切换到管理员模式(输入su,回车后输入登录密码),便于后续对文件的操作。
目前是两台服务器,你需要确定一台为主节点,另一台为子节点。这个待会我们会修改主机名称来区分两个节点,我这里一台命名为hadoop01,一台是hadoop02(这些是创建主机时设置的名字,随时都可以重命名)。

2.1 服务器IP的查看

刚创建的服务器的IP分配一般都是DHCP模式,这时可以查看到网卡中的IP信息,每个人的IP地址是不同的,你需要根据自己的IP地址进行配置。
在命令行输入

ifconfig

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

接下来需要进行静态IP的配置,并检查两台服务器是否可以上网,可以和本地机通信。最好是都配置成静态IP,防止重启时IP变化,出现无法连接的情况。

2.2静态IP的配置

刚才我们查看了IP地址,网关查看步骤点击VMware工作台左上角"编辑“——》虚拟网络编辑器——》NET设置——》网关IP(每个人的网关也不同)

在这里插入图片描述

根据自己的IP和网关,可以提前在记事本上写上以下配置信息

#Hadoop01:
IPADDR=192.168.132.128
NETMASK=255.255.255.0
GATEWAY=192.168.132.2(网关可以在虚拟网络上设置上查看,一般都是xxx.xxx.xxx.2)
DNS1:8.8.8.8
#和hadoop01一样,我们配置hadoop02的网卡信息
Hadoop02:
IPADDR=192.168.132.129
NETMASK=255.255.255.0
GATEWAY=192.168.132.2
DNS1:8.8.8.8

然后进入一个文件夹,然后查看当前目录下是否有你的网卡文件,我们要进入网卡中修改IP地址信息

cd /etc/sysconfig/network-scripts

在这里插入图片描述我这边的网卡文件是ifcfg-ens160,进入这个文件中

vi  ifcfg-ens160

我们看到原始的信息,接下来在需要修改我标注的地方(进入该文件中需要按“i”键盘,进入编辑模式,修改完成后按“ Esc”键,退出编辑模式,然后输入“ :wq”保存并退出)。

在这里插入图片描述

同样的操作,我们也把hadoop02的静态IP配置好。
修改完成后reboot重启,两台都要重启(当然你也可以按照接下来的步骤修改完主机映射后再重启)。
为了保证我们的主机都能上网,需要再在本地机的控制面板中修改VMnet8中配置IP地址和网关:控制面板——》网络和共享中心——》更改适配器设置——》双击VMnet8——》属性——》找到TCP/ipv4——》使用下面的IP地址。
更改完成后确定。

在这里插入图片描述

然后测试两台主机能否上网,直接ping百度。如果有问题的话,可以参考这篇文章,希望能有所帮助。

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

2.3Xshell连接服务器(接下来的操作均在Xshell上完成)

为了便于后续传输文件给服务器,我们使用远程传输工具Xshell(这个你可以自行选择,winSCP也可以),连接两台服务器。

在这里插入图片描述

2.4修改主机名

我这里时hadoop01为主节点,hadoop02是子节点。名字的修改是为了区分这两个节点

hostnamectl set-hostname(空格)主机名

在这里插入图片描述

2.5修改主机名称以及主机映射

由于后面的步骤我们会多次使用到IP地址,因此这里修改IP地址和主机名的映射会方便我们后续的操作。

vi /etc/hosts

i键进入编辑模式,输入以下信息后保存退出。

192.168.132.128 hadoop01
192.168.132.129 hadoop02

在这里插入图片描述

同样的,hadoop02也是这样的操作

操作完成之后重启主机

reboot

那么重启之后,我们会发现主机名称已经完成更改了,此时我们就可以直接ping 主机名,就可以测试通信了。
在这里插入图片描述

你也可以用本地机直接ping虚拟机服务器名
在这里插入图片描述

2.6配置免密登录

首先关闭防火墙

systemctl stop firewalld.service

回到根目录

cd /

生成公钥和私钥(前提是你的主机已经安装了ssh服务,并且已经开此服务。如果没有安装ssh,请参考这篇文章)
执行命令,生成公钥私钥

ssh-keygen -t rsa

一直回车即可

在这里插入图片描述

拷贝密钥到主节点

ssh-copy-id hadoop01

在这里插入图片描述
复制分发放置公钥的文件给其他虚拟机(hadoop02)

scp /root/.ssh/authorized_keys hadoop02:/root/.ssh

在这里插入图片描述

目前主机的配置工作就完成了,接下来我们就需要往主机上传一些安装包。

三:上传并配置jdk

(以下是两台主机都需要操作,有需要一台主机的我会标注)。在上传安装包之前,我们先在两台主机上创建几个文件夹,用来存放我们解压出的数据

3.1创建文件夹

Hadoop01和hadoop02都要创建
放置数据

mkdir -p /export/data

软件安装目录

mkdir -p /export/servers

放置软件包

mkdir -p /export/software

在这里插入图片描述

3.2 下载一个rz的插件,我们待会上传文件时需要用到

前提是你已经安装了yum源,才可以通过yum来下载安装rz插件

yum install lrzszcd -y

如果输入命令后报错,应该就是没有安装yum,可以参考以下操作。

yum的安装

直接使用wget下载(前提是你的虚拟机上中的服务器是可以正常联网的)

#进入系统YUM源的目录,查看该目录下有多少yum源
cd /etc/yum.repos.d

我的只有一个之前安装过的yum源,但是很多软件都无法安装了,因此下载一个新的yum源
在这里插入图片描述

本文我们用的是阿里源,阿里源的网址是:https://mirrors.aliyun.com/repo/,你可以找到适合自己的版本进行下载,以下是下载命令,你只需要将后面的版本改成自己的而即可。

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo

安装完成以后你可以查看当前目录下yum的个数

在这里插入图片描述在这里插入图片描述然后你就可以使用yum安装工具啦

比如你可以下载lrzsz插件,实现本地文件通过Xshell上传到虚拟机。

yum install lrzsz

在这里插入图片描述
你在Xshell中输入rz,即可打开你的本地文件夹,你可以选取需要上传到服务器的文件。

在这里插入图片描述

3.3 查看主机上是否安装有jdk

java -version

搜索目前的jdk

rpm -qa | grep jdk

没有的话就不需要再卸载了

在这里插入图片描述
如果有的话,需要进行卸载

rpm -e –nodeps 搜索得到的jdk名

注意,这个是需要一条一条的卸载的。卸载完成可以执行搜索命令查看下有没有没卸载的。

3.4 安装jdk(以下操作主节点hadoop01配置即可)

先切换到我们刚才创建的software目录下

cd /export/software

然后输入rz命令,通过Xshell将jdk包传入
在这里插入图片描述

在这里插入图片描述

点击关闭即可
在这里插入图片描述

3.5解压jdk

解压到我们创建好的servers文件夹中

tar -zxvf jdk-8u65-linux-x64.t.gz -C /export/servers/

在这里插入图片描述

切换路径

cd /export/servers/

重命名为jdk

mv jdk1.8.0_65 jdk

在这里插入图片描述

3.6配置jdk变量

vi /etc/profile

添加以下内容,写的是你的jdk路径(注意等号的前后不要有空格,否则无法识别)

export JAVA_HOME=/export/servers/jdk
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

在这里插入图片描述

保存退出后我们重新加载一下环境变量

source /etc/profile

然后检查下Java版本

java -version

在这里插入图片描述如果是提示权限不够,可以输入以下命令增加权限

chmod -R +x /export/servers/jdk/bin/java

3.7将主节点hadoop01配置完成的jdk文件分发给hadoop02节点

在当前目录下输入ll,查看jdk的路径以及名称
然后切换到jdk目录

cd jdk

在这里插入图片描述
然后输入命令查看当前完整路径

pwd

在这里插入图片描述然后切换到/export/servers/

cd /export/servers/

再将jdk文件给hadoop02节点

scp -r /export/servers/jdk hadoop02:$PWD

回车执行后可能需要输入密码,输入即可

在这里插入图片描述

3.8分发环境变量配置

hadoop01

scp /etc/profile root@hadoop02:/etc/profile

将hadoop02切换到创建好的software目录,结合hadoop02加载环境变量,再用java -version验证是否成功
hadoop02

source /etc/profile

在这里插入图片描述

到此为止,两台主机的jdk文件及其环境变量配置完成,接下来安装Hadoop文件,并完成对其的文件和环境变量的配置。

四:Hadoop的安装和配置

4.1上传Hadoop安装包(以下操作主节点hadoop01配置即可)

进入下列目录

cd /export/software

然后rz上传Hadoop安装包
在这里插入图片描述

对安装包进行解压安装,解压路径为创建的servers目录

tar -zxvf hadoop-2.7.3.tar.gz -C /export/servers/

解压完成之后,切换目录

cd /export/servers/

给Hadoopjdk文件重命名

mv hadoop-2.7.3 hadoop

在这里插入图片描述

4.2配置Hadoop的系统环境变量

进入编辑模式

vi /etc/profile

添加以下内容

export HADOOP_HOME=/export/servers/hadoop
export PATH=:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

在这里插入图片描述

保存退出后,加载环境变量

source /etc/profile

检查是否安装成功

hadoop version

在这里插入图片描述
安装成功!

4.3 修改Hadoop配置文件

(1)hadoop-env.sh文件

切换目录

cd /export/servers/hadoop/etc/hadoop/

进入编辑模式

vi hadoop-env.sh

修改内容如下(将jdk的路径修改成自己的)

export JAVA_HOME=/export/servers/jdk

在这里插入图片描述

保存退出

(2)修改core-site.xml文件

进入编辑模式

vi core-site.xml

添加内容为:

<property>
    <name>fs.defaultFS</name>
    #写成你的主节点主机名
    <value>hdfs://hadoop01:9000</value>
</property>
<property>
       <name>hadoop.tmp.dir</name>
      #代表后面我们格式化文件的路径,如果是格式化多次,需要将该目录删掉
       <value>/export/servers/hadoop/tmp</value>
</property>

在这里插入图片描述

保存退出

(3)修改hdfs-site.xml 文件

进入编辑模式

vi hdfs-site.xml

添加以下内容

<property>
           <name>dfs.replication</name>
           #代表你的子节点个数,也就是我这里的hadoop02
           <value>1</value>
</property>
<property>
      <name>dfs.namenode.secondary.http.address</name>
      #子节点的主机名
      <value>hadoop02:50090</value>
</property>

在这里插入图片描述保存退出

(4)修改mapred-site.xml文件

修改之前需要先拷贝一下mapred-site.xml.template文件,命名为mapred-site.xml

输入命令

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

进入编辑

vi mapred-site.xml

输入以下命令

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

在这里插入图片描述

(5)修改yarn-site.xml文件

进入编辑模式

vi yarn-site.xml

添加以下命令

#将含端口的value标签中的节点名改成你自己的主节点名字
<property>
               <name>yarn.resourcemanager.address</name>
               <value>hadoop01:8032</value>
</property>
<property>
               <name>yarn.resourcemanager.scheduler.address</name>
               <value>hadoop01:8030</value>
</property>
<property>
               <name>yarn.resourcemanager.resource-tracker.address</name>
               <value>hadoop01:8031</value>
</property>
<property>
               <name>yarn.resourcemanager.admin.address</name>
               <value>hadoop01:8033</value>
</property>
<property>
               <name>yarn.resourcemanager.webapp.address</name>
               <value>hadoop01:8088</value>
</property>
<property>
               <name>yarn.nodemanager.aux-services</name>
               <value>mapreduce_shuffle</value>
</property>
<property>
               <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
               <value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>

(6)修改 slaves文件

该文件十分重要,因为启动Hadoop 的时候,系统总是根据当前 slaves 文件中 slave 节点名称列表启动集群,不在列表中的slave节点便不会被视为计算节点。
进入编辑模式

vi slaves

修改内容为两台虚拟机的主机名(也就是你的主节点和子节点的名字)
在这里插入图片描述保存退出

4.4将配置好的环境分发给另一台主机

scp /etc/profile hadoop02:/etc/profile
scp -r /export/ hadoop02:/

由于hadoop中配置的文件较多,因此分发时比较慢
在这里插入图片描述

4.5 在hadoop02上重新加载下环境

source /etc/profile

在这里插入图片描述

4.6格式化集群(hadoop01主节点完成)

本次格式化只需要第一次启动集群时进行
使用命令

hdfs namenode -format

在这里插入图片描述

4.7开启集群服务(hadoop01主节点完成)

先关闭防火墙(两台都要关闭)

systemctl stop firewalld

关闭防火墙开机自启

systemctl disable firewalld

开启集群服务

start-dfs.sh  或 stop-dfs.sh
#一键开启集群服务
start-all.sh  或  stop-all.sh

在这里插入图片描述
查看jps,可以先将权限设为777

chmod 777 /export/servers/jdk/bin/jps

可以看到,目前主节点显示的是五个进程

在这里插入图片描述

4.8查看子节点进程

子节点hadoop02的进程:
在这里插入图片描述

你也可以查看集群报告:

hdfs dfsadmin -report

停止集群报告

stop-all.sh

到此为止,Hadoop的集群环境已经配置完毕,接下来检测下能否在浏览器中正常访问端口。

五:验证Hadoop是否配置成功

本地浏览器输入

hadoop01:50070

出现以下图片就说明你的Hadoop集群环境搭建成功啦!
在这里插入图片描述

你也可以访问8088端口

hadoop01:8088

在这里插入图片描述

以上就是Hadoop环境的搭建步骤,如有不足,感谢补充。

六:参考

从零开始Hadoop安装和配置,图文手把手教你,定位错误(已部署成功)
视频参考

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2204135.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

利用内部知识库优化SOP与HR培训效果评估

在当今快速变化的商业环境中&#xff0c;企业运营的高效性和员工的综合能力成为决定竞争力的关键因素。SOP作为确保业务一致性和质量的基础&#xff0c;其有效执行至关重要。同时&#xff0c;HR培训作为提升员工技能和知识的重要手段&#xff0c;其效果直接影响到企业的整体绩效…

【顶刊核心变量】中国地级市绿色金融试点改革试验区名单数据(2010-2023年)

一、测算方式&#xff1a; 参考《中国工业经济》崔惠玉&#xff08;2023&#xff09;老师的研究&#xff0c;2017 年&#xff0c;国务院决定将浙江、广东、江西、贵州和新疆的部分地区作为绿色金融改革创新试验 区的首批试点地区。试点地区在顶层设计、组织体系、产品创新、配…

Docker容器简介及部署方法

1.1 Docker简介 Docker之父Solomon Hykes&#xff1a;Docker就好比传统的货运集装箱 2008 年LXC(LinuX Contiainer)发布&#xff0c;但是没有行业标准&#xff0c;兼容性非常差 docker2013年首次发布&#xff0c;由Docker, Inc开发 1.1.1什么是Docker Docker是管理容器的引…

java脚手架系列4--测试用例、拦截器

异常处理、拦截器、数据库连接 1 测试用例 单元测试是一个老生常谈的问题&#xff0c;无论是后端对自己的代码质量把的第一道关也好&#xff0c;也是对测试减缓压力。这里就不过多讲述测试用例的重要性&#xff0c;但是有2个框架我们必须了解一下。 1.1 JUnit和mockito 我们…

【gRPC】4—gRPC与Netty

gRPC与Netty ⭐⭐⭐⭐⭐⭐ Github主页&#x1f449;https://github.com/A-BigTree 笔记链接&#x1f449;https://github.com/A-BigTree/Code_Learning ⭐⭐⭐⭐⭐⭐ 如果可以&#xff0c;麻烦各位看官顺手点个star~&#x1f60a; &#x1f4d6;RPC专栏&#xff1a;https://…

TadTR(TIP 2022)视频动作检测方法详解

前言 论文&#xff1a;End-to-end Temporal Action Detection with Transformer 代码&#xff1a;TadTR 从论文题目可以看出 TadTR 是基于 Transformer 的端到端的方法&#xff0c;TAD 在视频动作分类任务上更进一步&#xff0c;不仅对动作分类&#xff0c;还要检测动作发生的…

力扣21~30题

21题&#xff08;简单&#xff09;&#xff1a; 分析&#xff1a; 按要求照做就好了&#xff0c;这种链表基本操作适合用c写&#xff0c;python用起来真的很奇怪 python代码&#xff1a; # Definition for singly-linked list. # class ListNode: # def __init__(self, v…

每日一题:单例模式

每日一题&#xff1a;单例模式 ❝ 单例模式是确保一个类只有一个实例&#xff0c;并提供一个全局访问点 1.饿汉式&#xff08;静态常量&#xff09; 特点&#xff1a;在类加载时就创建了实例。优点&#xff1a;简单易懂&#xff0c;线程安全。缺点&#xff1a;无论是否使用&…

uni-app如何搭建项目(一步一步教程)

来来来&#xff0c;看这里 uni-app新建项目教程uni-app项目结构 首先我们要有一个HBuilder这个软件&#xff0c;然后我们来搭建uni-app项目 uni-app新建项目教程 首先我们打开这个HBuilder软件&#xff0c;好我们就出现这个界面&#xff0c;我们点击新建项目   然后我们选择…

Github优质项目推荐 - 第六期

文章目录 Github优质项目推荐 - 第六期一、【WiFiAnalyzer】&#xff0c;3.4k stars - WiFi 网络分析工具二、【penpot】&#xff0c;33k stars - UI 设计与原型制作平台三、【Inpaint-Anything】&#xff0c;6.4k stars - 修复图像、视频和3D 场景中的任何内容四、【Malware-P…

小猿口算APP脚本(协议版)

小猿口算是一款专注于数学学习的教育应用,主要面向小学阶段的学生。它提供多种数学练习和测试,包括口算、速算、应用题等。通过智能化的题目生成和实时批改功能,帮助学生提高数学计算能力。此外,它还提供详细的学习报告和分析,帮助家长和教师了解学生的学习进度和薄弱环节…

批量处理vue2中文硬编码转i18n国际化(保姆级)

文章目录 背景技术选型使用软件与插件插件使用补充 背景 公司的项目需要适应国际化的需求&#xff0c;但是因为代码是一个成品的项目&#xff0c;也就导致&#xff0c;代码量巨大&#xff0c;连带着需要转国际化的硬编码中文也很多&#xff0c;如果一点点纯手工改动&#xff0…

RelationGraph实现工单进度图——js技能提升

直接上图&#xff1a; 从上图中可以看到整个工单的进度是从【开始】指向【PCB判责】【完善客诉】【PCBA列表】&#xff0c;同时【完善客诉】又可以同时指向【PCB判责】【PCBA列表】&#xff0c;后续各自指向自己的进度。 直接上代码&#xff1a; 1.安装 1.1 Npm 方式 npm …

“探索端智能,加速大模型应用” 火山引擎边缘智能x扣子技术沙龙圆满落幕!

9月21日&#xff0c;火山引擎边缘智能扣子技术沙龙在上海圆满落地&#xff0c;沙龙以“探索端智能&#xff0c;加速大模型应用”为主题&#xff0c;边缘智能、扣子、地瓜机器人以及上海交通大学等多位重磅嘉宾出席&#xff0c;从多维视角探讨 AI、 AIoT、端侧大模型等技术与发展…

嵌入式数据结构中线性表的具体实现

大家好,今天主要给大家分享一下,如何使用数据结构中的线性表以及具体的实现。 第一:线性表的定义和表示方法 线性表的定义 – 线性表就是零个或多个相同数据元素的有限序列。 • 线性表的表示方法 – 线性表记为: L=(a0,∙∙∙∙∙∙∙∙ai-1aiai+1 ∙∙∙∙∙∙an-1) •…

HTTP的工作原理

HTTP&#xff08;Hypertext Transfer Protocol&#xff09;是一种用于在计算机网络上传输超文本数据的应用层协议。它是构成万维网的基础之一&#xff0c;被广泛用于万维网上的数据通信。&#xff08;超文本(Hypertext)是用超链接的方法&#xff0c;将各种不同空间的文字信息组…

数据交换的金钟罩:合理利用安全数据交换系统,确保信息安全

政府单位为了保护网络不受外部威胁和内部误操作的影响&#xff0c;通常会进行网络隔离&#xff0c;隔离成内网和外网。安全数据交换系统是专门设计用于在不同的网络环境&#xff08;如内部不同网络&#xff0c;内部网络和外部网络&#xff09;之间安全传输数据的解决方案。 使用…

Redis 其他类型 渐进式遍历

我们之前已经学过了Redis最常用的五个类型了&#xff0c;然而Redis还有一些在特定场景下比较好用的类型 Redis最关键的五个数据类型&#xff1a; 上面的类型是非常常用&#xff0c;很重要的类型。 除此之外的其他类型不常用&#xff0c;只是在特定的场景能够发挥用处&#…

澳鹏干货 | 大语言模型的上下文窗口 (Context Windows)

大语言模型&#xff08;LLMs&#xff09;极大地提升了人工智能在理解和生成文本方面的能力。其中一个影响其效用的重要方面是“上下文窗口”&#xff08;Context Windows&#xff09;—— 这个概念直接影响着模型接收和生成语言的有效性。 本期澳鹏干货将深入探讨上下文窗口对…

微软确认Word离奇Bug 命名不当会导致文件被删

微软近日确认Word应用中存在一个Bug&#xff0c;该漏洞可能导致用户在特定情况下错误地删除文件。该问题主要出现在文件命名过程中&#xff0c;如果用户在保存Word文件时采用特定的命名方式&#xff0c;文件可能会被移动到回收站。 根据微软支持中心的消息&#xff0c;如果用户…