好程序员大数据分享零基础学习Hadoop该如何下手

  零基础学习Hadoop该如何下手,很多同学是通过学习hadoop来学习大数据的,学习资料可能是以图书为主要参考方向,《hadoop权威指南》的确是一本很好的入门大数据图书,但大数据系统本身是分布式系统,所以我以为分布式系统的相关概念才是掌握大数据各类框架、知识的基础。

  

  1 入门:

  hadoop框架是集存储(hdfs)、计算(mr计算模型)、资源管理(yarn)等于一体的综合框架,当然它是一个历史的阶段产物,刨除此因我们来看看大家所熟知的wordcount的具体做法(mr)是什么场景下如何进行计算的?

  

  1-1 分布式系统

  首先wordcount程序放到传统单机模式下也可以处理,这里大家一定会想到多线程、文件切割等实现方式,简单来说并行计算的想法由来已久,随着硬件的不断进步、性能不断提升,多核计算也已发展多年了,与此同时这个世界产生的数据更是增长飞速,那么原来单机下多任务多线程的计算方式与其后的多核并行都遇到了一个处理速度与处理数据间严重不匹配的问题,如何提高计算能力是发展的必然,那么集群方式解决了计算资源水平扩展的能力并同时具有并行性,这是目前的核心思想,我们可以理解目前的集群(一个黑盒子)类比于传统单机方式,集群中的节点间并行计算涉及到了主从架构、集群管理、消息通讯、容错处理等等方面,然后这些都是分布式系统所要考虑和解决的问题,因为它本身就是分布式系统。

  

  1-2 分布式存储

  刚才简单提到了分布式系统,说到了计算方面,其实还有一个隐含的问题是要计算必须有数据,必然涉及到存储,所以存储才是根本,那么如何使用分布式存储系统(hdfs)就必须了解其的组成部分(如什么是块、文件系统、分布式文件系统)、使用方式(读写HDFS),但由于大部分同学都是相对熟悉关系型数据库及它的使用方式SQL,这些都是应用层面的事情具体底层的各种情况并不了解,或者没有参与数据库软件的开发、对于文件类的学习工作经验相对较少,对其中提到的文件IO操作、序列化、压缩、内置或自定义文件读写格式、读写方式有种陌生,因为hdfs本质是文件系统。

  

  1-3 分布式计算

  mr计算模型也是之前接触较少,没有具体的实际经验感受,比如mr具体能做什么、什么场景下使用等等,因为之前大家接触的是OLTP(联机事务处理【OLTP Online Transaction Processing

  

联机事务处理,表示事务性非常高的系统,一般都是高可用的在线系统,以小的事务以及小的查询为主,以传统的关系型数据库为主要应用,主要是基本的、日常的事务处理,主要为业务数据,例如银行交易)操作,而大数据起初是用来进行数据挖掘的它更多的是一个OLAP(联机分析处理【OLAP Online Analytical Processing】:

 

联机分析处理,有的时候也叫DSS决策支持系统,就是我们说的数据仓库,重点主要是面向分析,会产生大量的查询,一般很少涉及增删改。)操作,mr计算模型的map操作和reduce操作是我们经常遇到的需求,map操作负责数据清洗、转换,reduce操作负责数据聚合,同时sql里的select子句和group by子句不也对应了这类实际需求吗,只是方式方法不同而已。

 

 

进阶

 

2-1 建议以分布式系统的角度来看待大数据中的各类框架,了解下分布式理论如CAP理论、主从架构方式等等

 

2-2 当然由于这些框架所处理的不是同一方向的问题,所以我们首先框架分类,参考如下


技术架构

 

```

数据采集:flumelogstash

数据存储:hdfshbasealluxioesneo4jjanusGraphredismongodbtidb

数据计算:hiveimpalasparkflinkdruid

数据通道:kafkapulsar

任务调度:azkabanairflow

多维数据模型

数据同步:sqoopdataxcanal

数据格式:parquet orc csv json

协调服务:zookeeper

10 监控:zabbixprometheus

 

推荐

 

3.1 大数据的各类框架 官网永远是第一手资源,一定要看

 

3.2 大量的公众号、stackoverflowgithub

 

3.3 google查询资源

 


猜你喜欢

转载自blog.51cto.com/14479068/2437463