随着各行各业的数据量快速增长,无论是从对数据的存储、分析、处理和挖掘等方面提出了越来越高的要求。IT行业正在逐渐向“DT”行业转变,未来是以数据为驱动的。所以我认为大数据是未来一个主流方向,了解和学习大数据对我们以后的工作和生活都有一定帮助。

    近期我个人学习了大数据工程师微职位这门课,并且已经通过了所有的考核。下面切入正题,分享一下我的学习心得,因为篇幅关系,不涉及具体知识点。

    因为这门课是偏大数据分析的,基本上不涉及大数据组件的开发,所以这门课撇开了冗长的java课程。另外,因为涉及到大数据平台的搭建,需要一定的Linux基础,而这部分基础其实可以快速掌握,因此不需要说系统地学完一整套的Linux之后才开始学大数据。当然,如果本身有java或者oracle的基础的话,学起来是有一定的效率加成的。

    1.大数据平台搭建。我们可以重点掌握Linux的内存结构是怎么运作的,可以和jvm的特性结合起来。一些文件系统的相关命令参数要熟知,后面可以类比于HDFS。另外,Linux环境变量加载顺序和时间配置也需要掌握。

    2.MapReduce。大家可以了解它的计算框架,比如MapReduce和YARN的资源调度和处理过程是怎样的,如何去执行一个MapReduce程序,以及reducer和partitioner等等这些中间过程做了什么动作。

    3.HDFS。有必要去弄明白HDFS分布式文件系统的架构,搞清楚数据和元数据的关系以及安全模式,要去掌握一下HDFS+zookeeper实现HA的方式。hadoop集群的搭建,包括系统准备与初始化

、硬件的选择、参数配置、集群故障的诊断等,最后可以了解一下HDFS组件的优化。

    4.Hbase。可能很多企业不会具体用到Hbase,而这个要视具体场景而定。我们可以先系统的学习概念和一些基础的操作,同时了解NoSQL以及分布式数据库的数据模型以及特性,和一些典型应用场景。

    5.Flume和Kafka。流式计算我们听得比较多了,而可能并不清楚具体内容。这里我们可以去了解流式计算的计算框架,通过实例我们可以比较容易明白flume和kafka如何一起配合来实现一个应用日志实时分析系统,同时我们在学习spark streaming的时候也可以去类比和Storm/Flink真正的流式计算的区别在哪里,应用场景和各自的优缺点是什么。

    6.Hive。了解一下hive的产生动机。和传统sql语句使用上的对比。hive的函数有哪些,有哪些复杂数据类型。怎么使用hive进行查询和分析,比如创建库表,怎么将hdfs上的数据load到hive里面查看,怎么通过sqoop将mysql的数据导入到hive表中等等。需要掌握分区表怎么使用,怎么去优化和扩展hive的使用。

    7.spark。了解spark sql的出现动机,spark背后的RDD原理。单机版和集群版的部署。RDD、DataFrame和DataSet的关系以及如何演变的。可以重点关注spark程序的运行流程,包括并行处理和数据本地化的概念。最后要掌握spark性能优化的常用方法广播变量和累加器。

   8.数据科学和机器学习。这里还是需要一定的统计学、概率论、线性代数等数学基础。可以掌握机器学习里面的3C,推荐系统的原理等,如何通过spark的组件spark Mlib去辅助推荐系统等。这里你会真切感受到学好数学多么地重要...

    建议大家边学习边做笔记,要不然知识点太分散不容易记住。然后演示中的操作自己多动手实践,毕竟数据分析还要多动手才能巩固。另外,很多知识点的修行还要靠个人的持续才行,毕竟更新速度都比较快,不能完全依赖老师的讲解,最好是去多去看看官方文档,多了解新旧特性和应用场景。

    写得比较粗糙,希望能给大家的学习带来那么一点儿的助攻~最后,祝大家学习完这门课程都能有所收获~~