网站建设技术有哪些,网络整合营销4i原则,建站网站哪个最好,智慧景区网站建设hadoop相比于传统文件系统的优点#xff1a; 1.无限扩展 2.传统文件元数据分布在不同的机器上难以寻找#xff0c;通过将元数据统一存放在一个服务器上解决 3.传统文件太大导致上传下载慢#xff0c;通过分块并行上传到服务器解决 4.副本机制数据不容易丢失#xff0c;解决…hadoop相比于传统文件系统的优点 1.无限扩展 2.传统文件元数据分布在不同的机器上难以寻找通过将元数据统一存放在一个服务器上解决 3.传统文件太大导致上传下载慢通过分块并行上传到服务器解决 4.副本机制数据不容易丢失解决数据安全问题 rack代表机架 namenode里面记录元数据 namenode是主结点 datanode是从结点 hdfs中的文件是分块存储的 namenode管理的元数据有两种类型 1.文件自身属性信息 2.文件块位置映射信息文件位置
namespace命名空间 由namenode来维护 文件具体的各个block由datanode来管理
namenode管理的内容 1.文件系统元数据 2.namespace树结构 3.文件和块的位置信息 4.访问权限 所以namenode是唯一入口
secondrynode 是namenode的辅助结点帮助主角色进行元数据文件的合并 datanode负责最终block块的创建 datanode所在机器挂掉namenode会安排其他的datanode进行副本复制
pipeline管道的存在充分利用了每一个机器的带宽避免了网络瓶颈和高延时的连接 管道传输后还会进行ack反向验证是两两之间的验证验证不成功上一台机器重新发送就可全部验证成功则整体无问题
默认副本存储策略 1.第一个副本存在本地 2.第二个存在不同机架 3.第三个相同机架不同位置
hdfs写数据流程 1.客户端发送create命令给namenode 2.namenode检查是否符合格式检查通过返回输出流 3.客户端写入输出流并通过管道进行备份并进行ack校验 4.在写入时会将数据分为数据包由namenode挑选出时候存储副本的datanode地址默认3份包括原数据 5.客户端告知namenode写入完成等该namenode确认因为namenode已经知道将上传的文件放到哪3个datanode所以只需要等最小复制块返回成功就是成功在上传文件中只要上传副本成功1个那么就算成功
MapReduce思想 map拆分 reduce:合并 不可拆分或者相互间有依赖的数据无法完成计算 核心将数据分给多个服务器并行处理最后将结果合并这样可以充分利用服务器
一个完整的MapReduce程序在运行时有三类 1.MrAppmaster负责整个MR程序的过程调度和协调 2.MapTask负责map阶段的整个数据处理流程 3.ReduceTask负责reduce阶段的数据处理流程
一个模型中只能有一个map阶段和一个reduce阶段 整个MapReduce程序中都是以键值对的形式存在的
Map阶段执行过程 1.逻辑切片一个切片由一个maptask处理默认128m一个切片默认等于物理块的大小 2.按行读取key是行数偏移值value是每一行的内容 3.读取一个解析一个 4.分区默认不分区分区数量等于reducetask数量 5.map输出数据到内存缓冲区满后spill溢出到磁盘并根据key进行排序 6.merge合并所有的溢出文件为一个文件 Reduce阶段执行过程 1.主动拉取自己要处理的数据 2.将分散的数据合并再排序 3.对键相对的键值对调用reduce方法进行合并将最终结果输出到hdfs文件中
Shuffle机制的原理 从Map产生输出到reduce取得数据之前的过程称为shuffle机制 Map端Shuffle
Collect阶段Spill阶段Merge阶段
Reduce端Shuffle
Copy阶段Merge阶段Sort阶段
机制弊端 频繁涉及数据在内存和磁盘的多次往复
Yarn 一个通用的资源管理和调度平台 资源管理集群的硬件资源和程序运行相关比如内存cpu 调度平台多个程序同时申请计算资源如何分配调度的规则算法 通用不仅支持MapReduce支持各种计算程序
Yarn三大组件
ResourseManager物理最终仲裁者NodeManager物理管理本机器的资源ApplicationMasterApp层面应用程序的老大负责程序资源申请监督程序运行ClientContainer
Yarn总体分为两个阶段
客户端启动ApplicationMasterApplicationMaster为他申请资源
MapReduce提交到Yarn交互流程
用户通过客户端向Yarn中ResourseManager提交应用程序ResourseMaznager为这个应用程序分配container并与NodeManager通信在container内启动ApplicationMasterApplicationMaster启动后向ResourseMaznager注册ApplicationMaster开始申请资源ApplicationMaster申请到资源向NodeManager通信让他开启任务NodeManager配置环境并开启任务向ApplicationMaster汇报任务ApplicationMaster向ResourseMaznager注销关闭自己
调度器策略
先进先出调度器不适合共享容量调度器多个组织共享公平调度器
数据仓库 用来存储分析报告的系统
为什么不用普通数据库进行存储分析呢
在正常运行的数据库上面进行分析会导致正常的业务处理缓慢数据存储量不大一般只存放几个月的数据数据分散在不同系统不同的表中字段类型属性不统一
数据仓库主题
面向主题集成时变非易失
Hive hive是建立在hadoop之上的数据仓库系统可以将hadoop文件中的结构化半结构化程序映射为一张数据库表提供了一种sql的查询语言 hive核心是将HQL转化为MapReduce程序然后提交到hadoop集群运行
Hive组件
客户端通过网络进行交互元数据存储存储表的名字列分区属性表数据所在目录驱动程序包括语法解析器编译器优化器执行器执行引擎
Hive安装部署
元数据存储在关系型数据表中如hive内置的Derby或第三方的Mysql元数据服务用来管理元数据对外暴露服务地址由客户端连接元数据服务再由元数据服务去连接mysql存取元数据
元数据配置方式
内嵌模式本地模式远程模式 新老客户端
Hive Cli (Hive第一代客户端通过metastore来执行)Beeline (Hive第二代客户端通过hiveserver2来执行) hiveserver2需要依赖metastore来运行
Hive sql
create database 命令创建的数据库在hadoop中/user/hive/warehouse路径下use 命令可以切换数据库drop database 命令可以删除数据库默认数据库为空才能删除create table 命令可以创建表 数据类型有原生数据类型和复杂数据类型 分隔符指定语法只要是字段之间的分隔
create table t_archer(id int comment ID编号,name string comment 英雄名称,hp_max int comment 最大生命,mp_max int comment 最大法力,attack_max int comment 最高物攻,defense_max int comment 最大物防,attack_range string comment 攻击范围,role_main string comment 主要定位,role_assist string comment 次要定位
)
row format delimited
fields terminated by \t; --字段之间的分隔符 制表符如果不写fields terminated默认的分隔符是\001
show databases 命令可以展示所有数据库show tables [in database]命令可以展示当前数据库下所有表desc formatted 命令用来显示表的元数据信息
注释中文乱码解决 在mysql修改元数据信息
alter table hive3.COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;
alter table hive3.TABLE_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
alter table hive3.PARTITION_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8 ;
alter table hive3.PARTITION_KEYS modify column PKEY_COMMENT varchar(4000) character set utf8;
alter table hive3.INDEX_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;load 命令 本地指的是hive2所在服务器的本地而不是客户端的本地 从本地加载文件本质是hdfs的put操作
LOAD DATA LOCAL INPATH /root/hivedata/students.txt INTO TABLE student_local;从hdfs加载文件本质是hdfs的mv操作
LOAD DATA INPATH /students.txt INTO TABLE student_HDFS;insert select命令通常组合使用insert命令要走mr时间长建议使用load命令内置函数和用户定义函数 用户定义函数有UDF,UDAF,UDTFUDF 普通函数 一进一出UDAF 聚合函数 多进一出UDTF 表生成函数 一进多出
Hive数据仓库开发
建库建表etl数据清洗 在数据库中也可以进行格式转换但是效率不高不如直接将需要的值读入所以需要数据清洗
通常用create table as select来进行数据清洗
FineBi是自助大数据分析的工具