clouderamanager:图像化的界面管理工具,可以用于安装管理集群
clouderamanager:图像化的界面管理工具,可以用于安装管理集群
集群当中能够存储多少数据,取决于namenode的内存大小
hadoop联邦联盟
hadoop的基础环境增强:
hadoop的ha模式:
一般实际工作都要求7*24h的可用
oozie当中的定时任务
coordinator:oozie当中的协作器,主要适用于定时任务的执行,通过配置coordinator可以实现我们的任务
定时的任务调度
第一种:基于时间的任务调度
第二种:基于数据的任务调度
主要涉及三个配置文件
第一个:workflow.xml工作流于的定义
第二个:coordinator.xml定义定时任务,定时执行workflow.xml
oozie是分布式调度框架:
如果写一个hive的脚本,没法确定这个hive的脚本究竟会在哪一台机器上面执行
oozie启动失败解决方案
1.杀死进程kill -9 boostrap
2.进入哦哦紫萼目录,删除tmp/下所有内容或者pid文件夹
echo 1 >/proc/sys/vm/drop_caches
释放内存
解决process information unavailable
1.cd /tmp
2.rm -rf hsperfdata_impala
oozie:
任务调度的框架,调度过程主要是通过启动一个mr的任务,来执行其他的任务
定义语言使用xml语言
架构:
1.client客户端,提交任务到oozie的服务端
2.oozie-server服务端,运行一个Tomcat实例,主要用于接收客户端提交的任务
3.db数据库,服务端将客户端提交的任务都保存在db里面,默认使用的db是h2
oozie的主要三大组件
1.workflow定义工作流,从哪一个开始执行,到哪一个最终结束,最后定义完成之后,形成一个有向无环图DAG;
2.Coordinator协作器,就是一个任务调度的模块,可以设置定时任务
3.bundle捆绑器,可以将多个coordinator绑定到一起
impala:
是一个SQL查询工具
组件:
主节点:
impala-statestore:状态存储区,主要存储SQL执行的状态、进度等信息;
impala-catalog:存储impala的元数据信息
从节点:
impala-server:主要负责任务的计算
基本使用:
不进入impala-shell的一些常见参数
impala-shell -q “select * from xxx”
impala-shell -f 执行xxx.sql脚本
impala-shell -f 全量刷新元数据信息,不推荐使用
进入impala-shell的一些常见信息
refresh dbname.tablename
刷新某张表的元数据信息,适用于表已经存在的情况,例如分区信息改变
invalidate metadata
刷新元数据信息,全量刷新元数据信息,适用于hive当中新建数据库或者数据库表的情况
hive当中新建的数据库或者数据库表,需要刷新元数据信息,impala当中新建等等数据库与数据库表不需要刷新元数据信息,主要通过catalog来实现
hue:hadoop user experience
主要用于与其他框架集成,做到可视化,允许我们通过浏览器界面操作其他框架
distCp 从一个集群上面拷贝数据到另一个集群上面去
hue的主体架构:
UI:前端的管理界面
hue server:运行的一个Tomcat
hueDB:数据库存储,存放提交的一些任务信息,保存一些执行信息
hue的
impala只支持从hdfs上面加载数据
impala-shell -q "select * from xxx"
l
service mysqld start
/var/www/html
或者防火墙问题
hadoop的hdfs的短路读取特性:
client发送请求后,impala-server可直接读取本地hdfs磁盘文件,缩短请求时间
impala:sql交互查询的工具
hdfs -- mysql -- hive metastore服务 -- impala
impala与hive的关系:impala与hive是紧耦合的关系,impala需要读取hive的元数据信息,需要hive提供一个Metastore的服务端
impala的优点与缺点:
优点:
速度快
使用C++实现
缺点:内存消耗大,官方推荐每台机器最少128G的内存
impala不提供数据的存储功能,只提供数据的计算功能
impala的架构与查询计划:
impala架构:
impala-server:从节点,计算节点,主要负责执行查询任务的计算,官方建议:impala-server与每一个datanode安装在一起
impala-catalog:主节点,主要存储量元数据信息在两个地方,一个在内存中,一个在磁盘中。impala当中的元数据管理的服务
impala-statestore:主节点,状态存储区,主要存储了一些SQL执行的进度信息,状态信息等
impala的查询计划:分为两个阶段
fronted:使用Java来实现,负责生成我们的查询计划
backend:使用C++来实现,主要负责执行查询
fronted前台的查询计划分为两个阶段
第一个阶段:生成单机版的查询计划
第二个阶段:生成分布式的查询计划,将单机版的查询计划,发送到其他机器上
SQL语句的优化,其实就是查询计划的优化,单机版的优化策略与分布式策略一致
zookeeper
hadoop hdfs+mapreduce
hive:数据仓库的工具,主要用于数据分析
数据仓库主要面向数据分析 OLAP
数据库主要面向事务处理 OLTP
flume:日志数据采集
exec Source tail-F
spoolingD日 source 监控某个文件夹下面的文件
avro Source 网络传输,从上级avro sink里面接收数据
TailDir Source可以按照正则匹配,收集某一类的文件
channel memory channel
sink:如何控制文件的大小 时间长短,文件内容大小
hdfs sink
logger sink
azkaban:任务调度的框架
sqoop数据导入导出
导入:关系型数据库到hdfs
导出:hdfs到关系型数据库
离线日志的分析:
第一步:数据采集,flume,爬虫,javaAPI
第二步:数据的统一存储
第三步:数据清洗,主要目的:将半结构化的数据,转换成结构化的数据,可用MapReduce来实现
第四步:数据的映射入库,hive可以将结构化的数据映射成为一张表
第五步:数据分析,数据仓库DW层,数据分析
第六步:hive临时表当中将分析的结果存入hive的临时表中
第七步:通过sqoop工具将数据导出到MySQL当中
第八步:通过web报表展示工具,展示统计结果
开窗函数,分组求topN
级联求和
离线项目的处理流程
报表展示:echarts
flume数据的采集,flume一直在采集,不需要定时的执行
2表模型三个mr的程序
第一个:mr清洗数据
第二个:pageview表模型
第三个:visit表模型
3hive建表加载数据
每天产生的数据,都要定时加载到hive对应的分区表里面去
4数据分析的SQL语句
自己开发的hql语句
cast函数: