大数据时代,掌握大数据对于整个互联网行业,整个市场都是有革命性意义的。今天给大家介绍15种大数据分析工具,希望能对你有帮助。
1、HDFS
Hadoop分布式文件系统是专门针对商业化硬件设计的,它有很高的容错性,并可以部署在较为廉价的硬件上,还能提供高吞吐量的应用数据访问能力。对终端用户来说,HDFS是一个传统的文件系统,具有文件和目录的创建、修改、删除等常规操作。
2、Hive
Hive针对数据仓库,提供语句查询功能,让以结构化形式存储的数据映射成数据库表,可应用在多维度数据分析,和结构化数据离线分析上。Hive基于SQL的语法来定义名为HiveQL或HQL的查询语言,其支持常规的索引化和基本的数据查询,更重要的是能够将基于SQL的查询需求转化为MapReduce的作业例程。
3、Trident
Trident实时处理环境之上更高层的抽象构件,提供了状态流处理和低延迟的分布式查询功能,还针对数据库增加了更新操作的原语。它的出现减少了编写基于Storm的应用程序的代码量,因为其本身具有函数、过滤器、连接、分组和聚合功能。而且在组件上,它有Spout,将Bolt组件中实现的处理逻辑映射为新的具体操作,例如过滤、函数和分组统计等。
4、HBase
HBase是开源的,全称是Hadoop Database,是建立在HDFS之上的分布式面向列的数据库,能够针对海量结构化数据实现随机的实时访问,它的设计理念和运行模式充分利用了HDFS的高容错性,使用Hadoop体系结构中的HDFS作为基本的文件系统。它在Hadoop体系结构中的位置介于HDFS和MapReduce之间,其架构为主/从形式,内部的两个核心构件为Master和RegionServer。
5、Lambdoop
Lambdoop基于Java语言,是一个结合了实时处理和批处理的大数据应用程序开发框架。它的处理范式有三种:非实时批处理、实时流处理和混合计算模型。它实现了一个基于Lambda的体系结构,该结构为软件开发者提供了一个抽象层,使用与Lambda架构类似的方式来开发大数据相关的应用程序。使用Lambdoop来开发框架的软件开发者,在开发过程中不用处理不同技术、参数配置和数据格式等的细节问题,只需要使用必需的应用程序接口,所以很方便。
6、Sqoop
Sqoop是一个在Hadoop和关系数据库服务器之间传送数据的工具,方便大量数据的导入导出工作,支持多种类型的数据存储软件,它的核心功能为数据的导入和导出。它的另一个显著特点是可使用MapReduce将数据从传统的关系数据库导入到HDFS中。值得一提的是,Sqoop只需在一个节点上安装,安装和使用十分便捷。
7、Pig
Pig是一个面向过程的高级程序设计语言,能够分析大型数据集,并将结果表示为数据流,其内置了多种数据类型,并且支持元组、映射和包等范式。Pig有两种工作模式,Local模式和MapReduce模式。在Local模式下,Pig的运行独立于Hadoop体系结构,全部操作均在本地进行;在MapReduce模式下,Pig使用了Hadoop集群中的分布式文件系统HDFS。
8、Spark
Spark是一个针对大数据的分布式计算框架,可以用来构建大规模、低延迟的数据处理应用程序。Spark的特点是能够在内存中进行计算,与MapReduce兼容。总之,Spark具有以下四个特点:速度、简易、通用和兼容。
9、Spark Streaming
Spark Streaming是Spark的组成部分,主要针对流计算任务,其能够与Spark的其他构件很好地进行协作。一般来说,大数据的处理有两类方式:批处理和流计算。
对于批处理,任务执行的对象是预先保存好的数据,其任务频率可以是每小时一次,每十小时一次,也可以是每二十四小时一次。批处理的典型工具有Spark和MapReduce。
对于流处理,任务执行的对象是实时到达的、源源不断的数据流。换言之,只要有数据到达,那么就一直保持处理。流处理的典型工具有Kafka和Storm。
10、Shark
作为一个面向大规模数据的数据仓库工具,Shark是基于Hive代码开发的。Shark支持Hive包含的查询语言、元存储、序列化格式及自定义函数。其中,Shark SQL是基于Spark的一个组件,提供了针对结构化数据的便捷操作,统一了结构化查询语言与命令式语言。
11、MapReduce
MapReduce是Hadoop体系结构中极为重要的核心构件之一。总体来说,MapReduce具有开发难度低、扩展性强和容错性高三个特点。不过,由于大数据的规模限制,MapReduce的作业例程的执行时间为分钟级,随着数据量的增加,很经常会耗时若干天。
12、Kestrel
Kestrel是由推特开发的开源中间件,很轻量,使用的编程语言为Scala。为改善性能,Kestrel中的队列存储在内存中,队列的操作日志保存在硬盘中。Kestrel有丰富的配置选项,能便捷地组成集群,集群中的节点互相之间透明,针对队列中消息获取的GET协议支持阻塞获取和可靠获取。
13、Flume
Flume能够支持分布式海量日志的采集、集成与传输,以实时的方式从数据发送方获取数据,并传输给数据接收方。它有两个优秀的特点:可靠性和可扩展性,因此Flume可以将数据便捷地转交给Hadoop体系结构。
14、Kafka
Kafka是一个分布式流处理平台,使用的编程语言是Java和Scala,它支持分区和副本,针对消息队列进行处理,消息传送功能包含连接服务、消息的路由、传送、持久性、安全性和日志记录。
15、Storm
Storm是使用Java和Clojure编写而成的分布式实时处理系统,主要功能是针对持续产生的数据流进行计算,进而弥补了Hadoop体系结构对实时性支持的缺失。它的处理速度快,具有良好的可扩展性和容错性,其所处理的数据位于内存中。
15种大数据分析工具你收藏了吗?如果还有什么想要了解的,或者你有其他的好用的工具,可以在下方评论留言和大家一起探讨~
领取专属 10元无门槛券
私享最新 技术干货