Linux,hadoop、hive总结

Linux总结:

Linux主要的内容有:centos7.5的安装,配置内部的网卡,网络适配器,以及安装push,Redis,jkd1.8,mysql等软件的安装和各种不同的安装命令。以及Linux常用的命令。

Hadoop总结:

Hadoop的核心组件有HDFS、MapReduce和Yarn,以及其他常用组件如:HBase、Hive、Hadoop Streaming、Zookeeper等。具体如下图:

HDFS:分布式海量数据存储功能
Yarn:提供资源调度与任务管理功能
资源调度:根据申请的计算任务,合理分配集群中的计算节点(计算机)。
任务管理:任务在执行过程中,负责过程监控、状态反馈、任务再调度等工作。
MapReduce:分布式并行编程模型和计算框架。解决分布式编程门槛高的问题,基于其框架对分布式计算的抽象map和reduce,可以轻松实现分布式计算程序。
Hive:提供数据摘要和查询的数据仓库。解决数据仓库构建问题,基于Hadoop平台的存储与计算,与传统SQL相结合,让熟悉SQL的编程人员轻松向Hadoop平台迁移。
Streaming:解决非Java开发人员使用Hadoop平台的语言问题,使各种语言如C++、python、shell等均可以无障碍使用Hadoop平台。
HBase:基于列式存储模型的分布式数据库。解决某些场景下,需要Hadoop平台数据及时响应的问题。
Zookeeper:分布式协同服务。主要解决分布式下数据管理问题:统一命名、状态同步、集群管理、配置同步等。

Hdfs架构设计图及各主要模块和运行流程:

Hdfs主要有:namenode:管理元数据,DataNode:储存数据,client 和客户端交互。有两个模块 一个是读文件 一个是写文件。

读文件的流程:client 接收到请求,client 请求namenode获取文件的位置,然后client读取DataNode上的数据,在客户端处理好之后给用户。

写文件的流程:client接收到请求,client 请求namenode询问应该把数据放到哪里。然后client流式储存这个数据到block上,然后这个数据复制到备份机上,备份机存好之后。另外一台备份机上再存储一次。

HDFS高可用性措施
1 冗余备份 2 跨机架副本存放 3 心跳检测 4 数据完整性检测 5 安全模式 6 核心文件备份 7 空间回收。

HDFS的主要命令有:
Hdfs dfs -ls

Hdfs dfs -put

Hdfs dfs -mkdir

Hdfs dfs -get

Hdfs dfs -help

Hdfs dfs -cat

Hdfs dfs -rm

Hdfs dfs -text

Hdfs dfs -touch

Hdfs dfs -cp

HDFS数据格式详解:
文件格式:文件格式按面向的存储形式不同,分为面向行和面向列的两大类文件格式。

压缩格式:压缩格式按其可切分计算性,分为可切分计算和不可切分计算两种

MapReducer的流程:Pre-map 对数据进行切割,分成多个split。Map 把数据转换成K,V形式,然后进行partition分区并且排序,然后进行combine本地聚合,然后到shuffle ,拷贝map节点的数据,然后进行文件合并,然后sort排序,然后到reducer阶段,对数据聚合,然后输出到hdfs上。

流程图如下:

在平台上运行 yarn jar testhdfs-jar-with-dependencies.jar 类名 +文件地址;

 MapReduce技术特征
1向“外”横向扩展,而非向“上”纵向扩展

2失效被认为是常态

3移动计算,把处理向数据迁移(数据本地性)

4顺序处理数据、避免随机访问数据

5推测执行

6平滑无缝的可扩展性

7为应用开发隐藏系统底层细节

Yarn双层调度架构设计图及各模块的主要作用和运行流程:

Yarn 主要是由resourcemanager,nodemanager,applicationmaster和container组成。

Resourcemanager的作用有:1处理客户端的请求,2监控nodemanager,3启动applicationmaster。4资源分配与调度。

Nodemanager的主要作用有:1管理单个节点上的资源,2处理resourcemanager的命令,3处理applicationmaster的命令。

Applicationmaster的作用有:1向resourcemanager汇报心跳,2向resourcemanager申请资源,开启任务,3 Applicationmaster负责task的管理。

Container的作用有:1是yarn中资源的抽象,Applicationmaster和task都运行在这里。要注意的是:使用Container可能会导致数据出现不一样的情况。

运行流程图如下:

Yarn特点:
资源管理与计算框架解耦设计,一个集群资源共享给上层各个计算框架,按需分配,大幅度提高资源利用率
运维成本显著下降,只需运维一个集群,同时运行满足多种业务需求的计算框架
集群内数据共享一致,数据不再需要集群间拷贝转移,达到共享互用
避免单点故障、集群资源扩展得到合理解决
Yarn常用调度策略:
1先进先出:排队进行任务的处理,先到先做

2容器调度器:允许多用户共享整个集群,每个用户或组织分配专门的队列,不支持抢占式。队列内部默认使用FIFO,也支持Fair调度

3公平调度器:目标是为所有用户分配公平的资源。也支持多用户共享集群,也可划分多队列。队列内部不是FIFO,而是采用公平分配的方式。

 Yarn容错性说明
ResourceManager(RM) Failure
同时启动多个RM,基于Zookeeper实现HA避免单点故障,但同时只有一个是active状态

ApplicationMaster(AM) Failure
ApplicationMaster挂掉后,由ResourceManager负责重启。ResourceManager的ApplicationsManager模块会保存已经完成的Task,重启后无需重新运行。ApplicationMaster需要处理内部任务的容错问题,如Task Failure。

NodeManager(NM) Failure
若包含Task计算任务执行失败后,ApplicationMaster决定处理方法。若包含AM任务,则由RM重启一个新的Container运行AM。

Task Failure
通过心跳把信息反馈给AM,或者心跳超时被AM感知,由AM通过重试恢复Task。
 

hive总结:

1.hive数据模型:

数据类型:

数值型:

 

日期类型:

字符串:

 

字节数组:

 

复杂(集合)数据类型:

 

 数据操作分类:

操作分类

具体操作

sql备注

DDL(数据定义语言)

•创建数据库

•建/删除表

•修改表结构

•创建/删除视图 

•显示命令

Create/Drop/Alter Database

Create/Drop/Truncate Table

Alter Table/Partition/Column

Create/Drop/Alter View

Create/Drop Index

Create/Drop Function

Show functions;

Describe function;

DML(数据操作语言)

•数据插入(insert,load)

load data...into table

insert overwrite table 

DQL(数据查询语言)

•数据查询(select)

 

 

DDL:

  1. 关键词解释
  • external: 创建内部表还是外部表,此为内外表的唯一区分关键字。
  • comment col_comment: 给字段添加注释
  • comment table_comment: 给表本身添加注释
  • partitioned by: 按哪些字段分区,可以是一个,也可以是多个
  • clustered by col_name... into num_buckets BUCKETS:按哪几个字段做hash后分桶存储
  • row format:用于设定行、列、集合的分隔符等设置
  • stored as : 用于指定存储的文件类型,如text,rcfile等
  • location : 设定该表存储的hdfs目录,如果不手动设定,则采用hive默认的存储路径

示例:

CREATE TABLE practice_student_base_info(
stdno string,
name string,
gender int,
age int,
birthday string,
province string,
city string,
area string,
tags string
)
comment '学生信息主表'
partitioned by (come_date string comment '按入创建时间分区')
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY '\t' 
LINES TERMINATED BY '\n'
STORED AS  textfile;
  • 查看已存在表的详细信息

show create table或者desc tablename/desc formatted tablename

  • 加载HDFS数据文件的脚本                                                                                                
  • LOAD DATA INPATH '/tmp/fanyuanhui/practice_student_base_info.txt' 
    OVERWRITE INTO TABLE practice_student_base_info
    PARTITION (come_date=20220504);
    

 关于外表的说明和使用

  • 内外表的唯一区分标识,即为external关键字。创建表时候有,则为外表,没有则默认均为内表。
  • 内表和外表的hdfs目录,均可以自由指定location,如不指定,则数据存储在hive的默认hdfs目录中,且后续均可以自由改变,但改变的场景不多,一般为了省事都不会轻易改变存储目录。
  • 应用场景
    • 如果表数据是外部load过来的,即为不可hive内部自生成,此时的表必须是外表。
    • 如果表数据是hive内部可以自生成的,即不需要依赖外部的load数据,则此时的表应该是内表。

Hive系统函数:

  • 查看所有系统函数

        show functions

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值