温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github:https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢
1.文档编写目的
在前面Fayson介绍了《Cloudera Navigator介绍与安装》,本篇文章主要介绍Navigator的四大核心功能,元数据搜索、数据溯源、审计以及数据生命周期管理功能。当然Navigator还一个重要的功能就是进行数据加密,因为涉及内容较多,也稍微复杂一些,所以本文这里先不介绍,Fayson会在后面的文章单独进行说明。
1.元数据搜索
2.数据溯源
3.审计
4.数据生命周期管理
1.CM和CDH版本为5.13.1
2.Navigator版本为2.12
2.元数据搜索
1.使用管理员登录Cloudera Navigator
如上图所示显示的界面即为元数据搜索功能界面。
2.根据输入的检索条件可以检索出所有涉及的内容,根据Source Type进行展示
通过关键字sqoop_hosts检索出Hive和HDFS相关的数据信息。
3.在搜索栏输入“sqoop_hosts”,根据左边的过滤条件,过滤数据源为Hive且类型为Table类型的数据
可以看到Navigator支持元数据模糊检索,支持元数据类型,类型、所属用户等条件过滤,检索出来的数据显示有数据文件的HDFS路径、所属用户、创建时间及数据源等信息。
4.查看元数据详细信息
5.进入元数据详细界面,为数据添加标签(Tag)
这里我们为元数据添加标签后,可以在元数据检索界面通过搜索“my_sqoop_hosts”标签来查找我们的元数据信息
6.修改元数据名称
修改元数据名称后,可以根据修改后的“hosts_rename”名称来搜索我们的元数据信息
通过检索出来的结果,能看到修改后的元数据名称中会有一个“Original Name”字段标识原始元数据的名称。修改的元数据名称还原后则不能检索到sqoop_hosts元数据信息
使用默认的“sqoop_hosts”检索出来的数据
我们可以看到是没有“Original Name”标识字段。
3.数据溯源管理
这里我们使用Sqoop抽取MySQL数据到HDFS,然后将创建Hive的sqoop_hosts外部表,再将sqoop_hosts表转化为hosts_paquet表,通过这系列流程查看Navigator是如何展示我们数据的流向。
1.在命令行执行脚本使用Sqoop命令通过MySQL数据库中指定表创建Hive表
[root@ip-172-31-16-68 gzshell]# vim create_hivetable.sh
#!/bin/sh
host='ip-172-31-16-68.ap-southeast-1.compute.internal'
database='cm'
user='root'
password='123456'
mysqlTable='HOSTS'
hiveDB='default'
hiveTable='sqoop_hosts'
sqoop create-hive-table \
--connect jdbc:mysql://${host}:3306/${database} --username ${user} --password ${password} \
--table ${mysqlTable} \
--hive-table ${hiveDB}.${hiveTable} \
--hive-overwrite
(可左右滑动)
2.在命令行执行脚本将MySQL表数据抽取到Hive的sqoop_hosts表中
[root@ip-172-31-16-68 gzshell]# vim import_hivetable.sh
#!/bin/sh
host='ip-172-31-16-68.ap-southeast-1.compute.internal'
database='cm'
user='root'
password='123456'
mysqlTable='HOSTS'
hiveDB='default'
hiveTable='sqoop_hosts'
tmpDir='/user/hive/warehouse/'${hiveDB}'.db/'${hiveTable}
sqoop import --connect jdbc:mysql://${host}:3306/${database} --username ${user} --password ${password} \
--table $mysqlTable \
--hive-import --hive-table ${hiveDB}.${hiveTable} --target-dir ${tmpDir} --delete-target-dir \
--hive-overwrite \
--null-string '\\N' --null-non-string '\\N'
(可左右滑动)
3.在Hue中执行SQL命令创建hosts_parquet表
create table hosts_parquet like sqoop_hosts stored as parquetfile;
(可左右滑动)
4.在命令行执行脚本将HDFS数据抽取到MySQL数据库中的test_hosts表
[root@ip-172-31-16-68 gzshell]# vim export_hivetable.sh
#!/bin/sh
###create table test_hosts like HOSTS;
host='ip-172-31-16-68.ap-southeast-1.compute.internal'
database='cm'
user='root'
password='123456'
mysqlTable='test_hosts'
hiveDB='default'
exportDir='/user/hive/warehouse/sqoop_hosts'
sqoop export --connect jdbc:mysql://${host}:3306/${database} \
--username ${user} \
--password ${password} \
--table ${mysqlTable} \
--export-dir ${exportDir} \
--input-fields-terminated-by '\01' \
-m 1
(可左右滑动)
5.完成以上的数据操作流程后,登录Navigator查看数据血缘分析
进入元数据详细界面
点击“Lineage”菜单,进入数据血缘分析界面
点击图中标注的“+”可以看到sqoop_hosts表中所有字段与hosts_parquet表中字段为一一对应
点击右侧菜单“Operations”,可以看到详细的跟踪到元数据的源头及目的地
点击每一个节点可以查看到当前节点的详细描述
可以精确到每个字段的数据流向
4.审计功能
1.我们命令行使用fayson用户访问有权限的HDFS目录
[root@ip-172-31-16-68 ~]# hadoop fs -ls /user/hive/warehouse
(可左右滑动)
2.登录Cloudera Manager Navigator进入“Audits”功能,查看fayson审计功能
添加筛选条件
点击“Apply”,可以看到我们操作HDFS的/user/hive/warehouse的审计日志
3.使用fayson用户查看无访问权限的HDFS目录
[root@ip-172-31-16-68 ~]# hadoop fs -ls /user/hdfs
(可左右滑动)
4.查看Cloudera Manager Navigator的审计日志
添加筛选条件
点击“Apply”,查看审计日志,可以看到有记录用户无权限访问该目录的日志
5.使用fayson用户登录Hue进行SQL操作,访问有权限的sqoop_hosts表
登录Navigator查看审计日志
6.操作无权限访问的hosts_parquet表
登录Navigator查看审计日志
7.同样Cloudera Manager Navigator可以对系统登录等操作进行审计,这里以Hue为例
5.数据生命周期管理
1.登录Navigator平台,点击“Policies”进入数据生命周期管理界面
2.查看“Search Query”查询条件
点击“Show full query”
3.点击“New Policy”创建一个自动分类标签的策略
点击“Save”保存策略
查看自动分类标签策略运行情况
通过元数据检索查看我们创建的策略是否执行成功
成功为我们的/user/hive/warehouse/sqoop_hosts的HDFS目录生成了my_sqoop_hosts标签。
4.创建自动归档策略
将HDFS的/wc目录移至/wc_archive目录
点击“Save”保存归档策略
查看归档策略运行状态
查看数据是否归档,在命令行查看HDFS的/wc目录
如上截图发现,HDFS的/wc目录已不存在,只存在/wc_archive,与我们创建的归档策略一致。
6.总结
提示:代码块部分可以左右滑动查看噢 为天地立心,为生民立命,为往圣继绝学,为万世开太平。 温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。
推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。
原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操