快速启动 – 从MySQL 抽取数据到 Hive / HDFS

by Norman Wang 2018-08-01

简介

BDOS内置了Sqoop作为数据采集(data ingestion)的工具之一,主要用于在Hadoop/Hive与传统的数据库(RMDBS)间进行数据的传递,通过可视化界面你可以很便捷的将一个关系型数据库(例如 :MySQL)中的数据导入到HDFS或者Hive中,并且通过配置数据采集作业,你可以很轻松的完成数据从采集,到运行,到查看结果的整个流程。

新建数据采集的作业,运行,并查看结果

准备步骤:当你登录BDOS Online Edition之后,你会来到快速体验界面,在界面的上半部分的快速入口区域内,你可以很方便的找到从Mysql抽取数据到Hive / HDFS的图标,点击图标,你就会来到数据采集页面。
初次来到界面,你会看到一个空的数据采集作业的列表,点击右上方的+添加作业按钮即刻开始配置数据采集的过程。

同时,这个界面,也可以通过路径:左侧边导航栏->程序管理->数据采集

场景1 – 使用全量策略进行数据采集

快速创建全量数据采集作业

Step1:点击+添加作业按钮
Step2:填写基本信息
填写示例(你可以任意修改你填写的信息)

名称 填写内容 填写方式
作业名称 myFirstDemo 手动填写
作业调度周期 只运行一次 从下拉框选择
数据源 demo-mysql 从下拉框选择
product 从弹出框选择

Step3:在采集配置里面选择全量
Step4:在导出选项里面选择数据存储方式为HDFS,记录下数据存储的路径(方便之后查看采集结果)
Step5:点击右上角保存按钮,那么全量数据采集作业创建完毕

随即可以在数据采集页面的作业列表里面,看到刚刚创建的数据采集作业

场景2 – 使用增量策略进行数据采集

使用增量策略,并配置“导出字段”和“where”语句的高级操作

Step1:点击+添加作业按钮
Step2:填写基本信息
填写示例(你可以任意修改你填写的信息)

名称 填写内容 填写方式
作业名称 mySecondDemo 手动填写
作业调度周期 每小时运行一次 从下拉框选择
数据源 demo-mysql 从下拉框选择
product 从弹出框选择

Step3:在采集配置里面选择增量
Step4:在增量字段(列)选择 update_time 作为增量的字段 (真实应用中,你需要跟你实际的业务场景来选择合适的字段作为增量的依据)
Step5:点击展开高级选项,你可以进一步操控你想要导出的具体字段(如果不选择,默认是全部字段),以及通过where语句指定更加精细的操作

Step6:在导出选项里面选择数据存储方式为Hive,记录Hive的数据库和表名称(方便之后查看采集结果)
Step7:点击右上角保存按钮,那么全量数据采集作业创建完毕

随即可以在数据采集页面的作业列表里面,看到刚刚创建的数据采集作业

运行配置好的作业

准备步骤:再次点开数据采集页面,你会看到采集作业列表里面有刚刚配置好的两个作业,通过表单的操作栏,你可以对采集的作业进行“开始”,“删除”,“改变优先级”和“查看任务”的操作

运行在场景1中创建的作业,并查看全量策略的数据采集

Step1:点击运行myFirstDemo作业
Step2:点击查看任务

Step3:等待执行状态变成“Success”
Step4:回到数据采集页面,点击查看按钮
Step5:点击选中.avro文件查看,导出的数据集

运行在场景2中创建的作业,并查看增量策略的数据采集

Step1:点击运行mySecondDemo作业
Step2:点击查看任务

Step3:等待执行状态变成“Success”
Step4:回到数据采集页面,点击查看按钮

(额外步骤)登录到Hue去查看数据采集的结果

如果你已经运行过,快速启动的教程1&2,你应该能很快速在Hue里面找到,目标文件目录和数据集,如果你还没有运行过也没有关系,请参考我们下面的步骤

Step1:点击屏幕左侧边栏的第一个按钮“快速体验”
Step2:在右侧的弹出窗口中,选择第一个快速入口的图标“在Hue里面浏览HDFS数据”,点击,页面被引导至Hue的操作界面
Step3:在File Browser 窗口找到ingestion目录(完整目录/user/你的用户名/ingestion), 从目录名称可以看出,这是一个专门负责存储数据采集的文件夹,选中并点击进入之后,可以看到,刚刚运行的数据采集作业生成的文件夹
Step4:分别点击全量/增量文件夹,进去之后,就可以看到和上一个章节从查看按钮导航过来的文件目录.
Step5: 使用场景2来说,在Step2里面选择第二个快速入口的图标“在Hue里面运行Hive语句”,点击,页面被引导至Hive语句的编辑界面,运行这条语句查询增量数据的记录数,{数据库}不写,默认是default,如果采集选择的数据是你的用户名,请填写用户名:

select count(*) from {数据库}.mysql_faker_user_hourly_inc;

留言

评论

${{item['author_name']}} 回复 ${{idToContentMap[item.parent] !== undefined ? idToContentMap[item.parent]['author_name'] : ''}} · ${{item.date.slice(0, 10)}} 回复

暂时还没有一条评论.