一、Navigator的安装**

1.1、Navigator数据库创建

  1. 创建Navigator元数据库,使用MySQL创建数据库,建库如下:
    1. create database nms default character set utf8;
    2. CREATE USER 'nms'@'%' IDENTIFIED BY 'password';
    3. GRANT ALL PRIVILEGES ON nms. * TO 'nms'@'%';
    4. FLUSH PRIVILEGES;
    5. create database nas default character set utf8;
    6. CREATE USER 'nas'@'%' IDENTIFIED BY 'password';
    7. GRANT ALL PRIVILEGES ON nas. * TO 'nas'@'%';
    8. FLUSH PRIVILEGES;

image.png

  1. 创建MySQL JDBC驱动并创建软链接

    1. cd /usr/share/java/
    2. ln -s mysql-connector-java-5.1.34.jar mysql-connector-java.jar

    image.png

    1.2、添加角色

  2. 使用管理员登录Cloudera Manager的Web界面,进入Cloudera Management Service服务

image.png

  1. 点击【实例】,进入实例界面,点击【添加角色实例】

image.png

  1. 选择【Navigator Metadata Server】和【Navigator Audit Server】角色部署的节点

image.png

  1. 输入角色所使用的数据库账号及密码并点击【测试连接】,连接成功点击继续

image.png

  1. 进入实例列表,显示角色已安装成功

image.png

  1. 选择【Navigator Audit Server】和【Navigator Metadata Server】服务,点击【启动角色】

image.png
image.png

  1. 等待重启完毕

image.png

  1. 角色添加完毕如下图:

image.png

  1. 重启过时服务

image.png
image.png

二、Navigator的使用

1、访问入口

  1. 进入Cloudera Management Service服务,点击【Navigator Metadata Server】

image.png

  1. 在Cloudera Manager首页点击【集群】菜单

image.png

  1. 也可以在浏览器输入如下地址访问
  1. http://192.168.0.200:7187/login.html

(可左右滑动)

  1. 输入账号密码,进如Navigator主页面(账户密码都是 admin)

image.png

2、元数据搜索

  1. 使用管理员登录Cloudera Navigator(下图为元数据搜索功能界面)

image.png

  1. 根据输入的检索条件可以检索出所有涉及的内容,根据Source Type进行展示

image.png

  1. 在搜索栏输入【testhive】,根据左边的过滤条件,过滤数据源为Hive且类型为Table类型的数据

image.png

  1. Navigator支持元数据模糊检索,元数据类型,所属用户等条件过滤,检索出来的数据显示有数据文件的HDFS路径、所属用户、创建时间及数据源等信息。
  2. 查看元数据详细信息

image.png
image.png

  1. 进入元数据详细界面,为数据添加标签(Tag)

image.png
image.png

  1. 添加成功如下图所示

image.png

  1. 可以通过标签检索我们的元数据信息

image.png

  1. 修改元数据名称

image.png
image.png

  1. 修改元数据名称后,可以根据修改后的名称来搜索我们的元数据信息

image.png

  1. 通过检索出来的结果,能看到修改后的元数据名称中会有一个【Original Name】字段标识原始元数据的名称。修改的元数据名称还原后则不能检索到testhive1元数据信息

image.png
image.png

  1. 使用默认的【testhive1】检索出来的数据

image.png

3、数据溯源管理

3.1、案例:

使用Sqoop抽取MySQL数据到HDFS,然后将创建Hive的sqoop_hosts外部表,再将sqoop_hosts表转化为hosts_paquet表,通过这系列流程查看Navigator是如何展示我们数据的流向。

3.2、依照HOSTS表在Hive种创建sqoop_hosts表

  1. 脚本使用Sqoop命令通过MySQL数据库中指定表(HOSTS表)创建Hive表(sqoop_hosts表) ``` vim create_hivetable.sh ————复制如下内容——————-

    !/bin/sh

    host=’cdh1.macro.com’ 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
  1. ![image.png](https://cdn.nlark.com/yuque/0/2020/png/2680099/1606813191495-7bb56bab-3920-4092-9509-44b0215825ac.png#align=left&display=inline&height=174&margin=%5Bobject%20Object%5D&name=image.png&originHeight=221&originWidth=946&size=20118&status=done&style=none&width=746)
  2. 2. **执行结果如下**
  3. ![image.png](https://cdn.nlark.com/yuque/0/2020/png/2680099/1606811584973-b989e88f-024e-4894-b7ee-8e3b9f3b738a.png#align=left&display=inline&height=136&margin=%5Bobject%20Object%5D&name=image.png&originHeight=228&originWidth=1250&size=48108&status=done&style=none&width=746)
  4. <a name="H3KAI"></a>
  5. ### 3.2、导入Mysql数据至Hive
  6. 1. **在命令行执行脚本将MySQL表数据抽取到Hivesqoop_hosts表中**

vim import_hivetable.sh ———复制如下内容——————

!/bin/sh

host=’cdh1.macro.com’ database=’cm’ user=’cm’ password=’password’ 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’

  1. ![image.png](https://cdn.nlark.com/yuque/0/2020/png/2680099/1606813849684-edaa7354-a838-462d-ac13-3a1e3120f0a1.png#align=left&display=inline&height=130&margin=%5Bobject%20Object%5D&name=image.png&originHeight=237&originWidth=1359&size=28210&status=done&style=none&width=746)
  2. 2. **执行结果如下:**
  3. ![image.png](https://cdn.nlark.com/yuque/0/2020/png/2680099/1606813757063-dc2e78eb-10b0-4c5c-827e-2c14d88090a2.png#align=left&display=inline&height=325&margin=%5Bobject%20Object%5D&name=image.png&originHeight=595&originWidth=1364&size=79921&status=done&style=none&width=746)
  4. 3. **查询该表结果如下:**
  5. ![image.png](https://cdn.nlark.com/yuque/0/2020/png/2680099/1606813824227-cea14208-c635-43c2-8e39-9b50f637bce5.png#align=left&display=inline&height=310&margin=%5Bobject%20Object%5D&name=image.png&originHeight=620&originWidth=1500&size=114893&status=done&style=none&width=750)
  6. 4. Hue中执行SQL命令创建hosts_parquet
  7. ```sql
  8. create table sqoop_parquet like sqoop_hosts stored as parquetfile;
  1. 执行结果如下:

image.png

3.4、导入Hive数据至Mysql

  1. 在mysql的cm数据库中创建test_hosts表

    1. create table test_hosts like HOSTS;
    2. desc test_hosts;

    image.png

  2. 创建脚本,执行将HDFS数据抽取到MySQL数据库中的test_hosts表 ``` vim export_hivetable.sh


!/bin/sh

host=’cdh1.macro.com’ database=’cm’ user=’cm’ password=’password’ 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

  1. ![image.png](https://cdn.nlark.com/yuque/0/2020/png/2680099/1606814132131-a1c5935e-31a3-4015-a0a1-2ab43ee4bfe9.png#align=left&display=inline&height=130&margin=%5Bobject%20Object%5D&name=image.png&originHeight=237&originWidth=1364&size=26198&status=done&style=none&width=746)
  2. 3. 执行结果如下:
  3. ![image.png](https://cdn.nlark.com/yuque/0/2020/png/2680099/1606814790293-273cc6fc-c168-4bea-bc8d-5c94757abf0b.png#align=left&display=inline&height=459&margin=%5Bobject%20Object%5D&name=image.png&originHeight=908&originWidth=1475&size=202763&status=done&style=none&width=746)
  4. <a name="YVngQ"></a>
  5. ### 3.5、Navigator查看数据血缘分析
  6. 1. 完成以上的数据操作流程后,登录Navigator,查看数据血缘分析。
  7. ![image.png](https://cdn.nlark.com/yuque/0/2020/png/2680099/1606815076812-41045b84-f399-4a5b-a825-7b13dce26662.png#align=left&display=inline&height=310&margin=%5Bobject%20Object%5D&name=image.png&originHeight=620&originWidth=1500&size=80361&status=done&style=none&width=750)
  8. 2. 进入元数据详细界面
  9. ![image.png](https://cdn.nlark.com/yuque/0/2020/png/2680099/1606894740800-6a512b72-78f2-49b1-b01d-4a82b6b846e8.png#align=left&display=inline&height=783&margin=%5Bobject%20Object%5D&name=image.png&originHeight=783&originWidth=1618&size=118963&status=done&style=none&width=1618)
  10. 3. 点击【Lineage】菜单,进入数据血缘分析界面
  11. ![image.png](https://cdn.nlark.com/yuque/0/2020/png/2680099/1606894773314-f3677e72-0cf0-4ae7-a6a0-1a6008eadcb2.png#align=left&display=inline&height=783&margin=%5Bobject%20Object%5D&name=image.png&originHeight=783&originWidth=1618&size=72208&status=done&style=none&width=1618)
  12. 4. 点击图中标注的【+】可以看到sqoop_hosts表中所有字段与hosts_parquet表中字段为11对应
  13. ![image.png](https://cdn.nlark.com/yuque/0/2020/png/2680099/1606894836750-2fdbf767-df63-41aa-a7d9-7e9ccdb6476a.png#align=left&display=inline&height=783&margin=%5Bobject%20Object%5D&name=image.png&originHeight=783&originWidth=1618&size=82303&status=done&style=none&width=1618)<br />![image.png](https://cdn.nlark.com/yuque/0/2020/png/2680099/1606895286564-7dbf3e1c-46d2-435d-9f5c-9741ae375c2a.png#align=left&display=inline&height=783&margin=%5Bobject%20Object%5D&name=image.png&originHeight=783&originWidth=1618&size=155611&status=done&style=none&width=1618)<br />
  14. 5. 点击右侧菜单【Operations】,可以看到详细的跟踪到元数据的源头及目的地
  15. ![image.png](https://cdn.nlark.com/yuque/0/2020/png/2680099/1606895393534-597df16b-cdb1-4c41-be9d-3435670bb067.png#align=left&display=inline&height=783&margin=%5Bobject%20Object%5D&name=image.png&originHeight=783&originWidth=1618&size=102287&status=done&style=none&width=1618)
  16. 6. 点击每一个节点可以查看到当前节点的详细描述
  17. ![image.png](https://cdn.nlark.com/yuque/0/2020/png/2680099/1606895440370-ec8f1626-8b7e-4e7e-8c4a-9dd01994df83.png#align=left&display=inline&height=783&margin=%5Bobject%20Object%5D&name=image.png&originHeight=783&originWidth=1618&size=116057&status=done&style=none&width=1618)
  18. 7. 可以精确到每个字段的数据流向
  19. ![image.png](https://cdn.nlark.com/yuque/0/2020/png/2680099/1606895473003-32ca91d3-57bf-424a-bf9d-06e798d39ec7.png#align=left&display=inline&height=783&margin=%5Bobject%20Object%5D&name=image.png&originHeight=783&originWidth=1618&size=142529&status=done&style=none&width=1618)
  20. <a name="FLdMu"></a>
  21. ## 4、审计功能
  22. 1. 我们命令行使用hdfs用户访问有权限的HDFS目录

kinit hdfs hadoop fs -ls /user/hive/warehouse

  1. ![image.png](https://cdn.nlark.com/yuque/0/2020/png/2680099/1607147661021-87f72cc6-0672-46ae-8bf7-b066d2d21e0f.png#align=left&display=inline&height=243&margin=%5Bobject%20Object%5D&name=image.png&originHeight=243&originWidth=909&size=29580&status=done&style=none&width=909)
  2. 2. 登录Cloudera Manager Navigator进入【Audits】功能,添加筛选条件查看审计功能
  3. ![image.png](https://cdn.nlark.com/yuque/0/2020/png/2680099/1607147750662-38621cda-0a20-4d36-a591-2bfdea737bc0.png#align=left&display=inline&height=687&margin=%5Bobject%20Object%5D&name=image.png&originHeight=687&originWidth=1349&size=64902&status=done&style=none&width=1349)
  4. 3. 点击【Apply】,可以看到我们操作HDFS的/user/hive/warehouse的审计日志
  5. ![image.png](https://cdn.nlark.com/yuque/0/2020/png/2680099/1607147787571-8e5eaa23-eb60-41ba-b13e-959d4d2bf0ad.png#align=left&display=inline&height=687&margin=%5Bobject%20Object%5D&name=image.png&originHeight=687&originWidth=1349&size=77990&status=done&style=none&width=1349)
  6. 4. 使用user_w用户查看无访问权限的HDFS目录

kinit user_w klist hdfs dfs -ls /user/hdfs ``` image.png

  1. 查看Cloudera Manager Navigator的审计日志,添加筛选条件,点击“Apply”,查看审计日志,可以看到有记录用户无权限访问该目录的日志

image.png

  1. 使用user_r用户登录Hue进行SQL操作,访问有权限的testhive表

image.png

  1. 登录Navigator查看审计日志

image.png

  1. 操作无权限访问的sqoop_hosts表

image.png

  1. 登录Navigator查看审计日志

image.png

  1. 同样Cloudera Manager Navigator可以对系统登录等操作进行审计,这里以Hue为例

image.png

5、数据生命周期管理

  1. 登录Navigator平台,点击【Policies】进入数据生命周期管理界面

image.png

  1. 查看【Search Query】查询条件,点击【Show full query】

image.png

  1. 点击【New Policy】创建一个自动分类标签的策略,点击【Save】保存策略

image.png
image.png

  1. 查看自动分类标签策略运行情况

image.png
6.总结

  • Navigator提供了完整的元数据检索功能。可以通过搜索表名,文件名等都可以搜索出相关所有涉及的内容,包括文件路径,创建时间,创建人等。可以根据数据来源组件,操作,表等分类进行查询。可以为数据集添加标签(tag) ,支持基于标签的搜索。
  • Navigator提供了完成了集群审计功能(含数据操作,权限控制、登录等)
  • Navigator提供完整的数据血缘分析,通过可视化界面方便的查看数据详细的进入HDFS到流出的一系列过程。
  • Navigator提供创建策略的方式来管理数据的生命周期,如为数据添加Tag、归档数据等策略。