数科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概述

  1. Hadoop守护进程运行在集群里的机器之上
  2. Hadoop分布式文件系统(HDFS)的数据分布于运行datanode守护进程的节点上
  3. 计算框架(像MapReduce,Spark和Impala)向数据移动计算
  4. 为实现Hadoop的优点,必须在集群里的许多机器上部署Hadoop守护进程
    1. 许多组织维护多个集群,每个集群都有几百个或几千个节点
  5. 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)]

不是所有守护进程都运行在每台机器上

  1. NameNode,ResourceManager,JobHistoryServer(“主”守护进程)

    • 每个集群只有一个,除非配置了高可用
  2. Secondary NameNode
    • 在没有配置高可用的环境下,每个集群只有一个
  3. DataNode,NodeManager
    • 集群里的每个数据节点一个
  4. 例外:对于小集群(少于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介绍

  1. 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

  1. YARN允许在同一个Hadoop集群上运行多种不同类型的作业
  2. YARN允许不同的计算框架间动态共享集群的内存和CPU资源
  3. 增加集群的利用率

YARN上著名的计算框架

MapReduce Spark Hive可运行在Spark或MapReduce上

YARN守护进程

  1. ResourceManager:每个集群一个

    1. 初始化应用程序的启动
    2. 调度工作节点使用的资源
  2. JobHistoryServer:每个集群一个

    1. 存档MapReduce作业的完成情况和元数据
  3. NodeManager:每个工作节点一个

    1. 启动应用程序的进程

    2. 管理工作节点的资源

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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数据模型类似树形文件系统

应用场景

  1. 集群管理
  2. 配置管理
  3. 统一命名服务
  4. 分布式锁

结构原理

高可用集群

​ 容错:过半数可用就行

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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)模式

  1. HMaster

    1. 监控集群中所有RegionServer进程
    2. 集群中所有metadata信息改变的入口
  2. RegionServer
    1. 负责管理region
  3. Zookeeper
    1. 维护Hbase配置信息
    2. 监控RegionServer状态

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RadqJu47-1656424012344)(C:\Users\86130\AppData\Roaming\Typora\typora-user-images\image-20220608162016258.png)]

Regions详解:

  1. 表按行键拆分成多个regions
  2. RegionServer管理regions,向client提供服务
  3. RegionServer通常运行在集群中的工作节点
  4. 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

  1. Hive 的出现, 完美的解决了传统数据分析人员所面临的问题

    1. 理解mapreduce编程模型
    2. 自行开发代码实现业务逻辑
  2. 为超大数据集设计的计算/ 扩展能力
  3. 统一的元数据管理

Hive特点

  1. 简单易用 基于SQL表达式语法
  2. 可扩展 可以自由扩展集群规模
  3. 延展性 根据需求自定义函数
  4. 容错性 良好

Hive架构体系

  1. 用户接口
  2. Hiveserver2
  3. Driver
    1. 负责将HQL解析为MR任务,并提交给集群
  4. Metastore Server
    1. 提供元数据服务
  5. DataBase
    1. 存储元数据

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p0qEYbz8-1656424012345)(C:\Users\86130\AppData\Roaming\Typora\typora-user-images\image-20220608182122861.png)]

Hive三种运行模式

  1. 内嵌模式
  2. 本地模式
  3. 远程模式

数据模型

  1. Managed Table(管理表)

    1. HDFS存储数据受Hive管理,在统一的路径下
    2. Hive对表的删除操作影响实际数据的删除
  2. External Table(外表)

    1. 数据不受Hive管理,元数据由Hive管理
    2. Hive对表的删除操作仅仅删除元数据,实际数据不受影
  3. 永久表

    1. 是指永久存储在HDFS之上的表,默认创建表为永久表
  4. 临时表

    1. 是指仅当前Session有效的表,数据临时存放在用户的临时目录下,当前session退出后即删除
  5. 分区(Partition)

    1. 基于用户指定的分区列的值对数据表进行分区
    2. 分区从物理上分目录划分不同列的数据,用于查询的剪枝,提升查询的效率
  6. 桶(Bucket)

    1. 桶作为一种更细粒度的数据组织方式,用于以进一步提高查询效率
    2. 对于抽样非常有效
    3. 有利于查询优化

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相关推荐

  1. 2021-2022 CSU C语言期末考试二

    1.格式转换 问题 A: 格式转换(20分) 题目描述 老师知道小南对各个国家和地区的日期和时间表示格式颇有研究,于是给了小南一个任务,将A地的时间点信息(日期表示格式为月/日/年,时间表示格式为24 ...

  2. 知道PHP期末答案,PHP期末练习(参考答案).doc

    PHP期末练习(参考答案) 练习题 单选 以下控制选项与错误控制无关的是:( ) error_reporting display_errors log_errors date.timezone 下面不 ...

  3. 获取本年、本月、本周时间范围_为什么“增值税期末留抵税额本年累计数”很快就被废止了...

        点击上方蓝字关注财税微波昨天丁老师和如花.似玉讨论了"增值税留抵税额"明细科目.丁老师说增值税期末留抵税额这个项目的本年累计数,很快就不填了,"增值税留抵税额&q ...

  4. 计算机专业期末考试是编程序,计算机专业技能期末考试题

    计算机专业技能期末考试题 一.VFP数据库(共50分) 1.创建数据库 (1)以考号姓名(1801张三)创建考生文件夹及子文件夹(学号+VFP),并设置为默认路径.(4分) (2)创建zg.pjx项目 ...

  5. 南昌大学计算机专业高数课本,南昌大学高等数学期末考试.pdf

    南昌大学2008学年第二学期高等数学期末考试试卷 ( 3 15 ) 一. 填空题 每空 分,共 分           a 3i  j  2k, b i  2j  k, ( ...

  6. 力邀安卓为鸿蒙效力,期末阅读题答题秘籍2

    原标题:期末阅读题答题秘籍2 二.答题的步骤细解 看了上次的顺口溜你不知道是否明白了一切该怎么做? 顺口溜是帮助大家记忆的,毕竟语言过简,为了帮助大家很好答题,我还是详细解释一下吧. 答阅读题的第一步 ...

  7. 程序员期末试卷_第三部分复习提纲.doc下载

    程序员期末试卷_第三部分复习提纲.doc下载 转载于:https://www.cnblogs.com/dtdnh520/archive/2007/01/20/625390.html

  8. 广东电大计算机绘图试题,电大计算机绘图期末复习试题及答案参考小抄.doc

    电大计算机绘图期末复习试题及答案参考小抄 一.填空题(每小题1.5分,共30分) 1.CAD的常用图形输入设备有???鼠标??.数字化仪.图形输入板.光笔.??键盘 等.2.CAD的软件可分为系统软件 ...

  9. 清华《摸鱼学导论》开班啦!1000多学子在线摸鱼,无期末考试

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 浩楠 萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI 什 ...

最新文章

  1. 一笔画 (25 分)
  2. linux 自定义外壳,管道在自定义的linux外壳
  3. python中文解释-python注释和2版本的中文乱码
  4. Linux程序内存跟踪,分享一款Linux进程和内存活动监视神器
  5. 程序猿的英语之ielts indicator speaking test
  6. 实现Linux系统的回收站
  7. 我的第一个博客正式注册
  8. 用友nc的java插件下载,用友nc插件下载|
  9. 计算机round是什么函数,计算机roundup函数是什么意思
  10. docker官方文档翻译5
  11. Android实战开发--制作圆形头像(简易篇)
  12. js正则之前瞻后顾与非捕获分组
  13. 单片机加减法计算器_课程设计--十进制加减法计算器单片机设计.doc
  14. 美团前端组件化开发实践
  15. Fairplay之streamingContentKeyRequestDataForApp makeStreamingContentKeyRequestDataForApp
  16. Daily English - ... is driving me up a wall.
  17. 如何使用 WEB 技术编写前端代码,实现大屏展示和地图显示功能
  18. 竟成408计算机考研辅导书介绍
  19. 什么是(flex)弹性盒子主轴和侧轴
  20. GBase 8a 哈希索引介绍

热门文章

  1. PCB铜箔厚度单位为什么是盎司(Oz)
  2. 怎么看伦敦银实时行情走势图?
  3. Tersonflow Serving原理
  4. 强迫症患者 (15 分)
  5. Android游戏《UP住模拟器》开发日志:手机线性马达的调教
  6. 港中文大学计算机科学面试吗,听说过香港有需要面试的专业,但没想到这些居然还要笔试??...
  7. HTML5视频监控技术预研
  8. 区块链 拜占庭算法
  9. 页面搜索引擎优化技术将提升你的排名
  10. 风险评估中的渗透测试