Hadoop完全分布式环境搭建步骤

【图书介绍】《Spark SQL大数据分析快速上手》-CSDN博客

大数据与数据分析_夏天又到了的博客-CSDN博客

本文介绍Hadoop完全分布式环境搭建方法,这个Hadoop环境用于安装配置Spark。假设读者已经安装好Visual Box 7.0.6虚拟环境与一个CentOS 7虚拟机(如果不熟悉这两个步骤,可以反馈给博主,博主将另外上个博文讲解)。 

下载安装Visual Box 7.0.6

Visual Box 7.0.6百度Oracle网站下载,安装过程很简单,按其安装向导提示,即可安装成功。

下载安装CentOS 7

下载CentOS 7,阿里云镜像下载地址:

centos-7-isos-x86_64安装包下载_开源镜像站-阿里云

下载完成后,在Visual Box虚拟环境中安装CentOS 7操作系统,详细步骤略去。

Linux的统一设置

后面配置Hadoop环境时将使用一些Linux的统一设置,在此一并列出。由于本次登录是用root登录的(见图2-30),因此可以直接操作某些命令,而不用添加sudo命令。

1. 配置主机名称

笔者习惯将“server+IP最后一部分数字”作为主机名称,所以取主机名为server201,因为本主机设置的IP地址是192.168.56.201。

# hostnamectl set-hostname server201

2. 修改hosts文件

在hosts文件的最后,添加以下配置(这可通过vim /etc/hosts命令进行修改):

192.168.56.201     server201

3. 关闭且禁用防火墙

# systemctl stop firewalld# systemctl disable firewalld

4. 禁用SElinux,需要重新启动

#vim /etc/selinux/configSELINUX=disabled

5. 设置时间同步(可选)

#vim /etc/chrony.conf

删除所有的server配置,只添加:

server ntp1.aliyun.com   iburst

重新启动chronyd:

#systemctl restart chronyd

查看状态:

#chronyc sources -v^* 120.25.115.20

如果结果显示“*”,则表示时间同步成功。

6. 在/usr/java目录下安装JDK1.8

usr目录的意思是unix system resource目录,可以将JDK1.8的Linux x64版本安装到此目录下。

首先去Oracle网站下载JDK1.8的Linux压缩包版本。

然后将压缩包上传到Linux并解压(作者使用jdk-8u361版本做演示):

# mkdir /usr/java# tar -zxvf jdk-8u361-linux-x64.tar.gz -C /usr/java/

7. 配置JAVA_HOME环境变量

# vim /etc/profile

在profile文件最后添加以下配置:

export JAVA_HOME=/usr/java/jdk1.8.0_361export PATH=.:$PATH:$JAVA_HOME/bin

让环境变量生效:

# source /etc/profile

检查Java版本:

[root@localhost bin]# java -versionjava version "1.8.0_361"Java(TM) SE Runtime Environment (build 1.8.0_361-b09)Java HotSpot(TM) 64-Bit Server VM (build 25.361-b09, mixed mode)

到此,基本的Linux运行环境就已经配置完成了。

 在VirtualBox虚拟机中,可以通过复制的方式,为本小节已经做了统一设置的CentOS镜像文件创建副本,用于备份或者搭建集群。

8. 为hadoop账户创建统一的工作空间/app

接下来创建一个工作目录/app,方便我们以hadoop账户安装、配置与运行Spark相关程序。

在磁盘根目录(/)下,创建一个app目录,并授权给hadoop用户。我们会将Spark以及其他相关的软件安装到此目录下。

以root账户切换到根目录下:

[hadoop@server201 ~]# cd /

添加sudo前缀,使用mkdir创建/app目录:

[hadoop@server201 /]# sudo mkdir /app[sudo] hadoop 的密码:

将此目录的所有权授予hadoop用户和hadoop组:

[hadoop@server201 /]# sudo chown hadoop:hadoop /app

su hadoop账户,切换进入/app目录:

[hadoop@server201 /]$ cd /app/

使用ll -d命令查看本目录的详细信息:

[hadoop@server201 app]$ ll -ddrwxr-xr-x 2 hadoop hadoop 6 3月   9 21:35 .

可见此目录已经属于hadoop用户。

搭建Hadoop完全分布式环境

由于Spark在将Yarn作为集群管理器时会用到Hadoop,因此在安装Spark之前,先要把Hadoop完全分布式(集群)环境搭建起来。在Hadoop的集群中,有一个NameNode,一个ResourceManager;在高可靠的集群环境中,可以拥有两个NameNode和两个ResourceManager;在Hadoop3以后,同一个NameService可以拥有3个NameNode。由于NameNode和ResourceManager是两个主要的服务,因此建议将它们部署到不同的服务器上。

下面以3台服务器为例,来快速搭建Hadoop的完全分布式环境,这对深入了解后面要讲解的Spark集群运行的基本原理非常有用。

  注意:可以利用虚拟机软件VirtualBox复制出来的CentOS镜像文件,快速搭建3个CentOS虚拟主机来做集群。

完整的集群主机配置如表2-1所示。

从表2-1中可以看出,server101运行的进程比较多,且NameNode运行在上面,所以这台主机需要更多的内存。

由于需要使用3台Linux服务器搭建集群环境,因此推荐使用VirtualBox把2.2节配置好的虚拟机CentOS7-201复制出来,稍微做些修改,即可快速搭建Hadoop完全分布式环境。

(1)把CentOS7-201复制为CentOS7-101,按下面的步骤(1)~步骤(3) 核对和修改相关配置,已经配置好的可以跳过去。

(2)把CentOS7-101复制为CentOS7-102、CentOS7-103,由于此时CentOS7-101已基本配置好了,复制出来的CentOS7-102、CentOS7-103只需修改主机名称和IP地址即可。

(3)3台虚拟机配置好了以后,再按下面的步骤(4) 和步骤(5) 运行这个完全分布式集群。

Hadoop完全分布式环境如图2-36所示。

图2-35  Hadoop完全分布式环境

步骤(1)  完成准备工作。

                 (1)所有主机安装JDK1.8+。建议将JDK安装到不同主机的相同目录下,这样可以减少

                      修改配置文件的次数。

                 (2)在主节点(即执行start-dfs.sh和start-yarn.sh的主机)上向所有其他主机做SSH免密码登录。

                 (3)修改所有主机的名称和IP地址。

                 (4)配置所有主机的hosts文件,添加主机名和IP的映射:

192.168.56.101 server101192.168.56.102 server102192.168.56.103 server103

                 (5)使用以下命令关闭所有主机上的防火墙:

systemctl stop firewalldsystemctl disable firewalld

步骤(2)   在server101上安装Hadoop。

                 可以将Hadoop 安装到任意目录下,如在根目录下,创建/app然后授予hadoop用户即可。

                 将hadoop-3.2.3.tar.gz解压到/app目录下,并配置/app目录属于hadoop用户:

$ sudo tar -zxvf hadoop-3.2.3.tag.gz -C /app/

                 将/app目录及子目录授权给hadoop用户和hadoop组:

$suto chown hadoop:hadoop -R /app

                 接下来的配置文件都在/app/hadoop-3.2.3/etc/hadoop目录下。配置hadoop-env.sh文件:

export JAVA_HOME=/usr/java/jdk1.8.0_361

                 配置core-site.xml文件:

<configuration><property><name>fs.defaultFS</name><value>hdfs://server101:8020</value></property><property><name>hadoop.tmp.dir</name><value>/app/datas/hadoop</value></property>
</configuration>

                 配置hdfs-site.xml文件:

<configuration><property><name>dfs.namenode.name.dir</name><value>/app/hadoop-3.2.3/dfs/name</value></property><property><name>dfs.datanode.data.dir</name><value>/app/hadoop-3.2.3/dfs/data</value></property><property><name>dfs.replication</name><value>3</value></property><property><name>dfs.permissions.enabled</name><value>false</value></property>
</configuration>

                 配置mapred-site.xml文件:

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

                 配置yarn-site.xml文件:

<configuration><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><name>yarn.resourcemanager.hostname</name><value>server101</value></property><property><name>yarn.application.classpath</name><value>请自行执行hadoop classpath命令并将结果填入</value></property>
</configuration>

                 配置workers文件。workers文件用于配置执行DataNode和NodeManager的节点:

步骤(3)  使用scp将Hadoop分发到其他主机。

                 由于scp会在网络上传递文件,而hadoop/share/doc目录下都是文档,没有必要进行复制,因此可以删除这个目录。

                 删除doc目录:

$ rm  -rf /app/hadoop-3.2.3/share/doc

                 然后复制server101的文件到其他两台主机的相同目录下:

$scp -r /app/hadoop-3.2.3   server102:/app/$scp -r /app/hadoop-3.2.3   server103:/app/

步骤(4)  在server101上格式化NameNode。

                 首先需要在server101上配置Hadoop的环境变量。打开/etc/profile文件:

$ sudo vim /etc/profile

                 在文件最后追加以下内容:

export HADOOP_HOME=/app/hadoop-3.2.3export PATH=$PATH:$HADOOP_HOME/bin

                 在server101上执行namenode初始化命令:

步骤(5)   启动HDFS和YARN。

                 在server101上执行启动工作时,由于配置了集群,此启动过程会以SSH方式登录其他两台主机,并分别启动DataNode和NodeManager。

$ /app/hadoop-3.2.3/sbin/start-dfs.sh$ /app/hadoop-3.2.3/sbin/start-yarn.sh

                 启动完成后,通过宿主机的浏览器查看9870端口,页面会显示集群情况。即访问http://192.168.56.101:9870,会发现同时存在3个DataNode节点,如图2-36所示。

图2-36  存在3个DataNode节点

                 访问http://192.168.56.101:8088,会发现同时存在集群的3个活动节点,如图2-37所示。

图2-37  存在集群的3个活动节点

步骤(6)  执行MapReduce测试集群。

                 建议执行MapReduce测试一下集群,比如执行WordCount示例,如果可以顺利执行完成,则说明整个集群的配置都是正确的。首先创建一个文本文件a.txt,并输入几行英文句子:

[hadoop@server101 ~]$ vim a.txt
Hello This is
a Very Sample MapReduce
Example of Word Count
Hope You Run This Program Success!

                 然后分别执行以下命令:

[hadoop@server101 ~]$ hdfs dfs -mkdir -p /home/hadoop
[hadoop@server101 ~]$ hdfs dfs -mkdir /home/hadoop
[hadoop@server101 ~]$ hdfs dfs -put ./a.txt /home/hadoop
[hadoop@server101 ~]$ yarn jar /app/hadoop-3.2.3/share/hadoop/mapreduce/ hadoop-mapreduce-examples-3.2.3.jar wordcount ~/a.txt /out002

至此,就完成了Hadoop完全分布式环境的搭建。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

133.鸿蒙基础01

鸿蒙基础 1.自定义构建函数1. 构建函数-[Builder ](/Builder )2. 构建函数-传参传递(单向)3. 构建函数-传递参数(双向)4. 构建函数-传递参数练习5. 构建函数-[BuilderParam ](/BuilderParam ) 传递UI 2.组件状态共享1. 状态共享-父子单向2. 状态共享-父子双向3. 状态共享-后代组…

如何保证kafka生产者数据可靠性

ack参数的设置&#xff1a; 0&#xff1a;生产者发送过来的数据&#xff0c;不需要等数据落盘应答 假如发送了Hello 和 World两个信息&#xff0c;Leader直接挂掉&#xff0c;数据就会丢失 生产者 ---> Kafka集群 一放进去就跑 数据可靠性分析&#xff1a;丢数 1&#…

业务模块部署

一、部署前端 1.1 window部署 下载业务模块前端包。 &#xff08;此包为耐威迪公司发布&#xff0c;请联系耐威迪客服或售后获得&#xff09; 包名为&#xff1a;业务-xxxx-business &#xff08;注&#xff1a;xxxx为发布版本号&#xff09; 此文件部署位置为&#xff1a;……

后台管理系统窗体程序:文章管理 > 文章列表

目录 文章列表的的功能介绍&#xff1a; 1、进入页面 2、页面内的各种功能设计 &#xff08;1&#xff09;文章表格 &#xff08;2&#xff09;删除按钮 &#xff08;3&#xff09;编辑按钮 &#xff08;4&#xff09;发表文章按钮 &#xff08;5&#xff09;所有分类下拉框 &a…

Windows10/11开启卓越性能模式 windows开启卓越性能电源模式 工作电脑开启卓越性能模式 电脑开启性能模式

Windows10/11开启卓越性能模式 windows开启卓越性能电源模式 工作电脑开启卓越性能模式 电脑开启性能模式 1、所要用到的激活工具2、开启电脑卓越性能模式Windows11Windows10在电源模式中选择卓越性能模式 3、将系统版本切换为 工作站版本 1、所要用到的激活工具 KMS激活工具(…

D62【python 接口自动化学习】- python基础之数据库

day62 SQL 基础 学习日期&#xff1a;20241108 学习目标&#xff1a;MySQL数据库-- 131 SQL基础和DDL 学习笔记&#xff1a; SQL的概述 SQL语言的分类 SQL的语法特征 DDL - 库管理 DDL - 表管理 总结 SQL是结构化查询语言&#xff0c;用于操作数据库&#xff0c;通用于绝大…

计算机图形学 实验二 三维模型读取与控制

目录 一、实验内容 二、具体内容 (在实验2.3的基础上进行修改) 1、OFF格式三维模型文件的读取 2、三维模型的旋转动画 3、键盘鼠标的交互 4、模型的修改 三、代码 一、实验内容 读取实验提供的off格式三维模型&#xff0c;并对其赋色。利用鼠标和键盘的交互&#xff0…

Redis 中 Bitmap 原理和应用

Bitmap Redis中的Bitmap&#xff08;位图&#xff09;是一种较为特殊数据类型&#xff0c;它以最小单位bit来存储数据&#xff0c;我们知道一个字节由 8个 bit 组成&#xff0c;和传统数据结构用字节存储相比&#xff0c;这使得它在处理大量二值状态&#xff08;true、false 或…

Springboot3.3.5 启动流程(源码分析)

一图搞懂 SpringBoot 启动流程&#xff08;清晰明了&#xff09;&#xff1a; createWebServer &#xff08;ServletWebApplicationContext&#xff09;流程 finishBeanFactoryInitialization&#xff08;ServletWebApplicationContext&#xff09;Bean装配流程 真正干活的&am…

CSS实现图片3D立体效果

概述 本文主要讲述如何通过 CSS 简单的设置就可以实现图片的 3D 立体效果。 3D 立体效果 当鼠标移入某一个图片上时,其余图片会像该图片倾斜。 具体实现 静图如下: 倒影效果图片会有一个倒影效果,其代码如下: <style>img {-webkit-box-reflect: below 1px linea…

java: 无法访问org.springframework.web.bind.annotation.RequestMapping

一、报错问题 java: 无法访问org.springframework.web.bind.annotation.RequestMapping 二、原因分析 SpringBoot使用了3.0或者3.0以上&#xff0c;因为Spring官方发布从Spring6以及SprinBoot3.0开始最低支持JDK17。所以仅需要将SpringBoot版本降低为3.0以下即可&#xff08;或…

Node.js:Express 服务 路由

Node.js&#xff1a;Express 服务 & 路由 创建服务处理请求req对象 静态资源托管托管多个资源挂载路径前缀 路由模块化 Express是Node.js上的一个第三方框架&#xff0c;可以快速开发一个web框架。本质是一个包&#xff0c;可以通过npm直接下载。 创建服务 Express创建一…

知识中台赋能法律咨询服务:八大核心优势

法律咨询服务领域&#xff0c;知识中台以其独特的功能和优势&#xff0c;为行业发展注入了新的活力。以下是知识中台在法律咨询服务中展现的八大核心优势&#xff1a; 一、法律知识资源的全面整合 知识中台致力于收集、整理和整合各类法律知识资源&#xff0c;包括法律法规、…

【青牛科技】GC5931:工业风扇驱动芯片的卓越替代者

在工业领域&#xff0c;工业风扇的稳定高效运行对于维持良好的生产环境至关重要。而驱动芯片作为工业风扇控制系统的核心元件&#xff0c;其性能直接影响风扇的工作状态。芯麦 GC5931 作为一款新型驱动芯片&#xff0c;在替代 A5931/Allegro 应用于工业风扇中展现出了非凡的优势…

使用Netty实现一个简单的聊天服务器

✅作者简介&#xff1a;热爱Java后端开发的一名学习者&#xff0c;大家可以跟我一起讨论各种问题喔。 &#x1f34e;个人主页&#xff1a;Hhzzy99 &#x1f34a;个人信条&#xff1a;坚持就是胜利&#xff01; &#x1f49e;当前专栏&#xff1a;Netty &#x1f96d;本文内容&a…

【HarmonyOS】鸿蒙应用低功耗蓝牙BLE的使用心得 (二)

【HarmonyOS】鸿蒙应用低功耗蓝牙BLE的使用心得 &#xff08;二&#xff09; 一、前言 目前鸿蒙应用的实现逻辑&#xff0c;基本都是参考和移植Android端来实现。针对BLE低功耗蓝牙来说&#xff0c;在鸿蒙化的实现过程中。我们发现了&#xff0c;鸿蒙独有的优秀点&#xff0c…

第六十三周周报 GCN-CNNGA

文章目录 week 63 GCN-CNNGA摘要Abstract1. 题目2. Abstract3. 文献解读3.1 Introduction3.2 创新点 4. 网络结构4.1 数据分析4.2 混合深度学习框架的发展4.3 Mul4.4 CNN block4.5 GCN block4.6 GRU block4.7 注意力机制4.8 模型评估标准 5. 实验结果5.1 不同邻接矩阵的性能评价…

geoserver+postgis 最短路径规划常见问题记录

一、说明 具体实现步骤可参考其他博文&#xff0c;下面的这个博主写的很详细&#xff0c;步骤很清晰&#xff0c;注释也很全。geoserverpostgis 最短路径规划_geoserver 最短路径 存储过程-CSDN博客 本次文章&#xff0c;仅记录过程中需要注意的方面。 二、数据预处理 目标&a…

石油安全理论知识题库 考试宝在线刷题

一、单选题&#xff08;每题有4个选项&#xff0c;其中只有1个是正确的&#xff0c;将正确的选项号填入括号内&#xff09; 1.新修订的《中华人民共和国安全生产法》于&#xff08; &#xff09;正式实施。 A、2014年1月1日 B、2014年12月1日 C、2015年1月1日 D、2015年…

航空标志灯技术革新:提升夜间飞行安全

航空标志灯 随着低空飞行活动的增多和新型飞行器&#xff08;如无人机、热气球和直升机&#xff09;的普及&#xff0c;地面重要设施的安全面临前所未有的挑战。因此&#xff0c;航空标志灯的安装变得尤为重要。它们通过提升城市天际线、广袤乡村、跨河桥梁及电力网络等复杂地…