Cloudera CCA131培训考试要点
培训课程
官方文档:https://www.cloudera.com/documentation/enterprise/latest/topics/admin_rm.html
cloudera 管理
cloudera 分析(pig,impala,hive)
cloudera 开发
cloudera hbase
常用组件
Avro 通用的数据存储格式(行级)
Flume 采集(近似实时),日志
hadoop: 核心组件:hdfs、yarn、MR
HCatalog: hive和impala提供API
kudu: 数据存储系统,结构化,其他2个数据存储系统是:hbase 和 hdfs
Parquet:通用数据存储格式(列级)
Pig:脚本进行数据分析
sqoop: RDBMS -> Hadoop
HDFS: 适合批量IO,不适合做检索(原因:文件存储,没有索引的概念,只能逐行扫描)
Hbase:适合检索,但是批量效率不高
Kudu:介于两者之间
注意:
组件配置文件/var/run/...下
客户端配置文件/etc下
HDFS和数据本地化
1、将1GB的文件1.log被分片(split)成小文件-block
2、block的大小128M,3个副本,必须存储在三个不同的物理服务器上
HDFS:存放大文件,不建议小文件(维护的元数据条目会增大,即便在内存中维护,也会操作延时)
大:大于128M,实际是大于1G,性能好
一次性写,文件一旦被上传不能被修改,只能删除重新上传
读写粒度:block,名称是blk_ID
数据冗余,应用也冗余
并发-主要对block进行并发操作
数据本地化,数据在哪里,应用就在哪里(datanode-nodemanager)。减少网络延迟,本地处理,可大大提高效率
安装部署流程:建DB-建库-安装CM-安装CDH
CM是BS架构,Sever端建议选取独立服务器,client端需要部署Agent程序,CDH组件的安装都是通过Agent安装部署
安装方式:
CM - rpm包
CDH - 源码
二进制
rpm包
parcels(官方建议)
远程方式管理介质,http、配置yum源
10.0.15.181 elephant
10.0.15.182 tiger
10.0.15.183 horse
10.0.15.184 monkey
10.0.15.185 lion
代理启动:
start_SOCKS5_proxy.sh
连接CM介质:lion:8000
连接CDH介质:lion:8050
start_SOCKS5_proxy.sh
sudo /usr/share/cmf/schema/scm_prepare_database.sh \
mysql cmserver cmserveruser password
hdfs访问web:
http://elephant:50070
NameNode
NameNode功能:在内存中维护元数据
元数据:文件路径
用户、属组、权限
1.log-> ID1,ID2,...
ID1 -> 所在机器列表
SencodNameNode只能是作为Namenode的辅助,不能作为其备份。SencodNameNode主要做fsimage和edit log的合并,然后生成新的new fsimage,再回写到NameNode中的fsimage。改操作
叫检查点操作:默认一小时进行一次更新,有了SencodNameNode之后就fsimage不再为空(最近一小时的数据),不用去加载edit log(量大);
元数据变更:向NameNode请求,先在NN节点的磁盘上写 log,再写mem
刚启动:格式化生成一个空的fsimage文件,NN加载fsimage(空)到内存(空)
运行一段时间:产生大量的edit log,重启后还是先加载空的fsimage文件到内存,再恢复edit log,可能时间很长
HA架构中是否有检查点工作,有,但不是SNN(该角色在HA中已经没有了),是备份的NN来做!!!
机器感知
防止数据丢失,额外配置,防止服务器宕机数据不丢失,机架宕机,数据也不丢失(副本放置策略)
NameNode的内存大小?
默认将1GB修改4GB,以后根据元数据量大增加
YARN-Spark-MR
YARN的ResourceManager:评估应用程序的资源请求
MR
input Split:对block文件进行键值对处理
Map的结果:是写入本地磁盘(延迟)
Map-Reduce:可能跨网络数据传输(延迟)
Spark优秀:
内存计算
RDD数据结构
通用
适合场景:流式、批量、SQL...
spark ——> Yarn 提交作业:
2种提交模式的区别
client:spark drive管理型Java进程跑在客户机上,调试模式,要保持客户机和集群机器通信
cluster:spark drive管理型Java进程也跑在集群中,适合生产
RDD:
1、数据丢失,就重新计算,保证数据冗余(牺牲CPU+MEM)
2、RDD初始是HDFS文件
Spark例子:
val file = sc.textFile("hdfs://elephant:8020/tmp/shakespeare.txt")
val counts = file.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey(_ + _).sortByKey()
counts.saveAsTextFile("hdfs://elephant:8020/tmp/sparkcount")
sc.stop()
sys.exit()
sqoop优化
1、修改map的并发度,默认为4
2、底层连接JDBC驱动换掉(专门开发)
集群规划
单台服务器硬盘空间不建议超过36T;
不建议RAID;
Hive-Impala
装beeline客户端就是要安装gateway服务
impala Deamon 分布式任务执行(注意与datanode一一对应,数据本地化计算)
impala catalog 维护元数据
impala state 查看Deamon的状态
impala提高性能中的参数
1、dfs.client.read.shortcircuit 设为true,提高读取性能
高级配置
NameNode参数调整
dfs.namemode.handler.count
NameNode可以开启的线程数,默认为30,如果集群机器规模大,可调整增大;算法:log(N)*20 个,太小会报“connection refused”
DataNode参数调整
dfs.datanode.max.locked.memory - 用于缓存的最大内存
YARN参数调整
mapreduce.job.reduce.slowstart.completedmaps - 在启动Reduce作业前,完成的Map任务的进度,默认为80%
设置原因:1、提供执行的效率;2、尽量节约Yarn资源(MR申请的容器会同时初始化,但是Reduce任务是在Map任务结束后才会执行,到时Reduce无效的占用资源-容器)
mapreduce.reduce.shuffle.parallelcopies - 复制(洗牌)阶段期间 reduce 运行的并行传输的默认数量,ln(nodes)*4 再取10的倍数。比如集群数为20,ln(20)*4= 11.98,
这里需要取20
MapReduce的推理执行speculative execution
当其中某个Mapper或Reducer任务执行的速度明显慢于平均速度,会重新在不同的节点上拉起一个相同的任务,执行结果是来源于第一个完成的,慢的会被kill掉;
开启要当心,如果其中的作业处理的数据量超大,重新拉起相同的任务会带来更多的资源消耗;默认是关闭;
mapreduce.map.speculative
mapreduce.reduce.speculative
HDFS的HA架构
在非HA架构中fsimage的维护操作是由SencodNameNode完成;在HA架构中SencodNameNode不存在,fsimage由JournalNode完成;
Failover Controller进行故障转移
NameNode(Active)向JournalNode写元数据,NameNode(standby)从JournalNode读元数据,并保持与NameNode(Active)心跳;
JournalNode主要是维护fsimage,定在对fsimage和edit log进行合并操作,默认一小时进行一次;
HA配置步骤:
1、设置JournalNode本地目录/opt/dfs/jn权限属组hdfs:hadoop(要么全部手动创建,要么不创建CM自动创建)
2、确保zk安装启动;
3、CM界面点击Enable High Availability
启动HA的影响,需要手动进行如下操作:
1、对HIVE
更新Hive的元数据:hive界面-操作-更新Hive Metadata NameNode
2、对Impala
执行 INVALIDATE METADATA
3、对Hue
对HDFS增加HttpFS角色
安全模块
1、sentry
2、LDAP
3、Kerberos
资源管理方式
一、基于Yarn的资源管理
1、静态资源池(首页-Cluster下拉菜单-静态资源池)
2、Yarn调度器(动态资源池)
一、cgroup,默认是关闭的,HOST - > Enable Cgroup-based Resource Management
对进程进行管控!!!可对cpu、内存、IO管理
- Yarn 调度器,对内存、cpu管理
三种调度器:FIFO/容量/公平
容量:Yahoo粒度-池(队列),由用户创建队列,应用必须提交到队列上,百分比分配。池的内部应用程序资源分配算法是FIFO
公平:facebook开发,官方建议使用,粒度还是池,每个池都是均等的。池的内部应用程序资源分配算法:两种算法,FIFO或均等平分
区别:池内部资源分配算法。
集群建议使用公平调度器!!!
课程使用的是公平调度器!!!
公平调度器特点:
1、pool默认有一个根池root,池是可以级联的(嵌套结构)。
2、池是不绑定资源;
3、池的均等是发生在同一层级的;
4、是yarn上面的管控资源;
5、资源均等
公平调度器抢占模式
举例:资源为30G,2个池(队列)Alice和Bob
Alice有任务,而Bob无任务运行,30G资源全部分配给Alice,当Alice中的任务运行一段时间之后,此时Bob中有任务提交,那么Yarn如何给Bob分配资源?
默认抢占是关闭的,只有等Alice中的任务运行完成释放资源,之后才会分配给Bob;如果抢占开启,会从Alice中抢占资源给Bob使用,会将Alice中部分的已经运行的任务kill。
yarn.scheduler.fair.preemption是disable
2种抢占模式:
最小抢占
公平抢占
公平调度器的配置变更不需要重启,因为每10s就会读取配置文件fair-scheduler.xml。
资源参数的配置参考Traning材料。
二、Impala查询的资源管理
Admission control
维护
HDFS
fsck:只能检测,⽆法修复(3copy all failure ⽆法恢复)
safe mode : 只能读不能写,即元数据不会变,可以⽤来做备份
wait 状态:⽤于脚本,检测是否处于safemode,是即夯住,恢复后脚本继续执⾏
备份元数据的操作
1、进入安全模式
2、检查点操作(就是将edit log与fsimage合并生成新的fsimage文件:元数据刷新)
3、进行namenode的机器上面的/opt/dfs/nn/current/fsimage_*文件
rebalance操作:手动操作
建议在集群闲置的时候操作
删除节点2种操作:
- 退役操作
- 删除操作
CDH升级
CM版本要求⼤于CDH
详见每个版本升级细节须知
练习
- 集群自动恢复副本功能
上传1G左右的数据到hdfs上,查看block分布情况
可以看出block在节点上的分布情况,现将109集群的DataNode角色手动停止,查看DataNode的情况,发现109的Last Contact还在17:00点钟。
[root@bd129106 home]# sudo -u hdfs hdfs fsck /
Connecting to namenode via http://bd129107:50070/fsck?ugi=hdfs&path=%2F
FSCK started by hdfs (auth:SIMPLE) from /192.168.129.106 for path / at Fri Feb 23 17:05:16 CST 2018
..........................................................................Status: HEALTHY
Total size: 1982841822 B (Total open files size: 332 B)
Total dirs: 1941
Total files: 724
Total symlinks: 0 (Files currently being written: 5)
Total blocks (validated): 732 (avg. block size 2708800 B) (Total open file blocks (not validated): 4)
Minimally replicated blocks: 732 (100.0 %)
Over-replicated blocks: 0 (0.0 %)
Under-replicated blocks: 0 (0.0 %)
Mis-replicated blocks: 0 (0.0 %)
Default replication factor: 3
Average block replication: 3.0
Corrupt blocks: 0
Missing replicas: 0 (0.0 %)
Number of data-nodes: 3
Number of racks: 1
FSCK ended at Fri Feb 23 17:05:17 CST 2018 in 457 milliseconds
The filesystem under path '/' is HEALTHY
等到10分钟之后再次查看,109已经处于dead
到HDFS文件浏览界面查看副本数仍然为3,
查看datanode的报告命令
[root@bd129106 home]# sudo -u hdfs hdfs dfsadmin -report
- HDFS快照
免费版没有文件浏览器
a)启用快照
b)拍摄快照
c)删除数据:切换eda用户,hdfs dfs -rm -r weblog
hdfs dfs -ls /user/eda
[eda@bd129106 home]$ hdfs dfs -ls /user/eda/.snapshot/snap1
Found 1 items
drwxr-xr-x - eda eda 0 2018-02-24 10:15 /user/eda/.snapshot/snap1/weblog
hdfs dfs -tail .snapshot/snap1/weblog/test_center
d)恢复数据
[eda@bd129106 home]$ hdfs dfs -cp .snapshot/snap1/weblog/test_center weblog
e)验证
[eda@bd129106 home]$ hdfs dfs -ls /user/eda/weblog
-rw-r--r-- 3 eda eda 1396874072 2018-02-24 11:25 /user/eda/weblog
Cloudera CCA131培训考试要点相关推荐
- 佛山科目二仙塘考场(B场)-考试要点
2019/04/29 佛山科目二仙塘考场(B场)-考试要点 地点:机动车驾驶员考试培训中心,龙江镇仙塘大道21号. 线路图: 借吧友的图,B场,现场2号侧方停用,直角转弯号数相反,4号半坡左侧没有水泥 ...
- 信息系统项目管理师考试要点
1.上午知识要点解读 ( 1 )信息化知识 要掌握一些基本概念,主要出现在上午题的选择题中.基本的概念不必死记,但关键的词语要记住,概 念的意思要理解.主要的概念性知识要点与如下一些: 信息与信息化的 ...
- 《CCNA安全640-554认证考试指南》——6.4节复习所有考试要点
本节书摘来自异步社区<CCNA安全640-554认证考试指南>一书中的第6章,第6.4节复习所有考试要点,作者 [美]Keith Barker , Scott Morris,更多章节内容可 ...
- c语言计算机二级考试要点,全国计算机二级考试c语言考试要点
全国计算机二级考试c语言考试要点 3. 源程序的书写格式. 4. C语言的风格. 二.数据类型及其运算 1. C的数据类型(基本类型,构造类型,指针类型,无值类型)及其定义方法. 2. C运算符的种类 ...
- 全国计算机vb考试经典程序设计,全国计算机二级《VB语言程序设计》考试要点...
全国计算机二级<VB语言程序设计>考试要点 VB语言程序设计是计算机二级考试的科目之一,考生们在备考是要熟悉科目的知识要点,有针对性地进行备考.下面百分网小编为大家搜索整理了关于二级< ...
- 第一章信息安全基础考试要点及真题分布
第一章信息安全基础考试要点及真题分布 第一章 信息安全基础 1.信息安全概念 2.信息安全法律法规 3.信息安全管理基础 4.信息安全标准化知识 5.信息安全专业英语 信息安全基础真题分值统计 201 ...
- 圆你国产数据库DBA之梦,达梦DCA培训考试券免费拿
2020首届达梦数据库精英挑战赛是在工信部等各级单位指导下,达梦公司联合国内信创产业知名企业共同打造信创人才"万人培养计划". 活动报名 报名时间:2020年7月22日-8月5日 ...
- 《CCNA学习指南:数据中心(640-911)》——1.6 考试要点
本节书摘来自异步社区<CCNA学习指南:数据中心(640-911)>一书中的第1章,第1.6节,作者: [美]Gary R. Wright(加里 R.赖特) , W. Richard St ...
- 9月30号后新版CCNA考试要点
考试要点: 下列要点是可能会出现在CCNA单科考试中的大纲.但是,其他相关要点也可能会在某次考试中出现.下面的大纲可能会在未提前通知的情况下发生改变,这是为了更好地反映考试内容及更加透明化. IP数据 ...
最新文章
- ubuntu mysql登陆_ubuntu mysql 配置 远程登陆
- 【Python】全方面解读Python的格式化输出
- 开源|如何开发一个高性能的redis cluster proxy?
- 在恰当的地方使用MongoDB的WriteConcern.SAFE参数
- python樱花制作教程视频_大型Python视频资料,阿里巴巴推荐,用Python画一棵漂亮的樱花树...
- 35 WM配置-作业-定义需求类型
- Find the median(线段树离散化+区间更新)
- 看《烈火雄心》 --当大家从火里出来,我们进去
- 网页布局:左边为导航,右边正文,左边和右边的高度总是相等,或者导航最低高度为屏幕高度...
- SDK接入学习(一):PlayerSetting详解(PC、Mac、Linux)
- matlab英文界面翻译,Matlab最新的官方文档中文翻译
- 【RFID】RFID的标准体系
- 概率论:概率及概率公式
- nodejs+java+python网上体育用品销售系统
- word 插入目录及错误!未找到目录项
- 2023最新猕猴桃影视系统源码/影视APP源码+安卓/苹果双端
- 酷派手机(Coolpad 8297-T01)在Android开发工具如AndroidStudio、Eclipse中无法打印Log
- 批处理 bat cmd 命令大全
- AlexNet VGGNet ResNet 对比 简介
- 片段中onCreate(),onCreateView()和onActivityCreated()的区别和用法