HADOOP-3.2.2安装

news2024/12/22 18:51:10

HADOOP-3.2.2安装

  • 一. 准备工作
  • 二.安装阶段
    • 1. 创建安装目录并安装解压包
    • 2.修改配置文件core-site.xml
    • 3. 修改hdfs-site.xml
    • 4. 修改修改yarn-site.xml
    • 5.修改workers文件
    • 6.修改hadoop-env.sh
    • 7.修改mapred-site.xml
    • 8.递归创建目录
    • 9.分发文件
  • 三.运行阶段
    • 1.启动hdfs
    • 2.启动yarn
    • 3.启动jobHistory
  • 四.检查阶段
    • 1.hdfs检查
    • 2.yarn检查
    • 3.历史任务的查看
  • 五.DEMO测试
  • 六.补充点

一. 准备工作

zookeeper集群安装

从官网下载hadoop-3.2.2.tar.gz

地址:https://hadoop.apache.org/release/3.2.2.html

在这里插入图片描述
集群规划
在这里插入图片描述

二.安装阶段

1. 创建安装目录并安装解压包

上传安装hadoop-3.2.2.tar.gz 包

解压到安装目录(我用的普通用户)

#解压文件
 tar -zxvf hadoop-3.2.2.tar.gz -C /app/install

2.修改配置文件core-site.xml

cd /app/intall/hadoop-3.2.2/etc/hadoop
vi /core-site.xml
<configuration>
<!-- 指定NameNode的HA高可用的zk地址  -->
	<property>
		<name>ha.zookeeper.quorum</name>
		<value>node1:2181,node2:2181,node3:2181</value>
	</property>
 <!-- 指定HDFS访问的域名地址  -->
	<property>
		<name>fs.defaultFS</name>
		<value>hdfs://ns</value>
	</property>
 <!-- 临时文件存储目录  -->
	<property>
		<name>hadoop.tmp.dir</name>
		<value>/app/install/hadoop-3.2.2/data/tmp</value>
	</property>
	 <!-- 开启hdfs垃圾箱机制,指定垃圾箱中的文件七天之后就彻底删掉
			单位为分钟
	 -->
	<property>
		<name>fs.trash.interval</name>
		<value>10080</value>
	</property>
</configuration>

3. 修改hdfs-site.xml

cd /home/hadoop-3.2.2/etc/hadoop
vi /hdfs-site.xml
<configuration>
<!--  指定命名空间  -->
	<property>
		<name>dfs.nameservices</name>
		<value>ns</value>
	</property>
<!--  指定该命名空间下的两个机器作为我们的NameNode  -->
	<property>
		<name>dfs.ha.namenodes.ns</name>
		<value>nn1,nn2</value>
	</property>

	<!-- 配置第一台服务器的namenode通信地址  -->
	<property>
		<name>dfs.namenode.rpc-address.ns.nn1</name>
		<value>node1:8020</value>
	</property>
	<!--  配置第二台服务器的namenode通信地址  -->
	<property>
		<name>dfs.namenode.rpc-address.ns.nn2</name>
		<value>node2:8020</value>
	</property>
	<!-- 所有从节点之间相互通信端口地址 -->
	<property>
		<name>dfs.namenode.servicerpc-address.ns.nn1</name>
		<value>node1:8022</value>
	</property>
	<!-- 所有从节点之间相互通信端口地址 -->
	<property>
		<name>dfs.namenode.servicerpc-address.ns.nn2</name>
		<value>node2:8022</value>
	</property>
	
	<!-- 第一台服务器namenode的web访问地址  -->
	<property>
		<name>dfs.namenode.http-address.ns.nn1</name>
		<value>node1:50070</value>
	</property>
	<!-- 第二台服务器namenode的web访问地址  -->
	<property>
		<name>dfs.namenode.http-address.ns.nn2</name>
		<value>node2:50070</value>
	</property>
	
	<!-- journalNode的访问地址,注意这个地址一定要配置 -->
	<property>
		<name>dfs.namenode.shared.edits.dir</name>
		<value>qjournal://node1:8485;node2:8485;node3:8485/ns1</value>
	</property>
	<!--  指定故障自动恢复使用的哪个java类 -->
	<property>
		<name>dfs.client.failover.proxy.provider.ns</name>
		<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
	</property>
	
	<!-- 故障转移使用的哪种通信机制 -->
	<property>
		<name>dfs.ha.fencing.methods</name>
		<value>sshfence</value>
	</property>
	
	<!-- 指定通信使用的公钥  -->
	<property>
		<name>dfs.ha.fencing.ssh.private-key-files</name>
		<value>/root/.ssh/id_rsa</value>
	</property>
	<!-- journalNode数据存放地址  -->
	<property>
		<name>dfs.journalnode.edits.dir</name>
		<value>/app/install/hadoop-3.2.2/data/dfs/jn</value>
	</property>
	<!-- 启用自动故障恢复功能 -->
	<property>
		<name>dfs.ha.automatic-failover.enabled</name>
		<value>true</value>
	</property>
	<!-- namenode产生的文件存放路径 -->
	<property>
		<name>dfs.namenode.name.dir</name>
		<value>file:///app/install/hadoop-3.2.2/data/dfs/nn/name</value>
	</property>
	<!-- edits产生的文件存放路径 -->
	<property>
		<name>dfs.namenode.edits.dir</name>
		<value>file:app/install/hadoop-3.2.2/data/dfs/nn/edits</value>
	</property>
	<!-- dataNode文件存放路径 -->
	<property>
		<name>dfs.datanode.data.dir</name>
		<value>file:///app/install/hadoop-3.2.2/data/dfs/dn</value>
	</property>
	<!-- 关闭hdfs的文件权限 -->
	<property>
		<name>dfs.permissions</name>
		<value>false</value>
	</property>
	<!-- 指定block文件块的大小 -->
	<property>
		<name>dfs.blocksize</name>
		<value>134217728</value>
	</property>
</configuration>

4. 修改修改yarn-site.xml

cd /home/hadoop-3.2.2/etc/hadoop
vi /yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<!-- 是否启用日志聚合.应用程序完成后,日志汇总收集每个容器的日志,这些日志移动到文件系统,例如HDFS. -->
<!-- 用户可以通过配置"yarn.nodemanager.remote-app-log-dir"、"yarn.nodemanager.remote-app-log-dir-suffix"来确定日志移动到的位置 -->
<!-- 用户可以通过应用程序时间服务器访问日志 -->

<!-- 启用日志聚合功能,应用程序完成后,收集各个节点的日志到一起便于查看 -->
        <property>
                        <name>yarn.log-aggregation-enable</name>
                        <value>true</value>
        </property>


<!--开启resource manager HA,默认为false-->
<property>
        <name>yarn.resourcemanager.ha.enabled</name>
        <value>true</value>
</property>
<!-- 集群的Id,使用该值确保RM不会做为其它集群的active -->
<property>
        <name>yarn.resourcemanager.cluster-id</name>
        <value>mycluster</value>
</property>
<!--配置resource manager  命名-->
<property>
        <name>yarn.resourcemanager.ha.rm-ids</name>
        <value>rm1,rm2</value>
</property>
<!-- 配置第一台机器的resourceManager -->
<property>
        <name>yarn.resourcemanager.hostname.rm1</name>
        <value>node3</value>
</property>
<!-- 配置第二台机器的resourceManager -->
<property>
        <name>yarn.resourcemanager.hostname.rm2</name>
        <value>node2</value>
</property>

<!-- 配置第一台机器的resourceManager通信地址 -->
<property>
        <name>yarn.resourcemanager.address.rm1</name>
        <value>node3:8032</value>
</property>
<property>
        <name>yarn.resourcemanager.scheduler.address.rm1</name>
        <value>node3:8030</value>
</property>
<property>
        <name>yarn.resourcemanager.resource-tracker.address.rm1</name>
        <value>node3:8031</value>
</property>
<property>
        <name>yarn.resourcemanager.admin.address.rm1</name>
        <value>node3:8033</value>
</property>
<property>
        <name>yarn.resourcemanager.webapp.address.rm1</name>
        <value>node3:8088</value>
</property>

<!-- 配置第二台机器的resourceManager通信地址 -->
<property>
        <name>yarn.resourcemanager.address.rm2</name>
        <value>node2:8032</value>
</property>
<property>
        <name>yarn.resourcemanager.scheduler.address.rm2</name>
        <value>node2:8030</value>
</property>
<property>
        <name>yarn.resourcemanager.resource-tracker.address.rm2</name>
        <value>node2:8031</value>
</property>
<property>
        <name>yarn.resourcemanager.admin.address.rm2</name>
        <value>node2:8033</value>
</property>
<property>
        <name>yarn.resourcemanager.webapp.address.rm2</name>
        <value>node2:8088</value>
</property>
<!--开启resourcemanager自动恢复功能-->
<property>
        <name>yarn.resourcemanager.recovery.enabled</name>
        <value>true</value>
</property>
<!--在node3上配置rm1,在node2上配置rm2,注意:一般都喜欢把配置好的文件远程复制到其它机器上,但这个在YARN的另一个机器上一定要修改,其他机器上不配置此项-->
        <property>
                <name>yarn.resourcemanager.ha.id</name>
                <value>rm1</value>
       <description>If we want to launch more than one RM in single node, we need this configuration</description>
        </property>

           <!--用于持久存储的类。尝试开启-->
<property>
        <name>yarn.resourcemanager.store.class</name>
        <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
</property>
<property>
        <name>yarn.resourcemanager.zk-address</name>
        <value>node2:2181,node3:2181,node1:2181</value>
        <description>For multiple zk services, separate them with comma</description>
</property>
<!--开启resourcemanager故障自动切换,指定机器-->
<property>
        <name>yarn.resourcemanager.ha.automatic-failover.enabled</name>
        <value>true</value>
        <description>Enable automatic failover; By default, it is enabled only when HA is enabled.</description>
</property>
<property>
        <name>yarn.client.failover-proxy-provider</name>
        <value>org.apache.hadoop.yarn.client.ConfiguredRMFailoverProxyProvider</value>
</property>
<!-- 允许分配给一个任务最大的CPU核数,默认是8 -->
<property>
        <name>yarn.nodemanager.resource.cpu-vcores</name>
        <value>4</value>
</property>
<!-- 每个节点可用内存,单位MB -->
<property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>32768</value>
</property>
<!-- 单个任务可申请最少内存,默认1024MB -->
<property>
        <name>yarn.scheduler.minimum-allocation-mb</name>
        <value>1024</value>
</property>
<!-- 单个任务可申请最大内存,默认8192MB -->
<property>
        <name>yarn.scheduler.maximum-allocation-mb</name>
        <value>16384</value>
</property>
<!--多长时间聚合删除一次日志 此处-->
<property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>2592000</value><!--30 day-->
</property>
<!--时间在几秒钟内保留用户日志。只适用于如果日志聚合是禁用的-->
<property>
        <name>yarn.nodemanager.log.retain-seconds</name>
        <value>604800</value><!--7 day-->
</property>
<!--指定文件压缩类型用于压缩汇总日志-->
<property>
        <name>yarn.nodemanager.log-aggregation.compression-type</name>
        <value>gz</value>
</property>
<!-- nodemanager本地文件存储目录-->
<property>
        <name>yarn.nodemanager.local-dirs</name>
        <value>/app/install/hadoop-3.2.2/data/yarn/local</value>
</property>
<!-- resourceManager  保存最大的任务完成个数 -->
<property>
        <name>yarn.resourcemanager.max-completed-applications</name>
        <value>1000</value>
</property>
<!-- 逗号隔开的服务列表,列表名称应该只包含a-zA-Z0-9_,不能以数字开始-->
<property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
</property>

<!--rm失联后重新链接的时间-->
<property>
        <name>yarn.resourcemanager.connect.retry-interval.ms</name>
        <value>2000</value>
</property>
</configuration>


5.修改workers文件

(老版本叫slave文件)

cd /app/install/hadoop-3.2.2/etc/hadoop
vi workers
node1
node2
node3

6.修改hadoop-env.sh

cd /home/hadoop-3.2.2/etc/hadoop
vi hadoop-env.sh
export JAVA_HOME=/app/install/jdk-11.0.2

7.修改mapred-site.xml

cd /home/hadoop-3.2.2/etc/hadoop
vi /mapred-site.xml

<configuration>
<!-- 设置MR程序默认运行模式: yarn集群模式 local本地模式 -->

<property>

 <name>mapreduce.framework.name</name>

 <value>yarn</value>

</property>



<!-- MR程序历史服务器端地址 -->

<property>

 <name>mapreduce.jobhistory.address</name>

 <value>node1:10020</value>

</property>

 

<!-- 历史服务器web端地址 -->

<property>

 <name>mapreduce.jobhistory.webapp.address</name>

 <value>node1:19888</value>

</property>



<property>

 <name>yarn.app.mapreduce.am.env</name>

 <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>

</property>



<property>

 <name>mapreduce.map.env</name>

 <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>

</property>



<property>

 <name>mapreduce.reduce.env</name>

 <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>

</property>
</configuration>

8.递归创建目录

mkdir -p /app/install/hadoop-3.2.2/data/dfs/nn/name
mkdir -p /app/install/hadoop-3.2.2/data/dfs/nn/edits

9.分发文件

cd /app/install
scp -r hadoop-3.2.2/ node2:$PWD
scp -r hadoop-3.2.2/ node3:$PWD

三.运行阶段

1.启动hdfs

cd /app/intsall/hadoop-3.2.2

# 启动 journalnode
sbin/hadoop-daemons.sh start journalnode
# 因为是daemons所以启动的是JournalNode集群

# 格式化 namenode
bin/hdfs namenode -format
# bin/hdfs namenode -initializeSharedEdits -force

#因为有两个namenode,所以要把格式化后的NameNode data文件拷贝到node2上
scp data node2:$PWD

启动zkfc
bin/hdfs zkfc -formatZK

# 启动hdfs
sbin/start-dfs.sh


2.启动yarn

因为我们的node2和node3部署的是resourmanager

所以我们在node3上

cd /app/install/hadoop-3.2.2/etc/hadoop
sbin/start-yarn.sh

3.启动jobHistory

在node3上执行

cd /home/hadoop-3.2.2/etc/hadoop
sbin/mr-jobhistory-daemon.sh start historyserver

四.检查阶段

1.hdfs检查

主节点hdfs
http://node1:50070/dfshealth.html#tab-datanode
备用节点hdfs
http://node2:50070/dfshealth.html#tab-datanode

2.yarn检查

http://node3/cluster

3.历史任务的查看

http://node3/jobhistory

五.DEMO测试

cd /app/install/hadoop-3.2.2/share/hadoop/mapreduce

hadoop jar hadoop-mapreduce-examples-3.2.2.jar pi 5 5


在这里插入图片描述

六.补充点

在命令行输入hadoop version,发现没有此命令,是因为环境变量没有配

此时我们修改用户变量

vim ~/.bashrc

#添加
export HADOOP_HOME=/app/install/hadoop-3.3.3
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

# wq保存退出
# 刷新配置
source ~/.bashrc

# 重新输入命令,就可以了
hadoop version

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

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

相关文章

F280049C Crossbar X-BAR

文章目录X-BAR9.1 输入X-BAR9.2 ePWM、CLB和GPIO输出X-BAR9.2.1 ePWM X-BAR9.2.1.1 ePWM X-BAR架构9.2.2 CLB X-BAR9.2.2.1 CLB X-BAR架构9.2.3 GPIO输出X-BAR9.2.3.1 GPIO输出X-BAR架构9.2.4 X-BAR标志总结X-BAR 交叉开关&#xff08;在本章中称为X-BAR&#xff09;提供了以各…

一年风雨几度寒,一杯浊酒敬虎年

我是谁大家好&#xff0c;我是凡夫贩夫&#xff0c;真实姓名不值一提&#xff0c;我的履历也很不值一提&#xff0c;非名校非大厂非专家&#xff0c;一名三非野生java开发者&#xff0c;现居住地河南郑州&#xff0c;就职于一家外包公司。的确&#xff0c;我是一个普通人&#…

(02)Cartographer源码无死角解析-(46) 2D栅格地图→CastRay()函数与贝汉明(Bresenham)算法

讲解关于slam一系列文章汇总链接:史上最全slam从零开始&#xff0c;针对于本栏目讲解(02)Cartographer源码无死角解析-链接如下: (02)Cartographer源码无死角解析- (00)目录_最新无死角讲解&#xff1a;https://blog.csdn.net/weixin_43013761/article/details/127350885 文末…

PCB设计完成后,为什么经常要拼版及拼版注意事项

通常我们在完成PCB设计的时候&#xff0c;有一些板子我们通常是需要进行拼版的&#xff0c;那么我们为什么要拼版&#xff0c;哪种情况下需要拼版呢&#xff1f;不拼是否可以呢&#xff1f;1、PCB生产制作尺寸要求 一般来说面积比较小的板子我们是需要进行拼版&#xff0c;一般…

MATLAB APP 设计实践(一)UART通信(下篇)

引言上篇介绍了 MATLAB App 的基本内容&#xff0c;本篇就结合UART发送数据的具体案例介绍开发过程。文末给出设计源文件、设计的可执行文件的下载链接&#xff0c;以及App的实际使用视频&#xff08;与FPGA开发板进行调试验证&#xff09;。前文链接&#xff1a;MATLAB APP 设…

MySQL 分区(innode引擎的讲解)

目录 一.InnoDB逻辑存储结构 段 区 页 二.分区概述 分区 三.分区类型 一.InnoDB逻辑存储结构 首先要先介绍一下InnoDB逻辑存储结构和区的概念&#xff0c;它的所有数据都被逻辑地存放在表空间&#xff0c;表空间又由段&#xff0c;区&#xff0c;页组成。 段 段就是…

【Python】sklearn机器学习之层次聚类算法AgglomerativeClustering

文章目录基本原理绘图层次定义距离基本原理 和Birch聚类相似&#xff0c;层次聚类也是一种依赖树结构实现的聚类方法&#xff0c;其核心概念是相似度。根据相似度&#xff0c;可以将所有样本组织起来&#xff0c;从而构建一棵层次聚类树。 其中Birch算法的核心&#xff0c;叫…

MyBatis【多表查询与动态SQL使用】

MyBatis【多表查询与动态SQL使用】&#x1f34e;一.MyBatis多表查询&#x1f352;1.1 一对一查询&#x1f352;1.2 一对多查询&#x1f34e;二.动态SQL使用&#x1f352;2.1 if 标签使用&#x1f352;2.2 trim 标签使用&#x1f352;2.3 where 标签使用&#x1f352;2.4 set 标…

ARX测试_绘制道路横断面

本文迁移自本人网易博客&#xff0c;写于2011年1月12日&#xff0c;ARX测试_绘制道路横断面 - lysygyy的日志 - 网易博客 (163.com)1、已提供道路的图形&#xff0c;获取用户输入的两点&#xff0c;并在两点间画一条虚线。计算这条直线与多少条直线相交&#xff0c;若数量不等于…

振弦采集模块多通道专用寄存器

振弦采集模块多通道专用寄存器 多通道频率、温度值寄存器 51~58&#xff08; 0x33~0x3A&#xff09; 位 符号 值 描述 默认值 bit15:0 频率/温度值 0 单通道模块时&#xff0c;寄存器 51 内为频率值&#xff0c;寄存器 55 内为温度值 4 通道模块时&#xff0c;寄存器 51~54 内…

如何去学习PMP考试的《PMBOK》

首先&#xff0c;是PMP考试的核心教材&#xff1a;《PMBOK指南》&#xff0c;目前已经出道第七版了&#xff0c;大家如果有备考的需要要赶紧买一本来学习。 其次&#xff0c;是《汪博士解读PMP》&#xff0c;目前出到第6版&#xff0c;这本书是对PMBOK中各领域知识点的深入浅出…

机械臂速成小指南(二十一):几何雅可比矩阵

&#x1f468;‍&#x1f3eb;&#x1f970;&#x1f973;需要机械臂相关资源的同学可以在评论区中留言哦&#x1f916;&#x1f63d;&#x1f984;指南目录&#x1f4d6;&#xff1a;&#x1f389;&#x1f389;机械臂速成小指南&#xff08;零点五&#xff09;&#xff1a;机…

煤矿皮带跑偏撕裂智能检测算法 opencv

煤矿皮带跑偏撕裂智能检测算法能够通过pythonopencv深度学习技术实时监测运输皮带的状况&#xff0c;当监测到皮带出现撕裂跑偏时&#xff0c;立刻抓拍告警并中止皮带的运输。OpenCV基于C实现&#xff0c;同时提供python, Ruby, Matlab等语言的接口。OpenCV-Python是OpenCV的Py…

动态博客系统

Halo 是我折腾过的众多博客系统里面&#xff0c;最好、最容易上手的动态博客系统之一&#xff08; solo 也是&#xff09;&#xff0c;轻快&#xff0c;简洁&#xff0c;功能强大。 正文 上周末正在募集团队一起写算法题&#xff0c;群里讨论需要一个网站来存放文章&#xff…

C++ 语法基础课 习题6 —— 函数

文章目录例题1. 804.n的阶乘2. 805.x和y的最大值3. 808.最大公约数4. 811.交换数值5. 812.打印数字6. 813.打印矩阵7. 819.递归求阶乘8. 820.递归求斐波那契数列例题 1. 804.n的阶乘 Acwing 804.n的阶乘 #include<iostream> using namespace std;int fact(int n) {if(…

MFC高级控件RichEdit2.0的使用

MFC高级控件RichEdit的使用MFC高级控件RichEdit的使用MFC控件设置焦点&#xff0c;实现回车后编辑框内容清空&#xff0c;焦点停留在该编辑框内MFC高级控件RichEdit的使用 RichEdit控件&#xff0c;可以设置编辑框内不同的行、不同的段落有不同的字体、颜色。 效果如下&#xf…

Python--文件基本操作

文件的存储方式 在计算机中&#xff0c;文件是以 二进制的方式保存在磁盘上的 文本文件和二进制文件 文本文件 可以使用文本编辑软件查看本质上还是二进制文件二进制文件 保存的内容 不是给人直接阅读的&#xff0c;而是提供给其它软件使用的二进制文件不能使用 文件编辑软件…

NTN(一) 基本架构

R17将NTN纳入了3GPP规范&#xff0c;NTN是 non-terrestrial networks非地面网络缩写&#xff0c;通过卫星或无人机平台实现NR通信&#xff0c;在地面网络设备无法普及的地方&#xff0c;采用NTN覆盖&#xff0c;进一步提升覆盖范围。例如在沙漠、海洋等极限区域&#xff0c;采用…

TCP协议

TCP&#xff08;Transmission Control Protocol&#xff0c;传输控制协议&#xff09; TCP-数据格式 数据偏移 占4位&#xff0c;取值范围是0x0101~0x1111乘以4就是首部长度&#xff08;Header Length&#xff09; 保留 占6位&#xff0c;目前全为0 有些资料中&#xff0c…

虚幻C++ 关于怎么打印日志

虚幻C 关于怎么打印日志 先打开日志窗口认识一下! 这个就是日志窗口了&#xff01; 可以对信息进行过滤&#xff01; 也可以只显示某种日志&#xff01; 认识完界面了&#xff01;开始写代码啦&#xff01; 老规矩&#xff0c;先给一个入口函数&#xff01; #include &qu…