47-天亮大数据系列教程之舆情热点挖掘项目-课堂笔记-4

1、如何提高开发效率

  1. 环境加速-eclipse,idea,初始学习用eclipse,中高级用idea
  2. 工具加速-仓库源备份、maven依赖pom备份、log4j配置文件
  3. 社交群-以QQ为主,以csdn,github为详细学习在线资源。
    开发效率的最终目标,就是提高-复用率

2、数据倾斜问题
0) 描述:一个作业,分成多个并行的task任务计算,出现部分任务早早结束,一小部分任务卡住很长时间甚至最终失败的现象。

  1. 倾斜问题分类:两大类,真倾斜和假倾斜

  2. 假倾斜:人为原因造成的倾斜
    2.1) 人为造成的数据倾斜
    1.1 在hive表中,上传两个不可切分计算的数据格式的文件,如gzip文件,分别为10MB和10GB。
    2.2) 人为造成的计算倾斜(硬件老旧、配置不均等导致的)
    * cpu不均衡
    * memory不均衡
    * io不均衡-包括磁盘IO和网络IO

  3. 真倾斜:数据本身就倾斜
    比如:看电视剧当中的二八黄金法则的看剧人群,
    更严重就是刷剧、刷流量的存在,
    极小一部分id,贡献了超过普通id的上万倍的流量或是访问记录,
    在这种情况下,做group by id的操作,必然会导致数据倾斜。

3、cpu的执行模式
分时间片执行的模式-将单位时间的cpu使用,等比划分成N多份,每份分成待执行的任务
去使用cpu的计算能力。

4、什么情况下没有reduce?

  1. map称为打散操作,reduce称为归约操作,map和reduce之间是shuffle。
  2. 是否产生reduce的依赖:是否存在shuffle作为依据,即是否真的产生跨机器的数据归约操作。

5、reduce个数由什么来决定?
5.1) 自动推测
推测结果的确定时机:任务开始运行之前。
在原生的mapreduce中,reduce如果有,则只会产生1个。
在hive中,reduce的个数计算规则是由map端的输入总大小(字节为单位)/hive.exec.reducers.bytes.per.reducer(hadoop2.7.x版本中默认是64M)
5.2) 自定义设置
mapred.reduce.tasks

6、yarn中如何自定义删除指定的app应用或是job任务?
yarn把内部运行的任务称为application。
在mapreduce这个层面,将任务称为job,即作业。

7、map个数的影响因子
1) map输入总大小,占磁盘
2) block块大小,block设置的越大,则块数越少,block设置的越小,则块数越多。
block块越小:
块数越多,会导致hdfs压力大,并行度会提高。
block块越大:
块数越少,会降低hdfs元数据压力,并行度降低,
处理单个block块的效率越高。
3) 文件大小
与block越接近越合适,若太小,会导致所占block元数据过多,给namenode造成压力。
4) 格式
若可切分,尽量接近blocksize大小即可,大了也无所谓。
若不可切分,则尽量保证文件大小一定要小于blocksize。
5) max.split.size参数
map的个数最终取决于split的个数,
在原生的mapreduce中,一个split即对应一个block,
在hive中,受max.split.size影响,该参数默认值往往是1-3个blocksize的大小。

8、写一个测试用例TestCase,验证gzip文件的可切分性?
1) 数据准备
1个大于128M的txt文件,压缩成的gzip格式文件。
创建对应的结构表,进行上传操作。
2) 业务逻辑sql的编写
count(1)
3) 假设验证
gzip文件不可切分

9、hive表的文件数据加载方式分析(一般均为外表,内表不存在单独load或是hdfs上传的问题)
一)若是分区表(外表)

  1. 不能够通过hdfs命令直接上传数据,原因在于hive没有将该数据的元信息纳入hive元数据管理。
  2. 必须通过hive提供的文件数据加载方式才可以正常使用该表,
    "load data local inpath ‘’ insert overwrite into table table_name partition(partition_field=‘partition_value’)(有分区则添加分区,无分区则到表即可);
    二)若为普通非分区表(外表)
  3. 直接上传数据即可使用
    命令为:
    "load data local inpath ‘’ insert overwrite into table table_name;

10、(TestCase) 内外表的情况下,各自用drop删除掉操作后,再进行创建表后,数据的保留情况?
1) 分区表
2) 普通表(无分区字段)

11、分区和分桶对比分析
概念说明:
1) 分区就是水平切分,按文件夹来物理隔离,每个分区值对应的是hdfs中的一个目录。
分区是个虚字段。
2) 分桶就是垂直切分,按文件来物理隔离的,每个分桶值对应的是一个文件。
分桶是个实体字段。
相同点:设计思路是相同的,“大而化小,分而治之”。
提高数据的查询效率。
示例说明:
1)分区表查询提交效率的案例:
学生入学表—
如果没有分区,我想查询2018入学的新生有多少?
如果有分区,并以年份作为分区字段,再查询2018年的,则只需要查询该分区对应的数据即可。
2) 分桶表查询提交效率的案例:
学生入学表—,有个地区字段,如河北、河南、山东。。。
如果没有分桶,我想查询河北地区的2018新生有多少?
如果有分桶,并且以地区字段作为分桶字段,假设分桶3个,我想查询河北地区的2018新生有多少?

12、提交一个任务后,产生job个数的计算方法?
1) 一般情况下,有几个shuffle就会产生几个job。
2) 若有优化的情况下,比如tez,mapjoin等情况出现,则job会减少。

13、数据噪音与脏数据对比
脏数据: 不合法,坚决清洗掉
噪音数据:不合理,属于业务上不合理,按照业务逻辑规则,将数据通过去噪处理,获取真正符合业务需求的数据。
去噪处理方法:迭代制定每个层次的噪音处理规则,快速迭代和优化的处理方法。

14、hive tez的使用方法?
1) 如何设置
set hive.execution.engine=tez
2) 优缺点
优点:DAG作业优化,DAG即Directed Acyclic Graph
提高作业尤其复杂DAG作业执行效率,关键省略掉或叫优化掉中间不需要计算或存储的数据节点或任务。
缺点:面向代码的优化引擎,可视化或可理解性并没有那么强。
往往并行度会超过MR作业,对一次任务会使用更多的资源。
3) 使用场景
大多数情况下都可以使用tez代替MR,但是当集群资源不充分或者任务本身初始化用资源过多时,不太适合使用tez。

15、sql当中,关键字顺序与字段使用的关系?

16、OOM问题
Out Of Memory即内存溢处的意思
在yarn container中运行task任务,会有内存和虚拟内存的使用,当内存不够用时,
会自动启动虚拟内存,当虚拟内存也不够用时,就会触发OOM,导致任务失败,退出任务。
内存设置的常用参数: -Xms256m 最小可用内存
-Xmx1500m 最大可用内存

17、hadoop core概念
1) hadoop生态圈
2) hadoop core = hdfs + yarn + mapreduce2

18、maven打包src/main和src/test的区别
1) src/main在开发环境和布署环境都是正常使用和默认打入jar包中的。
2) src/test只存在开发环境中测试使用,默认不能被打入jar包中,
故在jar中使用时,不能使用src/test包中的任务java类和配置文件。

19、关于停用词
nlp中的常用专业术语,
停用词:即没有用的词,有行业属性,不同的行业和场景停用词是不一样的。
主要由两部分组成,第一为系统停用词(网上自找),第二为自定义停用词(自行准备整理、收集).

20、mysql in/not in在hive当中的实现?
1) 通过left join/right join



天亮教育是一家从事大数据云计算、人工智能、教育培训、产品开发、咨询服务、人才优选为一体的综合型互联网科技公司。
公司由一批BAT等一线互联网IT精英人士创建,
以"快乐工作,认真生活,打造高端职业技能教育的一面旗帜"为愿景,胸怀"让天下没有难找的工作"使命,
坚持"客户第一、诚信、激情、拥抱变化"的价值观,
全心全意为学员赋能提效,践行技术改变命运的初心。

更多学习讨论, 请加入
官方-天亮大数据交流-366784928
群二维码:
这里写图片描述
天亮教育公开课-从小白到大佬修成记-全系列视频地址:http://bbs.myhope365.com/forum.php?mod=viewthread&tid=1422&extra=page%3D1

欢迎关注天亮教育公众号,大数据技术资料与课程、招生就业动态、教育资讯动态、创业历程分享一站式分享,官方微信公众号二维码:
这里写图片描述

天亮教育官方群318971238,
爬虫、nlp技术qq群320349384
hadoop & spark & hive技术群297585251
教育培训官网:http://myhope365.com
项目研发业务尚云科技官网:http://shangyuninfo.com/
官方天亮论坛:http://bbs.myhope365.com/

猜你喜欢

转载自blog.csdn.net/erliang20088/article/details/84979057