被广泛关注的大数据,这几年在国内的发展,可以说是进入了比较平稳的一个时期,基本上企业对于技术开发人员的要求,都开始与大数据接轨。那么学大数据需要学哪些内容,今天我们从大数据主流技术栈开始,为大家做个简单介绍。
大数据发展速度很快,对技术的需求也在不断更新迭代,从第一代的Hadoop为王,到现在的Hadoop、Spark、Storm、Flink百花齐放,一方面是因为需求的变化,另一方面也是技术生态在不断拓展和完善。
学大数据需要学哪些内容?从就业的角度来考量,那么自然是市场要求什么,就学什么。市场主流的大数据技术栈包括——
1、数据收集层
主要由关系型和非关系型数据收集组件,分布式消息队列构成。
Sqoop/Canal:关系型数据收集和导入工具。
Flume:非关系型数据收集工具,主要是流式日志数据。
Kafka:分布式消息队列,一般作为数据总线使用。
2、数据存储层
主要由分布式文件系统(面向文件存储)和分布式数据库(面向行/列的存储)构成。
HDFS:Hadoop分布式文件系统。
Hbase:构建在HDFS之上的分布式数据库。
Kudu:介于HDFS和HBase之间的基于列式存储的分布式数据库。
3、资源管理与服务协调层
YARN:统一资源管理与调度系统,管理集群中的各种资源。
ZooKeeper:基于简化的Paxos协议实现的服务协调系统。
Mesos:类似于Yarn,也是一个分布式资源管理平台。
4、计算引擎层
主要包括批处理(时间要求低,高吞吐)、交互式处理(时间要求比较高,SQL查询)、流式实时处理(时间要求非常高)三种引擎。
MapReduce:经典的批处理计算引擎,具体良好的扩展性与容错性。
Spark:通用的DAG计算引擎,允许用户充分利用内存进行快速的数据挖掘和分析。
Impala/Presto:开源的MPP系统,允许用户使用标准的SQL处理存储在Hadoop中的数据。
Storm/Spark Streaming:分布式流式实时计算引擎,能够高效的处理流式数据。
Flink:分布式的大数据处理引擎,可以对有限数据流和无线数据流进行有状态的计算。
5、数据分析层
主要为方便用户解决大数据问题而提供的各种数据分析工具。
Hive/Pig/SparkSQL:在计算引擎之上构建的支撑SQL或者脚本语言的分析系统,大大降低了用户进行大数据分析的门槛。
Mahout/MLib:在计算引擎上构建的机器学习库,实现常用的机器学习和数据挖掘算法。
Apache Beam/Cascading:基于各类计算框架而封装的高级API,方便构建复杂的流水线。
关于学大数据需要学哪些内容,大数据主流技术栈,以上就为大家做了一个简单的介绍了。大数据在快速发展当中,主流技术栈也在不断更新迭代,作为技术开发人员,也需要保持学习能力,随时跟上技术趋势。