大数据技术学习笔记

大数据学习笔记

  • 一、hadoop 2.0 项目结构

1 hdfs 分布式文件系统
2 yarn 资源调度系统
3 mapReduce 离线数据分析
4 Tez 组成有向无环图DAG计算
5 Spark 分布式内存计算
6 Hive 数据仓库,用Sql对数据进行统计分析
7 Pig 代替mapReduce进行简单的Sql语句,轻量级脚本语言
8,zookeeper 分布式协调服务 保证分布式系统的可靠性(选择管理员)
9,HBase 大型分布式面向列数据库支持随机读写
10 Flume 日志收集工具
11 sqoop 传统数据库导入hdfs或从hdfs导出,可实现hive HBase 导入导出
12 oozie hadoop 工作流管理系统
12 Ambari hadoop快速部署工具

  • 二、HDFS

1 NameNode 名称节点,存放文件存储位置
2 DataNode 数据节点 存放数据
3 secendNameNode 名称节点的冷备份

MapReduce组件
JobTracker 把大作业分成小作业,分发到不同机器上协调他们执行
TaskTracker 执行小作业

  • 三、HBase

1,所有的表都以列族表示,列限定符就相当于字段,行号是行的唯一标识,时间戳来定位数据的版本,单元格内存储bytes格式的数据
2,在【key ,value】的角度来看【key:(行号,列族,列限定符,时间戳),value:单元格bytes】来定位,相当于kv数据库;
3,概念上是很多空格的稀疏表

物理存储上是

4,HBase列数据库适用于分析型应用场景,传统行数据库适用事务型应用场景
5,JavaAPI

  • 四、MapReduce

Mapd的shuffle
1,map任务的数量split和HDFS块的大小要相同,因为可以减少块之间的数据传输,直接执行map任务,reduce任务的数量和总solt(系统分配给reduce的计算资源)的数量相当,要稍微小一些(因为系统可能还要做其他计算,作预留)。
2,溢写:将map结果放到缓存中,当缓存到达一定阈值的时候(一般是0.8,如果没有阈值,那么可能会发生map的结果丢失)执行分区,排序和可能发送的合并操作之后,将这80%写到磁盘中。
3,分区排序:用hash去分区,作为reduce的输入,默认执行排序,是有序操作
4,合并:将相同的key进行合并,如果定义了合并操作就会执行合并操作,要保证不改变结果再定义合并操作。
5,归并:将缓存写到磁盘的文件归并成一个大文件(分区排好序的)

Reduce 的shuffle
1,reduce任务从多个Map的输出大文件取出属于自己处理的分区到缓存后,对溢出的文件,先归并再合并,没有溢出就直接给reduce执行。

  • 五、HIVE

1,一般将数据库导入到数仓库的过程叫ETL,企业一般用PIG将做ETL,用HIVE做数据报表;HIVE是用类似SQL的语句转换成MapReduce的操作;
2,HIVE的元数据一般存储到关系型数据库中,可以是自带的数据库derby也可以是MySQL等
3,HIVE HA
使用一个HA Proxy的代理,去访问HIVE资源池,如果HIVE不通过逻辑可用性测试,那就把这个HIVE加入黑名单,然后对黑名单进行重启,如果通过测试,则再次加入资源池
4,Impala比Hive快3-30倍,是基于Hive Base元数据的,不需要转换成MapReduce,直接和HDFS和HBase查询,主要是弥补Hive的处理速度慢的问题,一般和Hive组合使用
6,将HDFS数据加载到HIVE表中并覆盖

7,wordCount

你可能感兴趣的:(学习笔记)