Hadoop 生态圈组件介绍
- HDFS(Hadoop分布式文件系统):HDFS是Hadoop的核心组件之一,它是一个可靠且高容错性的分布式文件系统。它将大文件切分成多个块,并将这些块分布式存储在Hadoop集群的多个节点上。
- MapReduce:MapReduce是Hadoop的另一个核心组件,它是一种用于大规模数据处理的编程模型和计算框架。MapReduce将任务分解为Map和Reduce两个阶段,通过并行计算和数据分来实现高效的数据处理。
- YARN(Yet Another Resource Negotiator):YARN是Hadoop的资源管理系统,它负责集群资源的管理和任务调度。YARN可以有效地管理集群中的计算资源,并为不同的应用程序提供资源隔离和调度功能。
- Hive:Hive是一个基于Hadoop的数据仓库工具,它提供了类似于SQL的查询语言(HiveQL)来进行数据分析和查询。Hive将查询转换为MapReduce任务来执行,使得用户可以使用熟悉的SQL语法进行数据分析。
- Pig:Pig是另一个基于Hadoop的数据分析工具,它提供了一种脚本语言(Pig Latin)来进行数据处理和分析。Pig将脚本转换为MapReduce任务来执行,使得用户可以通过编写简单的脚本来实现复杂的数据处理逻辑。
- HBase:HBase是一个分布式的、面向列的NoSQL数据库,它可以在Hadoop集群上提供实时读写访问大规模数据。HBase适用于需要快速随机访问大量结构化数据的场景。
- Spark:Spark是一个快速、通用的大数据处理引擎,它提供了比MapReduce更高级别的API和丰富的库,支持批处理、交互式查询、流处理和机器学习等多种数据处理任务。
- ZooKeeper:ZooKeeper是一个分布式协调服务,它提供了高可用性和一致性的分布式应用程序协调功能。ZooKeeper可以用于管理和协调Hadoop集群中的各个组件。
重点介绍mapreduce概述
MapReduce是一种用于处理大规模数据集的编程模型和算法。它由Google公司提出,并被广泛应用于分布式计算领域。MapReduce的核心思想是将大规模数据集分解成小的数据块,然后通过两个阶段的操作来处理这些数据块:Map和Reduce。
在Map阶段,输入数据被映射为一系列键值对,然后通过用户定义的Map函数进行处理。Map函数将每个键值对转换为零个或多个中间键值对。
在Reduce阶段,中间键值对被按照键进行分组,并通过用户定义的Reduce函数进行处理。Reduce函数将每个键及其相关的值转换为最终的输出结果。
MapReduce的优势在于它能够自动处理并行化、容错和负载均衡等问题,使得开发者可以方便地编写并行化的程序来处理大规模数据集。同时,MapReduce还提供了一些辅助函数和机制,如排序、分区和合并等,以帮助开发者更好地处理数据。
总结一下,MapReduce是一种用于处理大规模数据集的编程模型和算法,它通过Map和Reduce两个阶段的操作来处理数据,并具有自动处理并行化、容错和负载均衡等优势。
重点介绍spark技术特点和概述
1.spark是继Hadoop的MapReduce之后,最具影响的大数据框架之一。
Spark生态系统是以Spark core(RDD)为核心提供计算框架。Spark最核心的数据结构只有一种:RDD(Resilient Distributed Dataset,弹性分布式数据集),从API上来说,它和普通集合几乎完全相同,但是它却抽象了分布式文件系统中的文件,可以说RDD是一个分布式的集合。
微批的流计算。Spark Streaming将流式计算分解成一系列短小的批处理计算,并且提供高可靠和吞吐量服务。
Spark是主从架构,如下图是spark高层次的架构抽象。
在Spark的架构中,Driver主要负责作业调度工作,Executor主要负责执行具体的作业计算任务,ClusterManager主要负责资源管理和调度。
对比mapreduce和spark的区别
1.spark处理数据是基于内存的,而MapReduce是基于磁盘处理数据的。
MapReduce是将中间结果保存到磁盘中,减少了内存占用,牺牲了计算性能。
Spark是将计算的中间结果保存到内存中,可以反复利用,提高了处理数据的性能。
2.Spark在处理数据时构建了DAG有向无环图,减少了shuffle和数据落地磁盘的次数
Spark 计算比 MapReduce 快的根本原因在于 DAG 计算模型。一般而言,DAG 相比MapReduce 在大多数情况下可以减少 shuffle 次数。Spark 的 DAGScheduler 相当于一个改进版的 MapReduce,如果计算不涉及与其他节点进行数据交换,Spark 可以在内存中一次性完成这些操作,也就是中间结果无须落盘,减少了磁盘 IO 的操作。但是,如果计算过程中涉及数据交换,Spark 也是会把 shuffle 的数据写磁盘的!有一个误区,Spark 是基于内存的计算,所以快,这不是主要原因,要对数据做计算,必然得加载到内存,Hadoop 也是如此,只不过 Spark 支持将需要反复用到的数据给 Cache 到内存中,减少数据加载耗时,所以 Spark 跑机器学习算法比较在行(需要对数据进行反复迭代)
3.Spark是粗粒度资源申请,而MapReduce是细粒度资源申请
粗粒度申请资源指的是在提交资源时,spark会提前向资源管理器(yarn,mess)将资源申请完毕,如果申请不到资源就等待,如果申请到就运行task任务,而不需要task再去申请资源。
MapReduce是细粒度申请资源,提交任务,task自己申请资源自己运行程序,自己释放资源,虽然资源能够充分利用,但是这样任务运行的很慢。
结构化数据与非结构化数据是什么
结构化数据:即行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据。
非结构化数据:不方便用数据库二维逻辑表来表现的数据,包括所有格式的办公文档、文本、图片、XML、HTML、各类报表、图像和音频/视频信息等等。
总结
数据举例特点优点缺点使用场景结构化数据Excel,mysql二维形式的数据方便查询和修改不易扩展字段特征较固定半结构化数据XML,JSON,html包含元数据信息扩展性很好易于归档非结构化数据word,txt,img,video不规范的数据格式多样大量存储与共享
Linux简单操作命令实训练习
**1. **文件与目录操作
命令
格式
含义
pwd
pwd
显示当前所在目录。
ls
ls [选项] [文件|目录]
显示指定目录中的文件或子目录信息。
cd
cd <路径>
切换当前用户所在的工作目录。
mkdir
mkdir [选项] 目录
创建目录。
rm
rm [选项] <文件>
删除文件或目录。
cp
cp [选项] <文件> <目标文件>
复制文件或目录。
mv
mv [选项] <文件> <目标文件>
移动文件或对其改名。
cat
cat [选项] [文件]
查看文件内容。
tar
tar [选项] [档案名] [文件或目录]
为文件和目录创建档案。
**2. **用户操作
命令
格式
含义
useradd
useradd用户名
创建新用户。
passwd
passwd用户名
设置或修改指定用户的口令。
chown
chown [选项]
将文件或目录的拥有者改为指定的用户或组。
chmod
chmod [-R] 模式 文件或目录
修改文件或目录的访问权限。
模式为文件或目录的权限表示,有三种表示方法:
(1)数字表示
(2)字符赋值
(3)字符加减权限
su
su [-] 用户名
将当前操作员的身份切换到指定用户。
sudo
sudo命令
让普通用户执行需要特殊权限的命令。
版权归原作者 程序员VS 所有, 如有侵权,请联系我们删除。