hadoop学习之路hadoop---大数据两类典型的开发流程

hadoop是一个各种软件库组成的框架,每个软件库负责Hadoop一部分功能。一开始就学习这些组件的理论知识,是相当乏味的。先以两个典型的开发流程来描述各个组件的所处的位置以及实现的功能。
大数据离线计算典型流程一:
hadoop学习之路hadoop---大数据两类典型的开发流程_第1张图片
如图典型的大数据开发流程:数据采集→数据清洗(存储)→数据分析→数据展示
数据来源是多样的,最常见的是服务器日志,爬虫爬取数据,js埋点获取数据,存在关系书库的数据,不动数据源采用不同收集方法。

  • flume在Hadoop生态圈的主要作用就是数据收集,典型应用就是监控日志目录。flume包含三个核心组件数据源(source)、数据缓冲通道(channel)、数据收集的目的地(sink)
  • hadoop的MR做大数据的离线计算,除了复杂的业务逻辑,80%以上的分析计算都可以使用hive代替。一般用hadoop来清洗数据。
  • hive是数据仓库,它本身不储存数据,它只是储存表的字段的映射关系,这写关系我们称之为元数据信息,一般采用MySQL来存储。hive可以将类sql语句解析成MR作业。这大大降低培养分析人员的成本。
  • sqoop用于数据导入导出(相对于hdfs),一般将hdfs的数据导出到MySQL等关系数据库。
  • 对于海量的数据通常存放在分布式数据库内。hbase是构建在hdfs上,他是分布式数据库的一种。hbase是非关系数据库,表结构通常由行键(rowkey)、列簇(columnfamly)、列(column)、时间戳(Timestamp)等组成。
  • hadoop构建在廉价的商务机,出现故障是常态,所以需要解决单点故障问题。最常见的采用高可用来解决。常见的高可用由NameNode的HA和ResourceManager的HA,一般采用zookeeper来协作管理集群。hbase的hmaster故障切换也是由zookeeper来实现的。

你可能感兴趣的:(hadoop学习之路hadoop---大数据两类典型的开发流程)