阅读之前看这里????:博主是正在学习数据分析的一员,博客记录的是在学习过程中一些总结,也希望和大家一起进步,在记录之时,未免存在很多疏漏和不全,如有问题,还请私聊博主指正。
博客地址:天阑之蓝的博客,学习过程中不免有困难和迷茫,希望大家都能在这学习的过程中肯定自己,超越自己,最终创造自己。
Hadoop简介
Hive是基于Hadoop的数据仓库管理工具,可以将结构化的数据文件映射为一个数据库表,并提供SQL查询功能,这种查询功能就是Hive SQL
Hadoop是现在各大公司用得比较多的一种数据存储和计算架构系统,由Apache基金会开发,它可以使用户在不了解分布式底层细节的情况下开发分布式程序,充分利用集群的威力进行高速计算和存储。
特点:Hadoop是一个能够对大量数据进行分布式处理的软件框架。具有可靠、高效、可伸缩的特点
Hadoop主要解决了两大问题:
大数据存储和大数据分析。这两个问题的解决分布依赖HDFS和MapReduce。
-
HDFS(Hadoop Distibuted FileSystem)是可扩展的、容错的、高性能的分布式文件系统,异步复制,一次写入、多次读取,主要负责存储。
HDFS以流式数据访问模式来存储超大文件,运行于商用集群上。
HDFS上的文件被划分为块大小的多个分块,作为独立的存储单元。 -
MapReduce是分布式计算框架,包含Map(映射)和Reduce(归约)过程,负责在HDFS上进行计算。
-
YARN(作业调度和集群资源管理的框架)
:负责海量数据运算时的资源调度,不同计算框架可以共享同一个HDFS集群上的数据,享受整体的资源调度
Hive SQL 相当于将SQL语句转换成对应的JAVA语句来实现Map和Reduce过程。
目前通用的方法是在Hadoop中通过Hive SQL对原始数据集进行处理,尽量在Hive中完成大数据量的计算,之后将处理好的数据通过出仓的方式导入MySQL中。这样Mysql中的数据就是在原始数据的基础上进行加工得到的数据,前端进行调用时,可以直接获取或者进行非常简单的计算。
Hadoop的优点
1.Hadoop(扩容能力):在可用的计算机集群间分配数据并完成计算任务
2.Hadoop(成本低):通过可用的计算机集群分配数据,完成存储和计算任务,这些集群可以方便地扩展到数以千计的节点中,具有高扩展性。
3.Hadoop(高效率):能够在节点之间进行动态地移动数据,并保证各个节点的动态平衡,处理速度非常快,具有高效性。
4.Hadoop(可靠性):能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配,具有高容错性。
Spark
Spark也是Apache基金会的开源项目,它由加州大学伯克利分校的实验室开发,是另外一种重要的分布式计算系统。它在Hadoop的基础上进行了一些架构上的改良。Spark与Hadoop最大的不同点在于,Hadoop使用硬盘来存储数据,而Spark使用内存来存储数据,因此Spark可以提供超过Hadoop100倍的运算速度。但是,由于内存断电后会丢失数据,Spark不能用于处理需要长期保存的数据。
Spark是一个弹性的分布式运算框架,作为一个用途广泛的大数据运算平台,Spark允许用户将数据加载到cluster集群的内存中储存,并多次重复运算,非常适合用于机器学习算法。
Spark的核心是RDD(Resilient Distributed Dataset)弹性分布式数据集,RDD能与其他系统兼容,也可以导入外部储存系统的数据集,例如HDFS、HBase或其他Hadoop数据源。
Spark在运算时,将中间产生的数据暂存在内存中,因此可以加快运行速度,Spark在内存中运行命令比Hapdoop MapReduce命令运行速度快100倍(硬盘上快10倍)。
Spark数据处理的方式主要有3种:RDD、DataFrame、Spark SQL
Spark特点:
快,相比于mapreduce
易于使用,spark 支持Java,scala,python和r语言的开发等
通用性:spark核心项目构成要素:RDD, spark SQL, Spark Streaming, MLlib
完美的兼容其他开源产品,例如hadoop
—————————————————————————————————————————————————
博主码字不易,大家关注点个赞转发再走呗 ,您的三连是激发我创作的源动力^ - ^