大数据技术一览
1 hadoop:hdfs、yarn、mapreduce、spark和hive
2 数据序列化:序列化大数据的二进制格式(Avro,Thrift,Protocol Buffers,SequenceFile)
3 列存储:RCFile、ORC、Parquet
4 消息系统:kafka
5 NoSQL:HBase、Cassandra
6 分布式SQL查询引擎:Impala、Presto、Apache Drill
Spark的技术特点
(1)使用方便,提供了各种语言的API接口,目前有Scala、Java、Python、R四种语言支持;
(2)快速:基于内存计算,减少I/O延迟,显著减少作业执行时间;有更为先进的作业执行引擎。
(3)通用:Spark为各种类型的数据处理作业提供一个统一的集成平台,可以用于批处理、交互性分析、流处理、机器学习和图计算。而Hadoop MapReduce只适合用于批处理。使用Spark,可以使用一个集成的框架来创建一个包含多个不同类型任务的数据处理流水线,不用为了多个不同类型的数据处理任务而学习不同框架或者部署单独的集群了。使用Spark,有助于降低运维的困难度,减少代码和数据的重复。
(4)可扩展:Spark集群的数据处理能力可以通过增加更多集群节点的方式得以提升。Spark的这个特性对于应用程序来说是透明的,Spark集群增加节点的时候无需改动任何代码。
(5)容错性:Spark可以自动处理集群中的节点故障(应用程序的开发者不必在应用中处理异常情况,可以简化应用程序的代码),一个节点故障可能导致性能下降但是不会导致应用程序无法运行。