期末1111111111
数科1991 庄泽华
文章目录
- 数科1991 庄泽华
- 1.集群环境配置
- 超级用户与普通用户的区别
- 免密使用root权限执行命令
- 修改主机名
- 关闭防火墙
- 配置主机IP映射
- 2.搭建Hadoop集群
- 配置hadoop账户的免密
- Hadoop概述
- 基本的Hadoop集群
- 不是所有守护进程都运行在每台机器上
- 配置系统环境
- 格式化Namenode
- 启动与关闭Hadoop集群
- Name Node Web UI
- 3.HDFS
- 4.MapReduce
- MapReduce介绍
- 流程图
- 在hadoop集群上运行java程序
- MapReduce相较于传统的并行计算框架有什么优势?
- 5.Yarn
- 流程图
- 什么是YARN
- 为什么选YARN
- YARN上著名的计算框架
- YARN守护进程
- 小结
- 6.zookeeper
- 简介
- 应用场景
- 结构原理
- zookeeper Shell
- 7.HDFS-HA
- 8.HBase
- 什么是HBase
- 区别与传统数据库
- 基本结构
- 成员角色
- HBase Web端口
- HBase Shell
- 9.Hive
- Hive介绍
- 大数据分析为什么需要Hive
- Hive特点
- Hive架构体系
- Hive三种运行模式
- 数据模型
- Hive Shell
- Spark
- Spark介绍
- spark架构图和部署方式
- spark是否能取代hadoop
- Spark Shell
1.集群环境配置
超级用户与普通用户的区别
[root@localhost ~]# 超级用户
[hadoop@localhost ~]$ 普通用户
#以下代码不区分超级用户和普通用户
免密使用root权限执行命令
# 修改/etc/sudoers的配置
[root@localhost ~]# vi /etc/sudoers
root ALL=(ALL) ALL
hadoop ALL=(ALL) NOPASSWD:ALL
# 在/etc/sudoers.d下新建文件hadoop
# 1. 切换到root 用户
# 2. 新建在/etc/sudoers.d下新建文件hadoop,并写入配置
[root@localhost ~]# echo "hadoop ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/hadoop
修改主机名
[root@localhost ~]# echo "hadoop01" > etc/hostname
[root@localhost ~]# reboot 重启
[root@localhost ~]# hostname 查看主机名称
关闭防火墙
# 使用root账户关闭防火墙
# 关闭防火墙
[root@localhost ~]# systemctl stop firewalld.service
# 检查防火墙状态
[root@localhost ~]# systemctl status firewalld.service # 设置开机默认不开启防火墙
[root@localhost ~]# systemctl disable firewalld.service
# 检查防火墙的开机启动情况
[root@localhost ~]# systemctl list-unit-files firewalld.service | grep firewalld
配置主机IP映射
[root@localhost ~]# vi /etc/hosts
192.168.168.101 hadoop01
192.168.168.102 hadoop02
192.168.168.103 hadoop03
2.搭建Hadoop集群
配置hadoop账户的免密
#各台主机生成rsa密钥:
[root@localhost ~]# ssh-keygen -t rsa
#各台主机拷贝公钥到hadoop01:
[root@localhost ~]# ssh-copy-id hadoop01
#将hadoop01上的authorized_keys公钥文件发送给各hadoop02和hadoop03
[root@localhost ~]# scp ~/.ssh/authorized_keys hadoop02:~/.ssh
[root@localhost ~]# scp ~/.ssh/authorized_keys hadoop03:~/.ssh
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-58wwPSWD-1656424012339)(C:\Users\86130\AppData\Roaming\Typora\typora-user-images\image-20220531213129440.png)]
Hadoop概述
- Hadoop守护进程运行在集群里的机器之上
- Hadoop分布式文件系统(HDFS)的数据分布于运行datanode守护进程的节点上
- 计算框架(像MapReduce,Spark和Impala)向数据移动计算
- 为实现Hadoop的优点,必须在集群里的许多机器上部署Hadoop守护进程
- 许多组织维护多个集群,每个集群都有几百个或几千个节点
- Apache Hadoop是一个大型的复杂的系统
基本的Hadoop集群
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-su0Kgcgd-1656424012341)(C:\Users\86130\AppData\Roaming\Typora\typora-user-images\image-20220601142221673.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T42gX3Si-1656424012341)(C:\Users\86130\AppData\Roaming\Typora\typora-user-images\image-20220601142254578.png)]
不是所有守护进程都运行在每台机器上
- NameNode,ResourceManager,JobHistoryServer(“主”守护进程)
- 每个集群只有一个,除非配置了高可用
- Secondary NameNode
- 在没有配置高可用的环境下,每个集群只有一个
- DataNode,NodeManager
- 集群里的每个数据节点一个
- 例外:对于小集群(少于10-20节点),多个主守护进程运行在同一台物理节点上也是可以接受的
配置系统环境
[root@localhost ~]# sudo vi /etc/profile
[root@localhost ~]# source /etc/profile #立即生效配置
[root@localhost ~]# hadoop version #查看hadoop版本
格式化Namenode
[root@localhost ~]# hadoop namenode -format
启动与关闭Hadoop集群
[root@localhost ~]# start-all.sh 启动
[root@localhost ~]# stop-all.sh 关闭
[root@localhost ~]# jps 查看进程
Name Node Web UI
hadoop01:50070
3.HDFS
看ppt
#在 HDFS 的根目录下创建文件夹/input
[root@localhost ~]# hdfs dfs -mkdir /input#将 mr_score 文件夹里的内容都上传到 HDFS 的/input 目录下
[root@localhost ~]# hdfs dfs -put ./mr_score /input#使用 hdfs shell 查看 HDFS 的/input/mr_score 下的文件列表
[root@localhost ~]# hdfs dfs -ls /input/mr_score#使用 HDFS 客户端查看/input/mr_score/chinese.txt 文件的 内容
[root@localhost ~]# hdfs dfs -cat /input/mr_score/chinese.txt#单独从 HDFS 上下载 chinese.txt 文件到本地文件系统
[root@localhost ~]# hdfs dfs -get /input/mr_score/chinese.txt ./#合并下载/input/mr_score 下的所有文件,并以 scores.txt 命
[root@localhost ~]# hdfs dfs -getmerge /input/mr_score ./mr_score.txt#使用 hdfs shell 删除/input/mr_score/chinese.txt 文件
[root@localhost ~]# hdfs dfs -rm /input/mr_score/chinese.txt#将 HDFS 上的/input/mr_score 目前权限修改为 777
[root@localhost ~]# hdfs dfs -chmod 777 /input/mr_score#删除 HDFS 上的/input/mr_score 文件夹
[root@localhost ~]# hdfs dfs -rm -r /input#将本地文件系统上的 score.txt 文件剪切到 HDFS 上 hadoop
[root@localhost ~]# hdfs dfs -moveFromLocal score.txt /user/hadoop#查看 scores.txt 文件的最后 2 行内容
[root@localhost ~]# hdfs dfs -cat /user/hadoop/scores.txt | tail 2#往 score.txt 文件添加一行内容:zhangsan 59
[root@localhost ~]# echo "zhangsan 59" | hdfs dfs -appendToFile /user/hadoop/scores.txt
4.MapReduce
MapReduce介绍
- MapReduce是一种编程模型(计算框架)
流程图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0dCq4g6g-1656424012342)(C:\Users\86130\AppData\Roaming\Typora\typora-user-images\image-20220601195521230.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DGfj4OgW-1656424012342)(C:\Users\86130\AppData\Roaming\Typora\typora-user-images\image-20220601195344999.png)]
在hadoop集群上运行java程序
[hadoop@hadoop02 ~]# hadoop jar ~/eclipse-workspace/jars/mr_demo.jar mr.demo.WordCount zen.txt out_zen
MapReduce相较于传统的并行计算框架有什么优势?
MapReduce | |
---|---|
集群架构/容错性 | 非共享式, 容错性好 |
硬件/价格/扩展性 | 普通PC机, 便宜, 扩展性强 |
编程/学习难度 | what, 简单 |
适用场景 | 批处理, 非实时, 数据密集型 |
5.Yarn
流程图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BOTy78Vp-1656424012343)(C:\Users\86130\AppData\Roaming\Typora\typora-user-images\image-20220605143547400.png)]
什么是YARN
一种管理Hadoop集群资源的分布式系统
为什么选YARN
- YARN允许在同一个Hadoop集群上运行多种不同类型的作业
- YARN允许不同的计算框架间动态共享集群的内存和CPU资源
- 增加集群的利用率
YARN上著名的计算框架
MapReduce Spark Hive可运行在Spark或MapReduce上
YARN守护进程
ResourceManager:每个集群一个
- 初始化应用程序的启动
- 调度工作节点使用的资源
JobHistoryServer:每个集群一个
- 存档MapReduce作业的完成情况和元数据
NodeManager:每个工作节点一个
启动应用程序的进程
管理工作节点的资源
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sZdo5kix-1656424012343)(C:\Users\86130\AppData\Roaming\Typora\typora-user-images\image-20220605151348734.png)]
小结
集群的资源被YARN管理
YARN资源管理器调度资源并管理应用程序的生命周期
YARN的NodeManager启动容器
像MapReduce和Spark这样的计算框架使用YARN
开发者不需要处理集群资源管理,调度,容错,等等
YARN应用程序里的的每个任务都是由Application Master来管理的
Map Reduce作业有一个map阶段,一个shuffle和排序阶段,以及一个Reduce阶段
有许多可用的用户界面来查看YARN应用程序的详情
CM的YARN应用程序页面
资源管理器的Web UI
MapReduce作业历史服务器的Web UI
YARN应用程序日志默认被CM聚合,可从CM,HDFS客户端及命令行访问
6.zookeeper
简介
Zookeeper提供了分布式协调服务
Zookeeper数据模型类似树形文件系统
应用场景
- 集群管理
- 配置管理
- 统一命名服务
- 分布式锁
结构原理
高可用集群
容错:过半数可用就行
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gsHU3lBV-1656424012344)(C:\Users\86130\AppData\Roaming\Typora\typora-user-images\image-20220608205010139.png)]
zookeeper Shell
#查询路径下的znode
ls /#创建节点 -s 顺序节点 -e 临时节点
create /bidata
create /sk1991/201941084028 "庄泽华" #命名#查看节点信息
get /sk1991/201941084028#修改节点
set /sk1991/201941084028 "肥仔"#删除节点
delete /sk1991/201941084028
7.HDFS-HA
#创建软链接
ln -s 文件路径 链接名称
8.HBase
什么是HBase
大型分布式数据库
区别与传统数据库
硬件成本 低,
容错性 高,
数据库 大,
排列方式 稀疏多维,
存储模式 面向列,
数据类型 Bytes,
查询速度 快
基本结构
表(table)
行(row)
行键(rowkey)
列族 (column family)
列限定符(qualifier)
单元格(cell)
成员角色
主从(master/slave)模式
- HMaster
- 监控集群中所有RegionServer进程
- 集群中所有metadata信息改变的入口
- RegionServer
- 负责管理region
- Zookeeper
- 维护Hbase配置信息
- 监控RegionServer状态
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RadqJu47-1656424012344)(C:\Users\86130\AppData\Roaming\Typora\typora-user-images\image-20220608162016258.png)]
Regions详解:
- 表按行键拆分成多个regions
- RegionServer管理regions,向client提供服务
- RegionServer通常运行在集群中的工作节点
- RegionServer通常服务多个Regions
HBase Web端口
hadoop01:16016
HBase Shell
#启动 hdsf
#启动三台 zkServer
zkServer.sh start#启动 hbase
start-hbase.sh#创建表
create 表名,列族1,列族2
create 'Student','StuInfo','Grades'#插入数据
put 表名,rowkey,列族:列限定符,数据
put 'Student','0001','StuInfo:Age','18'#全表扫描
Scan 表名
Scan 'Student'#查数据
get 表名,rowkey,列族:列限定符
get 'Student','0003'
get 'Student','0001',"Grades:Computer"#删除数据
#删除单元格 delete 表名,rowkey,列族:列限定符
delete 'Student','0001','Grades:Math'
#删除一行 deleteall 表名,rowkey
deleteall 'Student','0002'
#删除表 disable 表名 drop 表名
disable 'Student'
drop 'Student'#修改数据
put 表名.rowkey,列族:列限定符,数据
put 'Student','0002','StuInfo:Age','20'#设置列族保留版本数
alter 表名,{NAME=>列族,VERSIONS=>保留的版本数}
alter 'Student',{NAME=>'StuInfo',VERSIONS=>4}#查询最近几个版本的数据
get 表名,rowkey,{COLUMN=>列族:列限定符,VERSIONS=>要查询的版本数}
get 'Student','0003',{COLUMN=>'StuInfo:Age',VERSIONS=>3}#列出所有表
list#批量执行命令
hbase shell 文本文件地址#查询表中记录数
count 表名#查询表是否存在
exist 表名
9.Hive
Hive介绍
用于解决海量结构化的日志数据统计问题
用于管理和查询结构化/ 非结构化数据的数据仓库
适用于大数据集的批处理统计分析作业
不能在大规模数据集上实现低延迟快速的查询
大数据分析为什么需要Hive
- Hive 的出现, 完美的解决了传统数据分析人员所面临的问题
- 理解mapreduce编程模型
- 自行开发代码实现业务逻辑
- 为超大数据集设计的计算/ 扩展能力
- 统一的元数据管理
Hive特点
- 简单易用 基于SQL表达式语法
- 可扩展 可以自由扩展集群规模
- 延展性 根据需求自定义函数
- 容错性 良好
Hive架构体系
- 用户接口
- Hiveserver2
- Driver
- 负责将HQL解析为MR任务,并提交给集群
- Metastore Server
- 提供元数据服务
- DataBase
- 存储元数据
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p0qEYbz8-1656424012345)(C:\Users\86130\AppData\Roaming\Typora\typora-user-images\image-20220608182122861.png)]
Hive三种运行模式
- 内嵌模式
- 本地模式
- 远程模式
数据模型
Managed Table(管理表)
- HDFS存储数据受Hive管理,在统一的路径下
- Hive对表的删除操作影响实际数据的删除
External Table(外表)
- 数据不受Hive管理,元数据由Hive管理
- Hive对表的删除操作仅仅删除元数据,实际数据不受影
永久表
- 是指永久存储在HDFS之上的表,默认创建表为永久表
临时表
- 是指仅当前Session有效的表,数据临时存放在用户的临时目录下,当前session退出后即删除
分区(Partition)
- 基于用户指定的分区列的值对数据表进行分区
- 分区从物理上分目录划分不同列的数据,用于查询的剪枝,提升查询的效率
桶(Bucket)
- 桶作为一种更细粒度的数据组织方式,用于以进一步提高查询效率
- 对于抽样非常有效
- 有利于查询优化
Hive Shell
#启动Metastore Server
hive --service metastore &
#启动hive
hive#创建表
create table sogou(
time string,
rank int)
row format delimited fields terminated by '\t';#导入外部数据
load data local inpath '/opt/sogou1000' into table sogou;#查询前两行数据
select * from sogou
limit 2;#查询有多少条数据
select count(*) from sogou;#查询搜索结构排名第1,但是点击次序排第2的数据有多少条
select count(*) from sogou
where rank==1 and num==2;#统计每分钟的查询次数
select substr(time,0,12),count(*) from sogou
group by substr(time,0,12);#查询url含百度的数据有多少条
select count(*) from sogou
where url regexp '.*baidu.*';#查询最热门的10个查询词
select wold,count(*)
from sogou
group by wold
order by count(*) desc
limit 10;
Spark
Spark介绍
Spark用十分之一的计算资源,获得了比Hadoop快3倍的速度
Spark的设计遵循“一个软件栈满足不同应用场景”的理念
RDD: 是分布式内存的一个抽象概念,提供了一种高度受限的共享内存模型
spark架构图和部署方式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VOPuPUOE-1656424012346)(C:\Users\86130\AppData\Roaming\Typora\typora-user-images\image-20220608203638162.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dSjdrRUu-1656424012347)(C:\Users\86130\AppData\Roaming\Typora\typora-user-images\image-20220608203946657.png)]
spark是否能取代hadoop
不能,因为 Spark 是基于内存进行数据处理的,所以不适合于数据量特别大、对实时性要求不高的场合。另外,Hadoop 可以使用廉价的通用服务器来搭建集群,而 Spark 对硬件要求比较高,特别是对内存和 CPU 有更高的要求。
Spark Shell
#本地读取文件
lines = sc.textFile("file:///user/word.txt")#本地存储
lines.saveAsTextFile("file:///***")#filter(func): 帅选过滤元素,返回新的数据集
newlines = lines.filter(lambda line:"a" in line)#map(func): 处理每个元素,并返回新的数据集
newlines = lines.map(lambda line:line+10)
newlines = lines.map(lambda line:line.split(','))
newlines = lines.map(lambda line:line.replace(' ',''))
newlines = lines.map(lambda line:(line,1))#groupByKey(): 应用于(K,V)键值对的数据集
newlines = lines.groupByKey()#reduceByKey(func): 应用于(K,V)键值对的数据集
newlines = lines.reduceByKey(lambda a,b:a+b)#count(): 返回数据中元素的个数
#first(): 返回数据中第一个元素
#take(n): 返回数据前n个数据
#collect(): 以数组形式返回所有元素
#foreach(func): 遍历每个元素#sortByKey(False): 排序 False表示降序#sortBy(lambda x:x[1],False) 指定按第二个值排序,降序
nes.filter(lambda line:“a” in line)
#map(func): 处理每个元素,并返回新的数据集
newlines = lines.map(lambda line:line+10)
newlines = lines.map(lambda line:line.split(‘,’))
newlines = lines.map(lambda line:line.replace(’ ‘,’'))
newlines = lines.map(lambda line:(line,1))
#groupByKey(): 应用于(K,V)键值对的数据集
newlines = lines.groupByKey()
#reduceByKey(func): 应用于(K,V)键值对的数据集
newlines = lines.reduceByKey(lambda a,b:a+b)
#count(): 返回数据中元素的个数
#first(): 返回数据中第一个元素
#take(n): 返回数据前n个数据
#collect(): 以数组形式返回所有元素
#foreach(func): 遍历每个元素
#sortByKey(False): 排序 False表示降序
#sortBy(lambda x:x[1],False) 指定按第二个值排序,降序
![在这里插入图片描述](https://img-blog.csdnimg.cn/4ae60fa6b1e840[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YlLhGA95-1656424107708)(https://imgblo
g.csdnimg.cn/89df2fdc80f84f8dad65e12df31c1c6f.jpeg#pic_center)]
期末1111111111相关推荐
- 2021-2022 CSU C语言期末考试二
1.格式转换 问题 A: 格式转换(20分) 题目描述 老师知道小南对各个国家和地区的日期和时间表示格式颇有研究,于是给了小南一个任务,将A地的时间点信息(日期表示格式为月/日/年,时间表示格式为24 ...
- 知道PHP期末答案,PHP期末练习(参考答案).doc
PHP期末练习(参考答案) 练习题 单选 以下控制选项与错误控制无关的是:( ) error_reporting display_errors log_errors date.timezone 下面不 ...
- 获取本年、本月、本周时间范围_为什么“增值税期末留抵税额本年累计数”很快就被废止了...
点击上方蓝字关注财税微波昨天丁老师和如花.似玉讨论了"增值税留抵税额"明细科目.丁老师说增值税期末留抵税额这个项目的本年累计数,很快就不填了,"增值税留抵税额&q ...
- 计算机专业期末考试是编程序,计算机专业技能期末考试题
计算机专业技能期末考试题 一.VFP数据库(共50分) 1.创建数据库 (1)以考号姓名(1801张三)创建考生文件夹及子文件夹(学号+VFP),并设置为默认路径.(4分) (2)创建zg.pjx项目 ...
- 南昌大学计算机专业高数课本,南昌大学高等数学期末考试.pdf
南昌大学2008学年第二学期高等数学期末考试试卷 ( 3 15 ) 一. 填空题 每空 分,共 分 a 3i j 2k, b i 2j k, ( ...
- 力邀安卓为鸿蒙效力,期末阅读题答题秘籍2
原标题:期末阅读题答题秘籍2 二.答题的步骤细解 看了上次的顺口溜你不知道是否明白了一切该怎么做? 顺口溜是帮助大家记忆的,毕竟语言过简,为了帮助大家很好答题,我还是详细解释一下吧. 答阅读题的第一步 ...
- 程序员期末试卷_第三部分复习提纲.doc下载
程序员期末试卷_第三部分复习提纲.doc下载 转载于:https://www.cnblogs.com/dtdnh520/archive/2007/01/20/625390.html
- 广东电大计算机绘图试题,电大计算机绘图期末复习试题及答案参考小抄.doc
电大计算机绘图期末复习试题及答案参考小抄 一.填空题(每小题1.5分,共30分) 1.CAD的常用图形输入设备有???鼠标??.数字化仪.图形输入板.光笔.??键盘 等.2.CAD的软件可分为系统软件 ...
- 清华《摸鱼学导论》开班啦!1000多学子在线摸鱼,无期末考试
点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 浩楠 萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI 什 ...
最新文章
- 一笔画 (25 分)
- linux 自定义外壳,管道在自定义的linux外壳
- python中文解释-python注释和2版本的中文乱码
- Linux程序内存跟踪,分享一款Linux进程和内存活动监视神器
- 程序猿的英语之ielts indicator speaking test
- 实现Linux系统的回收站
- 我的第一个博客正式注册
- 用友nc的java插件下载,用友nc插件下载|
- 计算机round是什么函数,计算机roundup函数是什么意思
- docker官方文档翻译5
- Android实战开发--制作圆形头像(简易篇)
- js正则之前瞻后顾与非捕获分组
- 单片机加减法计算器_课程设计--十进制加减法计算器单片机设计.doc
- 美团前端组件化开发实践
- Fairplay之streamingContentKeyRequestDataForApp makeStreamingContentKeyRequestDataForApp
- Daily English - ... is driving me up a wall.
- 如何使用 WEB 技术编写前端代码,实现大屏展示和地图显示功能
- 竟成408计算机考研辅导书介绍
- 什么是(flex)弹性盒子主轴和侧轴
- GBase 8a 哈希索引介绍