Hadoop的概述与安装

Hadoop的概述与安装

  • 一、Hadoop内部的三个核心组件
    • 1、HDFS:分布式文件存储系统
    • 2、YARN:分布式资源调度系统
    • 3、MapReduce:分布式离线计算框架
    • 4、Hadoop Common(了解即可)
  • 二、Hadoop技术诞生的一个生态圈
    • 数据采集存储
    • 数据清洗预处理
    • 数据统计分析
    • 数据迁移
    • 数据可视化
    • zookeeper
  • 三、主要围绕Apache的Hadoop发行版本来学习
  • 四、Hadoop的安装的四种模式
  • 五、Hadoop的伪分布安装流程
  • 六、格式化HDFS集群
  • 七、启动HDFS和YARN
  • 八、Hadoop的完全分布式安装
    • 1、克隆虚拟机
    • 2、安装JDK
    • 3、安装Hadoop完全分布式
    • 4、格式化HDFS
    • 5、启动HDFS和YARN

Hadoop技术 —— 脱自于Google的三篇论文(大数据软件一般都要求7*24小时不宕机)

把大数据中遇到的两个核心问题(海量数据的存储问题和海量数据的计算问题)全部解决了

一、Hadoop内部的三个核心组件

1、HDFS:分布式文件存储系统

分布式思想解决了海量数据的分布式存储问题

三个核心组件组成

  • NameNode:主节点
    • 存储整个HDFS集群的元数据(目录结构)
    • 管理整个HDFS集群
  • DataNode:数据节点/从节点
    • 存储数据的,DataNode以Block块的形式进行文件存储
  • SecondaryNameNode:小秘书
    • 帮助NameNode合并日志数据的(元数据)

2、YARN:分布式资源调度系统

解决分布式计算程序的资源分配以及任务监控问题

Mesos:分布式资源管理系统(YARN的替代品)

两个核心组件组成

  • ResourceManager:主节点
    • 管理整个YARN集群的,同时负责整体的资源分配
  • NodeManager:从节点
    • 真正负责进行资源提供的

3、MapReduce:分布式离线计算框架

分布式思想解决了海量数据的分布式计算问题

4、Hadoop Common(了解即可)

二、Hadoop技术诞生的一个生态圈

数据采集存储

flume、Kafka、hbase、hdfs

数据清洗预处理

MapReduce、Spark

数据统计分析

Hive、Pig

数据迁移

sqoop

数据可视化

ercharts

zookeeper

三、主要围绕Apache的Hadoop发行版本来学习

官网:https://hadoop.apache.org

apache hadoop发行版本

  • hadoop1.x
  • hadoop2.x
  • hadoop3.x
    • hadoop3.1.4

四、Hadoop的安装的四种模式

hadoop软件中HDFS和YARN是一个系统,而且是一个分布式的系统,同时他们还是一种主从架构的软件。

第一种:本地安装模式:只能使用MapReduce,HDFS、YARN均无法使用 —— 基本不用

第二种:伪分布安装模式:hdfs和yarn的主从架构软件全部安装到同一个节点上

第三种:完全分布式安装模式:hdfs和yarn的主从架构组件安装到不同的节点上

第四种:HA高可用安装模式:hdfs和yarn的主从架构组件安装到不同节点上,同时还需要把他们的主节点多安装两三个,但是在同一时刻只能有一个主节点对外提供服务 —— 借助Zookeeper软件才能实现

修改配置文件:hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-env.sh、mapred-site.xml、yarn-site.xml、yarn-env.sh、workers、log4j.properties、capacity-scheduler.xml、dfs.hosts、dfs.hosts.exclude

五、Hadoop的伪分布安装流程

1、需要在Linux上先安装JDK,Hadoop底层是基于Java开发的

  • 环境变量的配置主要有两个地方可以配置
/etc/profile:系统环境变量
~/.bash_profile:用户环境变量
环境变量配置完成必须重新加载配置文件
source  环境变量文件路径

2、配置当前主机的主机映射以及ssh免密登录

3、安装本地版本的Hadoop

  • 上传 —— 使用xftp将Windows下载好的hadoop-3.1.4.tar.gz传输到/opt/software目录下
  • 解压 —— tar -zxvf hadoop-3.1.4.tar.gz -C /opt/app
  • 配置环境变量
    • vim /etc/profile
    • export HADOOP_HOME=/opt/app/hadoop-3.1.4
      export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    • source /etc/profile

4、安装伪分布式版本的Hadoop

修改各种各样的hadoop配置文件即可

  • hadoop-env.sh 配置Java的路径
vim hadoop-env.sh
#第54行
export JAVA_HOME=/opt/app/jdk1.8.0_371
#第58行
export HADOOP_HOME=/opt/app/hadoop-3.1.4
#第68行
export HADOOP_CONF_DIR=/opt/app/hadoop-3.1.4/etc/hadoop
#最后一行
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

image-20230718210944383

  • core-site.xml 配置HDFS和YARN的一些共同的配置项
    • 配置HDFS的NameNode路径
    • 配置HDFS集群存储的文件路径
vim core-site.xml
<!--在configuration标签中增加如下配置-->
<configuration><!-- 指定HDFS中NameNode的地址 --><property><name>fs.defaultFS</name><value>hdfs://single:9000</value></property><!-- 指定hadoop运行时产生文件的存储目录  HDFS相关文件存放地址--><property><name>hadoop.tmp.dir</name><value>/opt/app/hadoop-3.1.4/metaData</value></property><!-- 整合hive 用户代理设置 --><property><name>hadoop.proxyuser.root.hosts</name><value>*</value></property><property><name>hadoop.proxyuser.root.groups</name><value>*</value></property></configuration>

image-20230822161902347

  • hdfs-site.xml 配置HDFS的相关组件
    • 配置NameNode的web访问路径、DN的web访问网站,SNN的web访问路径等等
vim hdfs-site.xml
<configuration><!-- 指定HDFS副本的数量 --><property><name>dfs.replication</name><!-- hdfs的dn存储的block的备份数--><value>1</value></property><!--hdfs取消用户权限校验--><property><name>dfs.permissions.enabled</name><value>false</value></property><property><name>dfs.namenode.http-address</name><value>0.0.0.0:9870</value>
<!-- 50070,9870--> </property><property><name>dfs.datanode.http-address</name><value>0.0.0.0:9864</value>
<!-- 50075,9864--> </property><property><name>dfs.secondary.http-address</name><value>0.0.0.0:9868</value>
<!-- 50090,9868--> </property><!--用于指定NameNode的元数据存储目录--><property><name>dfs.namenode.name.dir</name><value>/opt/app/hadoop-3.1.4/metaData/dfs/name1,/opt/app/hadoop-3.1.4/metaData/dfs/name2</value></property>
</configuration>

image-20230822192047054

  • mapred-env.sh 配置MR程序运行时的关联的软件(Java YARN)路径
vim mapred-env.sh
#最后一行
export JAVA_HOME=/opt/app/jdk1.8.0_371

image-20230718212027604

  • mapred-site.xml 配置MR程序运行环境
    • 配置将MR程序在YARN上运行
vim mapred-site.xml
<!-- 指定mr运行在yarn上 --><property><name>mapreduce.framework.name</name><value>yarn</value></property><!-- 指定MR APP Master需要用的环境变量  hadoop3.x版本必须指定--><property><name>yarn.app.mapreduce.am.env</name><value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value></property><!-- 指定MR 程序 map阶段需要用的环境变量 hadoop3.x版本必须指定--><property><name>mapreduce.map.env</name><value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value></property><!-- 指定MR程序 reduce阶段需要用的环境变量 hadoop3.x版本必须指定--><property><name>mapreduce.reduce.env</name><value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value></property>
<property><name>mapreduce.map.memory.mb</name><value>250</value>
</property>
<property><name>mapreduce.map.java.opts</name><value>-Xmx250M</value>
</property>
<property><name>mapreduce.reduce.memory.mb</name><value>300</value>
</property>
<property><name>mapreduce.reduce.java.opts</name><value>-Xmx300M</value>
</property><property><name>mapreduce.jobhistory.address</name><value>single:10020</value>
</property>
<property><name>mapreduce.jobhistory.webapp.address</name><value>single:19888</value>
</property>

image-20230718212347926

image-20230822192150660

  • yarn-env.sh 配置YARN关联的组件路径
vim  yarn-env.sh
#最后一行
export JAVA_HOME=/opt/app/jdk1.8.0_371

image-20230718212518831

  • yarn-site.xml 配置YARN的相关组件
    • 配置RM、NM的web访问路径等等
vim yarn-site.xml
<!-- reducer获取数据的方式 --><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><!-- 指定YARN的ResourceManager的地址 --><property><name>yarn.resourcemanager.hostname</name><!-- 指定yarn的RM组件安装到哪个主机上--><value>single</value></property><property><name>yarn.application.classpath</name><!-- 指定yarn软件在运行时需要的一些环境路径--><value>/opt/app/hadoop-3.1.4/etc/hadoop,/opt/app/hadoop-3.1.4/share/hadoop/common/*,/opt/app/hadoop-3.1.4/share/hadoop/common/lib/*,/opt/app/hadoop-3.1.4/share/hadoop/hdfs/*,/opt/app/hadoop-3.1.4/share/hadoop/hdfs/lib/*,/opt/app/hadoop-3.1.4/share/hadoop/mapreduce/*,/opt/app/hadoop-3.1.4/share/hadoop/mapreduce/lib/*,/opt/app/hadoop-3.1.4/share/hadoop/yarn/*,/opt/app/hadoop-3.1.4/share/hadoop/yarn/lib/*</value></property>
<!-- yarn.resourcemanager.webapp.address:指的是RM的web访问路径-->
<!-- 日志聚集功能启动 -->
<property><name>yarn.log-aggregation-enable</name><value>true</value>
</property>
<!-- 日志保留时间设置7天 -->
<property><name>yarn.log-aggregation.retain-seconds</name><value>604800</value>
</property><property><name>yarn.log.server.url</name><value>http://single:19888/jobhistory/logs</value>
</property>
<!--关闭yarn对虚拟内存的限制检查 -->
<property><name>yarn.nodemanager.vmem-check-enabled</name><value>false</value>
</property>

image-20230718212909109

image-20230822192349611

  • workers/slaves 配置HDFS和YARN的从节点的主机
    • 配置DN和NM在哪些节点上需要安装
vim workers
<!-- 将localhost改为single -->
single

image-20230718213001560

  • log4j.properties —— 配置Hadoop运行过程中日志输出目录
vim log4j.properties
#第19行
hadoop.log.dir=/opt/app/hadoop-3.1.4/logs 
#指定Hadoop运行过程中日志输出目录

image-20230719092759757

六、格式化HDFS集群

hdfs namenode -format

七、启动HDFS和YARN

  • HDFS

    • start-dfs.sh

    报错

    image-20230718213604928

    解决方案:

    vim /etc/profile
    #在最后一行加入以下内容
    # HADOOP 3.X版本还需要增加如下配置
    export HDFS_NAMENODE_USER=root
    export HDFS_DATANODE_USER=root
    export HDFS_SECONDARYNAMENODE_USER=root
    export YARN_RESOURCEMANAGER_USER=root
    export YARN_NODEMANAGER_USER=root
    #然后使配置文件生效
    source /etc/profile
    

    image-20230718213809936

    image-20230718214052308

    • stop-dfs.sh
    • 提供了一个web访问网站,可以监控整个HDFS集群的状态信息
      http://ip:9870 hadoop3.x
      ip:50070 hadoop2.x
  • yarn

    • start-yarn.sh

    image-20230718214130649

    • stop-yarn.sh
    • 提供了一个web网站,可以监控整个YARN集群的状态:
      http://ip:8088

八、Hadoop的完全分布式安装

1、克隆虚拟机

三台虚拟机需要配置IP、主机名、主机IP映射、ssh免密登录、时间服务器的安装同步、yum数据仓库更换为国内镜像源

image-20230719095947238

image-20230719095813819

image-20230719100610519

image-20230719101920020

时间服务器chrony的安装同步

yum install -y chrony

image-20230719103934985

先配置主服务器

vim /etc/chrony.conf

在第7行添加allow 192.168.31.0/24

image-20230719104240688

再配置两台从服务器

vim /etc/chrony.conf

就将3 - 6行的server删除后,添加一行server node1 iburst

image-20230719104606877

开启服务

image-20230719104959143

2、安装JDK

此处省略,如需请查看之前博客

3、安装Hadoop完全分布式

  • hdfs.site.xml
<configuration><property><name>dfs.replication</name><value>3</value></property><!--secondary namenode地址--><property><name>dfs.namenode.secondary.http-address</name><value>node3:9868</value></property><!--hdfs取消用户权限校验--><property><name>dfs.permissions.enabled</name><value>false</value>      </property><property><name>dfs.namenode.datanode.registration.ip-hostname-check</name><value>true</value></property>
</configuration>

image-20230719112153586

  • yarn.site.xml
<configuration>
<!-- reducer获取数据的方式 --><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><!-- 指定YARN的ResourceManager的地址 --><property><name>yarn.resourcemanager.hostname</name><value>node2</value></property><property><name>yarn.application.classpath</name><value>/opt/app/hadoop-3.1.4/etc/hadoop,/opt/app/hadoop-3.1.4/share/hadoop/common/*,/opt/app/hadoop-3.1.4/share/hadoop/common/lib/*,/opt/app/hadoop-3.1.4/share/hadoop/hdfs/*,/opt/app/hadoop-3.1.4/share/hadoop/hdfs/lib/*,/opt/app/hadoop-3.1.4/share/hadoop/mapreduce/*,/opt/app/hadoop-3.1.4/share/hadoop/mapreduce/lib/*,/opt/app/hadoop-3.1.4/share/hadoop/yarn/*,/opt/app/hadoop-3.1.4/share/hadoop/yarn/lib/*</value></property>
</configuration>

image-20230719112649613

  • mapred-site.xml
 <!-- 指定mr运行在yarn上 --><property><name>mapreduce.framework.name</name><value>yarn</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>

image-20230719112903402

共需配置九个相关文件

image-20230719113122255

然后将node1上的/opt/app发送到node2和node3节点上的/opt上

scp -r /opt/app root@node2:/opt

4、格式化HDFS

namenode所在节点格式化

hdfs namenode -format

5、启动HDFS和YARN

1、 HDFS是在namenode所在节点启动(node1)

2、YARN是在RM所在节点启动(node2)

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

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

相关文章

C语言:递归思想及实例详解

简介&#xff1a;在计算机科学中是指一种通过重复将问题分解为同类的子问题而解决问题的方法。通过函数的自调用化繁为简。 递归可以说是编程中最神奇的一种算法。因为我们有时候可能不能完全明晰代码的运行过程&#xff0c;但是我们却知道代码可以跑出正确的结果。而当我们使…

qt day 6

登录界面 #include "window.h" #include<QDebug> #include<QIcon> Window::Window(QWidget *parent) //构造函数的定义: QWidget(parent) //显性调用父类的构造函数 {//判断数据库对象是否包含了自己使用的数据库Student.dbif(!db.contains(&…

微波系统中散射参量S、阻抗参量Z及导纳参量Y之间的关系及MATLAB验证

微波系统中散射参量S、阻抗参量Z及导纳参量Y之间的关系及MATLAB验证 用HFSS设计了一微波元件&#xff0c;仿真出了其散射参量S、阻抗参量Z及导纳参量Y&#xff0c;用MATLAB验证他们之间的关系 HFSS设计螺旋线圈 用HFSS设计了一个螺旋线圈&#xff0c;如上图所示。 进行仿真&…

8K视频来了,8K 视频编辑的最低系统要求

当今 RED、Canon、Ikegami、Sony 等公司的 8K 摄像机以及 8K 电视&#xff0c;许多视频内容制作人和电影制作人正在认真考虑 8K 拍摄、编辑和后期处理&#xff0c;需要什么样的系统来处理如此海量的数据&#xff1f; 中央处理器&#xff08;CPU&#xff09; 首先&#xff0c;…

Spring Security安全登录的调用过程以及获取权限的调用过程

1.第一次登录时候调用/user/login整个流程分析 (0)权限授理 首先调用SecurityConfig.java中的config函数将jwtAuthenticationTokenFilter过滤器放在UsernamePasswordAuthenticationFilter之前 Override protected void configure(HttpSecurity http) throws Exception{......…

FinClip 支持创建 H5应用类小程序;PC 终端 优化升级

FinClip 的使命是使您能够通过小程序解决关键业务流程挑战&#xff0c;并完成数字化转型。不妨让我们看看本月产品与市场发布亮点&#xff0c;是否有助于您实现目标。 产品方面的相关动向&#x1f447;&#x1f447;&#x1f447; FinClip 支持创建 H5应用类小程序 近期我们…

MongoDB常用的比较符号和一些功能符号

比较符号 results collection.find({age: {$gt: 20}})功能符号 results collection.find({name: {$regex: ^M.*}})

怎么把pdf转换成高清图片?

怎么把pdf转换成高清图片&#xff1f;最近&#xff0c;我的同事遇到了一个问题&#xff0c;现在她需要将一些pdf文件转换成高清的图片&#xff0c;这件事情让让她感到非常无助&#xff0c;因为她非常着急需要将这些文件转换为图片格式&#xff0c;以便更好的在今后的工作中进行…

Ubuntu 22.04.2 LTS 安装python3.6后报错No module named ‘ufw‘

查明原因&#xff1a; vim /usr/sbin/ufw 初步判断是python版本的问题。 # 查看python3软链接 ll /usr/bin/python3 将python3的软链接从python3.6换成之前的3.10&#xff0c;根据自己电脑情况。 可以查看下 /usr/bin 下有什么 我这是python3.10 所以解决办法是 # 移除py…

工业互联网龙头企业研祥智能加入 openKylin

导读近日&#xff0c;研祥智能科技股份有限公司&#xff08;以下简称 “研祥智能”&#xff09;签署 openKylin 社区 CLA&#xff08;Contributor License Agreement 贡献者许可协议&#xff09;&#xff0c;正式加入 openKylin 开源社区。 研祥智能于 1993 年 12 月 31 日成立…

如何让insert程序速度快,可以试试联合SQL(insert 和 select 一起使用)?

查询添加可选择SQL执行&#xff0c;速度远超程序执行 insert 和 select案例 insert into 表1(列1,列2,列3,...) select 列1,列2,列3,...from表2(GROUP BY 列)116511 条数据 耗时45秒&#xff0c; 如果是程序查询然后再insert&#xff0c;则需要30分钟左右&#xff01;&#x…

Server - PyTorch BFloat16 “TypeError: Got unsupported ScalarType BFloat16“ 解决方案

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/132665807 BFloat16 类型是 16 位的浮点数格式&#xff0c;可以用来加速深度学习的计算和存储。BFloat16 类型的特点是保留 32 位浮点数&#xff…

企业级智能PDF及文档处理SDK GdPicture.NET 14.2 Crack

企业级智能PDF及文档处理SDK GdPicture.NET 提供了一组非常先进的 API&#xff0c;这些 API 利用了人工智能、机器学习和模糊逻辑算法等尖端技术。经过超过 15 年的持续研究和对创新的专注&#xff0c;我们的 SDK 已成为市场上针对PDF、OCR、条形码、文档成像和各种格式最全面的…

Apache Linkis 与 OceanBase 集成:实现数据分析速度提升

导语&#xff1a;恭喜 OceanBase 生态全景图中又添一员&#xff0c;Apache Linkis 构建了一个计算中间件层&#xff0c;以促进上层应用程序和底层数据引擎之间的连接、治理和编排。 近日&#xff0c;计算中间件 Apache Linkis 在其新版本中通过数据源功能&#xff0c;支持用户通…

行军遇到各种复杂地形怎么处理?

行军遇到各种复杂地形怎么处理&#xff1f; 【安志强趣讲《孙子兵法》第30讲】 【原文】 凡军好高而恶下&#xff0c;贵阳而贱阴&#xff0c;养生而处实&#xff0c;军无百疾&#xff0c;是谓必胜。 【注释】 阳&#xff0c;太阳能照到的地方。阴&#xff0c;太阳照不到的地方。…

华为Mate 60系列安装谷歌服务框架,安装Play商店,Google

华为Mate 60 Pro悄悄的上架。但是却震撼市场的强势登场,Mate 60系列默认搭载的就是鸿蒙4.0。那么mate 60加上4.0是否可以安装谷歌服务框架呢&#xff1f;本机到手经过测试是可以安装的&#xff0c;但是在解决play非保护机制认证还通知这个问题上,他和鸿蒙3.0是不一样的。如果我…

Flink(java版)

watermark 时间语义和 watermark 注意:数据进入flink的时间&#xff1a;如果用这个作为时间语义就不存在问题&#xff0c;但是开发中往往会用处理时间 作为时间语义这里就需要考虑延时的问题。 如上图&#xff0c;数据从kafka中获取出来&#xff0c;从多个分区中获取&#xf…

ubuntu 22.04安装cuda、cudnn、conda、pytorch

1、cuda 视频连接 https://www.bilibili.com/video/BV1bW4y197Mo/?spm_id_from333.999.0.0&vd_source3b42b36e44d271f58e90f86679d77db7cuda 11.8 https://developer.nvidia.com/cuda-toolkit-archive点击进入 https://developer.nvidia.com/cuda-11-8-0-download-arc…

gRPC-GateWay Swagger 实战

上一次我们分享了关于 gRPC-Gateway 快速实战 &#xff0c;可以查看地址来进行回顾 : 也可以查看关于 gRPC 的历史文章&#xff1a; gRPC介绍 gRPC 客户端调用服务端需要连接池吗&#xff1f; gRPC的拦截器 gRPC的认证 分享一下 gRPC- HTTP网关 I 今天主要是分享关于 gRPC-G…

Linux相关指令(下)

cat指令 查看目标文件的内容 常用选项&#xff1a; -b 对非空输出行编号 -n 对输出的所有行编号 -s 不输出多行空行 一个重要思想&#xff1a;linux下一切皆文件&#xff0c;如显示器文件&#xff0c;键盘文件 cat默认从键盘中读取数据再打印 退出可以ctrlc 输入重定向<…