大数据总结


1.hadoop集群可以运行的三种模式
    本地模式
    分布式集群模式
    伪分布式集群模式
2.单机模式中的注意点
    单机模式中不存在守护进程,所有东西都运行在一个jvm上,使用的是本地文件系统
3.伪分布式注意点
    伪分布式所有守护线程都在一台机器上
4.hadoop的核心配置
    hdfs-site.xml
    core-site.xml
    mapred-site.xml
    yarn-site.xml
5.hadoop集群中都需要启动那些进程
    NameNode 负责管理文件系统的名称空间,维护所有文件系统中的元数据(主要通过两个文件fs.image和edits文件)
    SecondaryNameNode 提供对namenode命名空间周期检查和清理任务,负责定期将fs.image和edits文件合并,保存合并后的镜像文件的备份,当namenode宕机后,可以通过备份文件进行恢复数据
    DataNode 根据namenode或者客户端的调度存储和检索文件,定期向namenode同步存储的块的列表
    ResourceManager
    NodeManager
    MRAppMaster 每个job一个进程,跟踪job的运行情况,主要是向MR申请资源
    YarnChild 跟job的生命周期相同,运行具体的map/reduce task
6.hive中内部表和外部表区别
    内部表:删除时,数据也一起删了
    外部表:导入数据时,数据并没有移动到自己的数据仓库目录下,数据可以保存在外部目录下,删除时,仅删除外部表的元数据,不删除外部目录下的文件
7.谈谈你对yarn的理解
    yarn是hadoop的新的资源调度器。主要是创建一个全局的ResourceManager和若干个针对应用程序的MRAppMaster
    ResourceManager负责全局资源调度,负责启动和监控MRAppMaster
    MRAppMaster主要是向ResourceManager申请资源,并和NodeManager协同工作运行各个任务
    NodeManager
8.yarn应用提交的过程分析
     1)客户端向resourcemanager提交应用,并申请一个mrappmaster
    2)resourcemanager找到一个可以运行container的nodemanager,并在这个container中启动一个mrappmaster
  3)mrappmaster启动的时候向resourcemanager进行注册,注册之后客户端就可以通过resourcemanager查询自己mrappmaster的详细信息,之后就可以和自己的mrappmaster直接通信
    4)container被成功分配之后,mrappmaster通过向resourcemanager发送信息来启动container
    5)应用程序的代码在container中运行,并把运行的进度、状态发送mrappmaster
    6)任务运行期间,客户端主动和mrappmaster交流获取任务的运行状态、进度等信息。
   7)一旦任务执行完成后,mrappmaster向resourcemanager申请取消注册,然后关闭,用到的所有container也归还给系统。
9.mapreduce中container和partition的区别
    partition:主要是分割map每个节点的结果,按照key分别映射给不同reduce,也就是根据key或者value以及reduce的数量来决定当前的这对map的输出应该交给那个reducetask执行处理。默认的partitioner是hashpartitioner
    container:作用就是对map端产生的数据先做一次合并,减少传输到reduce端的数据,本质上是一个reduce,其输入和输出都必须是map端的输出,也即reduce端的输入。

10.描述mapreduce的过程,中间有几次写磁盘

    map的中间结果都会spill到本地磁盘中,在map执行完后,形成最终的spill文件。所以map端这里的数据就表示map task往本地磁盘中总共写了多少字节。与map端相对应的是,reduce端在shuffle时,会不断地拉取map端的中间结果,然后做merge并不断spill到自己的本地磁盘中。最终形成一个单独文件,这个文件就是reduce的输入文件。
11.kafka 重启是否会导致数据丢失
12.RDD中reduceBykey与groupByKey的区别

1)reduceByKey(func[,num Tasks])

当键值相同的键值对(K,V)数据集调用此方法,他们的键对应的值会根据指定的函数(func)进行聚合,而键值(V,V)也进行合并,返回键值(V),最终返回一个键值对(K,V)数据集。当然,你也可以通过可选参数num Tasks,指定任务执行的次数。

2)groupByKey([num Tasks])

当键值对(K,V)数据集调用此方法,会返回一个键值对(K, Iterable)数据集,其中键值是原来键值组成的、可遍历的集合。我们也可以通过num Tasks参数指定任务执行的次数。

13.调度系统的实现,开源调度系统Azkaban
14.hive倾斜原因,怎么解决,mapjoin

1)mapreduce造成数据倾斜的原因
a.key分布不均衡,有的则过于集中。倾斜在reduce阶段 
b.datanode上数据分布不均衡。倾斜在map阶段。datanode上的数据量大的当然执行的时间要长,数据量小的则执行时间短
2)mapreduce数据倾斜一般的解决方案
a.增加reduce 的jvm内存
b.增加reduce 个数
c.customer partition
d.其他优化的讨论

3)hive数据倾斜

关键字| 情景| 后果
join|其中一个表小,但是key集中|分发到某一个或者几个reduce上的数据远高于平均值
group by| 维度过小,某值的数量过多|处理某值的reduce非常耗时
count、distinct
原因:
key分布不均匀
业务数据本身的特性
某些sql本身有数据倾斜
建表考虑补全
15.zookeeper HA原理

16:.olap

联机实时分析(onlineAnalytical processing)是一种快速响应多维分析的一种解决方案
多维分析:一种数据分析过程,在此过程中,将数据分成两类,维度和度量。
olap可以看做是广义上的商业智能的一部分,传统的olap分析应用通常包括关系型数据库,商业报告以及数据挖掘。

17.kylin

ebay开源的一个大数据olap框架,14年加入了Apache,定位于hadoop平台之上实现传统数据仓库、商业智能,提供交互式多维分析的能力。并提供了传统数据仓库技术所不能做到的超大规模数据数据集的快速查询。
kylin通过预计算的方式缓存了所欲需要查询的数据结构,需要大量的存储空间,一般要分析的数据可能来源于hdfs、关系型数据库、文本、excel等。主要是对hive中的数据进行预计算,通过mapreduce实现。
被用到了诸如数据仓库、用户行为分析、流量分析、电商分析、广告效果分析、实时分析等应用场景。

待补充中。。。

转载于:https://my.oschina.net/riseee/blog/1821963

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值