参考答案一、1 B , 2 B ,3 B, 4 D ,5 C ,6 D
7 B
块设备概念:
一种具有一定结一种具有一定结构的随机存取设备,对这种设备的读写是按块进行的,他使用缓冲区来存放暂时的数据,待条件成熟后,
从缓存一次性写入设备或者从设备一次性读到缓冲区。可以随机访问,块设备的访问位置必须能够在介质的不同区间前后移动。8 B, 9 B
9 B
crontab文件的格式:
minute hour day month weekday username command
minute:分,值为0-59
hour:小时,值为1-23
day:天,值为1-31
month:月,值为1-12
weekday:星期,值为0-6(0代表星期天,1代表星期一,以此类推)
username:要执行程序的用户,一般设置为sh
command:要执行的程序路径(设置为绝对路径)例如:/home/mvp/osyunwei.sh
10 D
11 C
shell上:
0表示标准输入
1表示标准输出
2表示标准错误输出
> 默认为标准输出重定向,与 1> 相同
2>&1 意思是把 标准错误输出 重定向到 标准输出.
&>file 意思是把 标准输出 和 标准错误输出 都重定向到文件file中
12 B ,13 A ,14 A
15 D
linux系统进程类型有 :交互进程 ;批处理进程 ;监控进程(守护进程);二、
https://blog.csdn.net/shantf93/article/details/79775702
https://blog.csdn.net/fuli1215/article/details/63845131 ctrl+z
2 般指令模式 编辑模式
3 useradd passwd
4 httpd.conf
5 hostname
6
7 bash
8 运行态、就绪态和等待态(阻塞态)
9 方括号两边必须有 空格
10 >三、
1 echo "Hello World"
2 如何获取变量长度
variable="123"
${#variable}
# expr length ${variable}
echo ${variable} |wc -L3
#!/bin/sh
i=0
while [ "$i" -le 10 ]
do
echo "num is $i"
((i++));
#i=`expr $i + 1`;
sleep4
Linux是开发源代码的自bai由软du件,用户对前者有很高的自主权,在实际的的开发是处在一个完全开放的环境之中;
而unix是对源代码实行知识产权保护的传统商业软件,用户的开发完全是处在一个黑箱之中,只有相关的开发人员才能够接触的产品的原型;5
vi /etc/hosts6
grep 是搜索
例如: ps -ef | grep java
表示查看所有进程里CMD是java的进程信息
ps -aux | grep java
-aux 显示所有状态
kill 命令用于终止进程
例如: kill -9 [PID]
-9表示强迫进程立即停止
通常用ps 查看进程PID ,用kill命令终止进程7
进程查看的命令是ps和top。
进程调度的命令有at,crontab,batch,kill8 在对linux系统分区进行格式化时需要对磁盘簇(或i节点密度)的大小进行选择,请说明选择的原则。
磁盘簇(或i节点密度)是文件系统调度文件的基本单元。磁盘簇的大小,直接影响系统调度磁盘空间效率。
当磁盘分区较大时,磁盘簇也应选得大些;当分区较小时,磁盘簇应选得小些。通常使用经验值。9
在linux系统中,任何一个独立(注意:这里强调是独立的文件)的文件,都会为其分配一个i结点,它们是对应的,然后通过i结点再找到相应的文件的实际存储内容。
软链接是建立了另一个新的独立的文件,会写上链接文件的文件名。一个字母一个字节。它指向源文件,因为源文件没了,所以它就不能正常指向了;
硬链接实际是一条文件名与i结点的记录,在删除源文件的时候,系统则将链接数减1,当链接数为0的时候,inode就会被系统回收,文件的内容才会被删除;
#!/bin/sh
a=0
b=1
c=1
for i in {1..25}
do
echo "$c "
c=$[a+b]
#c=(($a+$b))
a=$b
b=$c
done
#!/bin/sh
#echo "$1 $2"
if [ ! -f "$1" ]; then
echo "$1 the file not exists"
else
mv $1 $2
fi
一、
1 c
2 a
3 d
JobTracker 对应于 NameNode
TaskTracker 对应于 DataNode
4 c
5 c
6 c
1、namenode元数据-》内存-》启动后
2、namenode元数据-》本地文件系统文件中-》启动前
3、格式化-》fsimage镜像文件
4、edits编辑日志文件-》用来记录用户行为记录数据(数据比较多)
5、减少namenode重启的时间、合并文件
6、secondarynamenode读取两类文件,加载到内存
-》写到一个新的fsimage镜像文件
-》再生成一个edits编辑日志文件7. c
8 a,d
9 abc
10 bd
11 c
12 b
13 b
14 c
组件
节点
默认端口
配置
用途说明
HDFS
DataNode
50010
dfs.datanode.address
datanode服务端口,用于数据传输
HDFS
DataNode
50075
dfs.datanode.http.address
http服务的端口
HDFS
DataNode
50475
dfs.datanode.https.address
https服务的端口
HDFS
DataNode
50020
dfs.datanode.ipc.address
ipc服务的端口
HDFS
NameNode
50070
dfs.namenode.http-address
http服务的端口
HDFS
NameNode
50470
dfs.namenode.https-address
https服务的端口
HDFS
NameNode
8020
fs.defaultFS
接收Client连接的RPC端口,用于获取文件系统metadata信息。
HDFS
journalnode
8485
dfs.journalnode.rpc-address
RPC服务
HDFS
journalnode
8480
dfs.journalnode.http-address
HTTP服务
HDFS
ZKFC
8019
dfs.ha.zkfc.port
ZooKeeper FailoverController,用于NN HA
YARN
ResourceManager
8032
yarn.resourcemanager.address
RM的applications manager(ASM)端口
YARN
ResourceManager
8030
yarn.resourcemanager.scheduler.address
scheduler组件的IPC端口
YARN
ResourceManager
8031
yarn.resourcemanager.resource-tracker.address
IPC
YARN
ResourceManager
8033
yarn.resourcemanager.admin.address
IPC
YARN
ResourceManager
8088
yarn.resourcemanager.webapp.address
http服务端口
YARN
NodeManager
8040
yarn.nodemanager.localizer.address
localizer IPC
YARN
NodeManager
8042
yarn.nodemanager.webapp.address
http服务端口
YARN
NodeManager
8041
yarn.nodemanager.address
NM中container manager的端口
YARN
JobHistory Server
10020
mapreduce.jobhistory.address
IPC
YARN
JobHistory Server
19888
mapreduce.jobhistory.webapp.address
http服务端口
HBase
Master
60000
hbase.master.port
IPC
HBase
Master
60010
hbase.master.info.port
http服务端口
HBase
RegionServer
60020
hbase.regionserver.port
IPC
HBase
RegionServer
60030
hbase.regionserver.info.port
http服务端口
HBase
HQuorumPeer
2181
hbase.zookeeper.property.clientPort
HBase-managed ZK mode,使用独立的ZooKeeper集群则不会启用该端口。
HBase
HQuorumPeer
2888
hbase.zookeeper.peerport
HBase-managed ZK mode,使用独立的ZooKeeper集群则不会启用该端口。
HBase
HQuorumPeer
3888
hbase.zookeeper.leaderport
HBase-managed ZK mode,使用独立的ZooKeeper集群则不会启用该端口。
Hive
Metastore
10002
hive.server2.webui.port
Hive2.0才有的WEBUI的配置
Hive
Metastore
9083
hive.metastore.uris /etc/default/hive-metastore中export PORT=
来更新默认端口 Hive
HiveServer
10000
/etc/hive/conf/hive-env.sh中export HIVE_SERVER2_THRIFT_PORT=
来更新默认端口
ZooKeeper
Server
2181
/etc/zookeeper/conf/zoo.cfg中clientPort=
对客户端提供服务的端口
ZooKeeper
Server
2888
/etc/zookeeper/conf/zoo.cfg中server.x=[hostname]:nnnnn[:nnnnn],标蓝部分
follower用来连接到leader,只在leader上监听该端口。
ZooKeeper
Server
3888
/etc/zookeeper/conf/zoo.cfg中server.x=[hostname]:nnnnn[:nnnnn],标蓝部分
用于leader选举的。只在electionAlg是1,2或3(默认)时需要。
15 d
Hadoop1.x中的HDFS和MapReduce在高可用、扩展性等方面存在问题。
1.HDFS存在的问题
NameNode单点故障,难以应用于在线场景。
NameNode压力过大,且内存受限,影响扩展性。
2.MapReduce存在的问题
JobTracker访问压力大,影响系统扩展性。
难以支持除MapReduce之外的计算框架,比如Spark、Strom等。
二、https://blog.csdn.net/xiaobao5214/article/details/83856132
1.Hadoop集群可运行的三个模式单机(本地)模式、伪分布式模式 、全分布式模式
2.利用备份恢复
3、读取
4、22
5. NameNode 不需要从磁盘读取 metadata,所有数据都在内存中,硬盘上的只是序列化的结果,只有每次namenode 启动的时候才会读取
6、
7、块
8、
9、
dfs-stop .sh stop
dfs-start .sh start
10、多冗余体系结构设计和产品体积庞大
三、
1.Hadoop集群可以运行的3个模式分别是什么,有哪些注意点?
单机模式——是用来bai测试的
伪分布模式——主从节du点在一台机器zhi上,SSH+RPC,需要注意关闭防火墙dao,配置SSH免登录
完全分布模式——真正生产环境要的模式,需要配置主、从节点,关闭防火墙,配置SSH免登录注意要保证每个节点(机器)上的HADOOP配置项要一样
2.Hadoop集群安全模式的问题
https://blog.csdn.net/qq_32297447/article/details/79492825
hadoop为了防止数据丢失,启动了“安全模式”的设置,每次启动hadoop后一段时间内集群处于安全模式,该模式下集群会检查各节点文件块的记录,如果数据块中满足replication设置值的数据块的数量在总数据块数量中所占比例没有超过一定值(称为安全模式阀值,默认为0.999f),那么集群将持续处于安全模式,在该模式下,文件系统中的内容不允许修改也不允许删除,直到安全模式结束。安全模式主要是为了系统启动的时候检查各个DataNode上数据块的有效性,同时根据策略必要的复制或者删除部分数据块。运行期通过命令也可以进入 安全模式。在实践过程中,系统启动的时候去修改和删除文件也会有安全模式不允许修改的出错提示,只需要等待一会儿即可
3、可以
4、Hadoop配置步骤
配置Hadoop环境变量
修改启动类 hadoop-env.sh
修改配置文件(core-site.xml,hdfs-site.xml,mapred-site.xml,yarn-site.xml)
启动格式化HDFS
start-dfs.sh ,start-yarn.sh 命令,启动Hadoop
5、hadoop要启动哪些进程
Namenode 的主要作用管理文件系统文件的元数据信息
Datanode是文件系统的工作节点,他们根据客户端或者是namenode的调度进行存储和检索数据
Secondary NameNode 作用 帮助 NameNode 合并编辑日志,减少 NameNode 启动时间,定时备份数据
ResourceManager是Yarn集群主控节点,负责协调和管理整个集群(所NodeManager)的资源
NodeManager管理一个YARN集群中的每一个节点。比如监视资源使用情况( CPU,内存,硬盘,网络),跟踪节点健康等。
6、
7、如何实现Hadoop二级排序
https://blog.csdn.net/lzm1340458776/article/details/42875751
第一步:定义一个组合键的bean
第二步:自定义一个比较器,对key进行排序时使用
第三步:自定义一个分区器,在shuffle阶段使用
第四步:自定义一个分组器
第五步:编写mapReduce程序
8、MapReduce中combine、partition、shuffle的作用是什么?
和partition都是函数,中间的步骤应该只有shuffle
combine作用是把同一个key的键值对合并在一起减少输出到 reduce 的数据量,提高网络传输瓶颈,可以自定义的。是map的最后一步。
partition是分割map每个节点的结果,按照key分别映射给不同的reduce,也是可以自定义的
shuffle分为map端和reduce端
map端将结果输出到环形缓冲区中,默认大小:100MB(可以自定义),当内存使用空间达到80%(可以自定义)会触发spill溢写(分区partition,排序sort,溢写spill,合并merge)到本地磁盘
reduce端到本地磁盘去拉去自己那部分的数据,同样也是放到内存然后分组group。最后溢写spill,合并merge。
9、MapReduce如何解决数据倾斜问题
(1)、hive.groupby.skewindata=true 它使计算变成了两个mapreduce,先在第一个中在 shuffle 过程 partition 时随机给 key 打标记,使每个key 随机均匀分布到各个 reduce 上计算,但是这样只能完成部分计算,因为相同key没有分配到相同reduce上,所以需要第二次的mapreduce,这次就回归正常 shuffle,但是数据分布不均匀的问题在第一次mapreduce已经有了很大的改善,因此基本解决数据倾斜。
(2) 、在 key 上面做文章,在 map 阶段将造成倾斜的key 先分成多组,例如 aaa 这个 key,map 时随机在 aaa 后面加上 1,2,3,4 这四个数字之一,把 key 先分成四组,先进行一次运算,之后再恢复 key 进行最终运算。
10、可以,例如我们的集群就是为了存储文件而设计的,不涉及到数据的计算,就可以将mapReduce都省掉
一、
- D
- A
- B
- C
- B
- B
- B
- BC
http://www.itkeyword.com/doc/318868814916432151/hive-HIVE-Hive
join操作,where的条件写在join里面,使得减少join的数量(经过map端过滤,只输出复合条件的)
join操作,mapjoin方式,无reduce操作,在map端做join操作(map端cache小表的全部数据),这种方式下无法执行Full/RIGHT OUTER join操作
对于count(distinct)操作,在map端以group by的字段和count的字段联合作为key,如果有大量相同的key,那么会存在数据倾斜的问题
数据的倾斜还包括,大量的join连接key为空的情况,空的key都hash到一个reduce上去了,解决这个问题,最好把空的key和非空的key做区分,空的key不做join操作。
当然有的hive操作,不存在数据倾斜的问题,比如数据聚合类的操作,像sum、count,因为已经在map端做了聚合操
9、AB
10、CD
https://blog.csdn.net/wzc8961661/article/details/104509525/
Hive 目前不支持更新操作(Hive从0.14版本开始支持事务和行级更新,但缺省是不支持的,需要一些附加的配置)。另外,由于hive 在hadoop 上运行批量操作,它需要花费很长的时间,通常是几分钟到几个小时才可以获取到查询的结果。Hive 必须提供预先定义好的schema 将文件和目录映射到列,并且Hive 与ACID 不兼容。
11、AC
12、AD
13、A
14、B
15、A
二、
1、show dataase, use database
2、Drop table t
3、Load data local input ‘路径’ into table t partition(data=’2020-07-29’)
4、Hive不支持where子句中的子查询,in内的子查询,exists内的子查询
Hive只允许子查询在from中出现,hive在0.13版本以后开始支持更多的子查询,如in ,内的子查询的子查询
5、SELECT *
FROM `table` AS t1 JOIN (
SELECT ROUND(RAND() * ((SELECT MAX(id) FROM `table`)-(SELECT MIN(id) FROM `table`))+(SELECT MIN(id) FROM `table`)) AS id
from `table` limit 5) AS t2 on t1.id=t2.id
ORDER BY t1.id LIMIT 1;
https://blog.csdn.net/tianzhiyitan/article/details/38116325
6、
Hive的常见压缩格式TextFile, Sequence Files, RCFile, ORCFile,Parquet[ˈpɑːkeɪ]
Hive的常见压缩算法snappy,bzip2, gzip, lzo
7、Hive的三种排序Sort By,Order By,Cluster By
https://www.cnblogs.com/wcgstudy/p/11434484.html
8、数据仓库
9、local模式(内嵌derby),本地模式,远程模式(mysql)
https://blog.csdn.net/lzxlfly/article/details/80793164
10、10002 (Hive2.0才有的WEBUI的配置)
三、
1、
如果是内部表,那么我们删除表,HDFS中的数据也会被删除
如果是外部表,那么我们删除表。hdfs中的数据也会不会被删除
2、hive 底层与数据库交互原理
Hive 的查询功能是由 hdfs 和 mapreduce 结合起来实现的,对于大规模数据查询还是不建议在 hive 中,因为过大数据量会造成查询十分缓慢。 Hive 与 mysql 的关系:只是借用 mysql 来存储 hive 中的表的元数据信息,称为 metastore
https://www.cnblogs.com/wcgstudy/p/11407557.html
3、hive 如何调优
数据的压缩与存储格式
创建分区表,桶表,拆分表
优化sql
解决数据倾斜
合并小文件
https://blog.csdn.net/qq_36753550/article/details/82825207
4、hive自定义函数学习
使用方式 :在HIVE会话中add 自定义函数的jar文件,然后创建function继而使用函数
①编写自定义函数;
②打包上传到集群机器中;
③进入hive客户端,添加jar包:hive> add jar /root/hive_udf.jar;
④创建函数:hive> create function getLen as 'com.raphael.len.GetLength';
⑤销毁函数:hive> DROP FUNCTION getLen;
https://www.cnblogs.com/lrxvx/p/10974341.html
5、hive数据倾斜
表现:任务进度长时间维持在99%(或100%),查看任务监控页面,发现只有少量(1个或几个)reduce子任务未完成。因为其处理的数据量和其他reduce差异过大。
原因:某个reduce的数据输入量远远大于其他reduce数据的输入量
1)、key分布不均匀
2)、业务数据本身的特性
3)、建表时考虑不周
4)、某些SQL语句本身就有数据倾斜
解决方案:
(1)参数调节
set hive.map.aggr=true
set hive.groupby.skewindata=true
(2)熟悉数据的分布,优化sql的逻辑,找出数据倾斜的原因。
6、
①order by 和传统sql中的order by 一样,对数据做全局排序,数据量大的情况下可能不能出结果
②distribute by 是控制map端在reduce上是如何区分的,distribute by 会把指定的值发到同一个reduce中,一般情况下可以sort by 结合使用,先进行分组reduce,再进行排序
③sort by 是局部排序,会在每个reduce端做排序,每个reduce端是排序的,也就是每个reduce出来的数据是有序的,但是全部不一定有序
④cluster by除了具有 distribute by 的功能外还兼具 sort by 的功能。(只能是使用默认的升序排序,不能使用ACS和DESC)
7、
Split将字符串转化为数组。split('a,b,c,d' , ',') ==> ["a","b","c","d"]
COALESCE(T v1, T v2, …) 返回参数中的第一个非空值;如果所有值都为 NULL,返回NULL
collect_list列出该字段所有的值,不去重 select collect_list(id) from table;
https://blog.csdn.net/weixin_40271036/article/details/79943480?utm_source=blogxgwz4
8、
1)row_number:不管col2字段的值是否相等,行号一直递增,比如:有两条记录的值相等,但一个是第一,一个是第二
2)rank:上下两条记录的col2相等时,记录的行号是一样的,但下一个col2值的行号递增N(N是重复的次数),比如:有两条并列第一,下一个是第三,没有第二
3)dense_rank:上下两条记录的col2相等时,下一个col2值的行号递增1,比如:有两条并列第一,下一个是第二
9、Hive常见的文件类型
TextFile, Sequence Files, RCFile, ORCFile,Parquet
10、Hive体系结构
用户户接口:client
元数据:metastore
驱动器:dirver