大数据学习笔记——大数据学习过程中的重点

    目前大数据开发方面,市场上最主要的还是用spark做开发居多。这一点也可以从招聘网站上可以看到。整个大数据体系经过这么多年的发展,相当的繁杂,各种各样的组件,但是其中有一些已经过时了,或者用的少了,其实干脆就不用学了,免得浪费时间。下面介绍自己学习过程中的大数据重点。

1.linux

linux系统肯定是基础了,大数据集群是运行在这上面的。linux在服务器上面一般是用centos系统,还分6.x版本和7.x版本,这两个版本有一些命令是不一样的,比如在启动某个服务的命令是不一样的,写法有区别,有时候在网上查询资料,发现命令不一样,就得再看一下版本,很多时候博主是不会特别指出用的linux版本的。后面我有一篇文章会总结常用的linux命令。

2.大数据集群组件

hadoop hadoop是apache的一个大数据开源框架,主要包含hdfs、yarn、mapreduce三个组件

  • zookeeper 用做高可用集群的顶层调度,消息队列工具kafka也需要zookeeper。有了zk可以构建一个高可用的hadoop系统。
  • hdfs 分布式存储系统,数据仓库工具hive可以对hdfs上的数据进行分析和管理。
  • yarn 作业调度和集群资源管理的框架,解决资源任务调度,spark的调度任务需要用到yarn
  • mapreduce 分布式运算编程框架,解决海量数据计算,这里还要说的是,map-reduce也是一种分布式计算的思想,它的思想也很好理解,叫做分而治之。既然是一种思想,那么就不仅仅是大数据开发有,像python里面也有map和reduce的计算。其实呢,分布式为什么快,因为分布式可以并行计算,那为啥可以并行计算呢,很简单,是因为计算中有些步骤没有相互之间的依赖关系,所以你计算你的,我计算我的,这就是map,最后整合到一起,就是reduce。因为可以把计算分配到很多节点计算机中进行计算,最后再整合,所以提高了计算的效率。
  • 在大数据学习中mapreduce有很大的篇幅,其实这部分不用花很大精力,因为目前很多公司都是用spark来做计算的,spark的思想也是mapreduce,所以公司都不用了,还学怎么写mapreduce就没有什么意义了。

spark 在理解mapreduce的基础上,再来看spark就很简单了。其实spark的主要功能是用来做计算的,有的小伙伴误认为spark是第二代大数据框架,是用来替代hadoop的,其实不是的,spark只是计算框架,并没有存储和调度框架,存储和调度还是依靠hdfs和yarn完成的。那为什么spark用的更多呢?因为mapreduce的中间计算结果是保存硬盘的,spark的中间计算结果是内存的,内存的读取肯定是比硬盘更快的,这也就是为什么spark更受欢迎的原因。

3.离线计算和实时计算

大数据系统一般最后落地到产品应用上,有离线计算和实时计算。公司里面一般有各种埋点数据,日志数据,把他们整合起来,这是一个庞大的数据量,把这些数据用数据同步工具同步到大数据系统,比如hive,再通过spark计算得到结果,把结果表同步到数据库,可能是mysql,redis,hbase之类,再展示到数据可视化平台。这就是目前很多公司做的大数据业务。还有hive也有hive sql工具可以计算,但是hive sql的底层是mapreduce,速度会比较慢,所以可以用spark 来计算。实时计算也是一样的流程,只是显示的是实时的数据,一般需要加上kafka,做一个数据的缓冲。因为计算过程中不一定能处理那么多实时数据,用kafka做一个吞吐。

4.各种大数据系统组件工具

在整个离线和实时计算过程中,除了hadoop,spark框架,另外还需要很多各种工具做支持,需要用到的有以下。

  • sqoop 数据同步工具,比如MySQL同步到hive,hdfs
  • flume 日志收集工具
  • azkaban 调度工具,大数据系统需要执行各种任务,比如定时任务是最多的,需要一个调度工具
  • oozie 调度工具,oozie一般和hue一起使用。
  • hue web界面,大数据系统web端管理工具

5.各种数据库

  • mysql
  • redis
  • hbase

6.mysql语句和数据库优化

因为hive sql和spark sql 和mysql的语法是差不多的,在实际开发中需要用到。

7.cdh大数据系统

Cloudera公司开发的cdh大数据系统,有开源免费版本,因为原生版本的安装不方便,还有各个组件版本兼容,升级,学习中几个节点安装还好,生产环境中几十台几百台节点安装,然后管理是很麻烦的事情,所以这个cdh版本比较方便,很多小公司用它的免费版。

8.scala语言

spark是用scala编写的,可以用scala编程,当然也可以用pyspark编程。

以上就是学习大数据过程中的重点,可以供参考。

你可能感兴趣的:(大数据,大数据)