开发者学堂课程【DataWorks 一站式大数据开发治理平台精品课程:2.E-MapReduce+DataWorks 最佳实践】与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/81/detail/1250
2.E-MapReduce+DataWorks 最佳实践(一)
1、第一步是做环境准备,首先去创建一个 Emr 的集群,到阿里云官网找到 Emr 集群的首页,去点击立即购买,点击立刻购买之后会跳到购买页,有两种方式,一种是一键购买,一种是自定义购买,那为了演示给选择自定义购买,但是购买之前要注意,region 要选择华东二,因为实验所用到的数据源是放在了华东二位置下面,自定义购买,首先第一步是软件配置,因为是演示就直接选择默认了,如果实际需要可以勾选其它的不一样的服务。
2、点击下一步,硬件配置,硬件配置选择按量付费,网络配置选择一个需要的可用区域,填入vpc和交换机的地址,选择安全总名称,其它也选择默认的配置。
3、下一步基础配置,首先给集群选择一个名称dataworks on emr,选择密钥对,如果选择密码,也可以创建一个新的密码,那选择密钥对,下面有一个高级设置,高级设置这里面有集群默认,还有统一数据库,选择集群默认,这样它是依然把这集群是放在本地源数据库的,如果需要内网,创建后需要访问,要去挂在公网访问,那可以为了方便可以在这直接把它打开。确认之后创建勾选,创建直接购买就好了,购买之后已经创建好了一个实验所用的集群,那点击购买之后,它就会跳转到Emr的一个管控台,管理控制台,会显示之前购买过的集群,使用的是demo_du. test集群,可以看到集群下面的它的信息,集群创建好之后,它要给集群下面创建一个项目空间,项目空间是作为后续会连接到 dataworks 的工作空间所使用的,那点击数据开发,去新建项目,注意一个集群只能创建一个项目,需要的项目名称,写入项目描述,点击创建,创建之后,创建的项目ID就会展示在列表里面,之前跟Emr集群,已经给它创建过一个项目空间了,创建项目空间之后,怎么跟 dataworks 绑定?
4、进入到阿里云官网,在大数据类目下找到 dataworks。
5、点击 dataworks 管理控制台,进入到管理控制台之后,如果之前已经创建过一个项目空间,想要跟项目空间进行emr绑定,在工作空间列表里面选择的那个空间,进行工作空间配置就好了。如果是想要新建一个工作空间跟emr继续绑定,那就点击创建工作空间,填入信息,那可能有一个地方需要注意的是,比如先随便写点击下一步,选择emr,点击下一步,因为是公测阶段,所以这些信息是需要手动填入的,这些信息去对应的基本的内容的明如下,实例名称对应的是emr的实例名称。
分类 |
配置 |
明 |
EMR |
实例名称 |
创建的EMR集群名称 |
Access ID |
创建集群的账号 Access ID |
|
Access Key |
创建集群的账号 Access Key |
|
EmrClusterID |
创建的EMR集群ID |
|
EmrUserID- |
进入EMR集群管理页面,点击用户管理,查找所用AK的用户ID |
|
EmrProjectID |
在EMR控制台上点击数据开发,可以看到刚刚创建的项目ID |
|
EmrResource QueueName |
默认是 default |
|
EmrEndpointe |
填写 emr.aliyuncs.com |
6、这些配置好之后,就可以创建工作空间了,已经创建好一个,跟emr的项目空间已经绑定过一个工作空间了,所以直接进入到数据集成阶段。
7、首先进入数据集成,点击数据源,新增数据源,实验所用到的数据源有两种,一种是存放在oss里面,另外的一种是存放在rds的数据源里面,那这样要新增两个数据源来存放两种源数据。新建数据源选择对应的数据库,比如oss可能填入相应的这些内容,测试连通性成功,完成,创建oss的数据源,就会出现在列表里面。
8、再点击一个新增 mysql 下面的 rds 的数据源,填入到相应的内容之后,就会有一个rds的数据源显示在页面上。因为用到的emr的集群,数据同步存放在内部自建的一个oss上面,这样相当于要再新建第三种数据源,这第三种数据源还是oss,它的目的是为了后续同步源数据存放在里面,新建好三种数据源之后,数据集成的步骤就已经完成了。
9、接下来进入到数据开发页面,点击 datastudio。进入到数据开发页面,有一点需要注意的是,因为现在是在公测阶段,所以对emr的访问权限做了控制。现在是需要线下教的项目ID发送给工作人员,让工作人员在后台帮忙开通权限,工作阶段结束之后,会把这些权限点都放开,到时候它会自动将项目空间和dataworks工作空间进行一个绑定,绑定的结果可以在小扳手工作空间管理里面看到,进入工作空间配置,向下翻有一个计算引擎信息的栏目,选到emr就可以看到绑定的emr的实例,说明项目空间已经跟这些绑定过了,返回到项目开发的页面来,目前是已经创建好的一个页面,是一个主要的工作流程,在左侧业务流程,如果是想要新建一个业务流程,可以右键新建一个业务流程,新建好的业务流程就会出现在业务流程下面栏目里面,每一个业务流程下都会有这些内容展示。
10、中间栏目是emr工作空间里面会用到的节点,包括star节点,还有hive节点等。
11、首先是配置一个虚拟的节点,用来控制项目空间工作流程的起始。下面它连接的这两条分别做oss数据源和rds数据源,两种数据源内容的一个同步,所以是用到了两个数据同步的节点,可以点击看一下数据集成节点的内容,页面是一个脚本模式,如果是配置流失,可以在页面编辑,但是数据集成节点的初始状态不是这样子的,比如新建一个数据集成的节点,随便叫一个名字,提交之后可以看到节点双击。
12、它首先是一个界面化的流程,可以选择一个数据的来源以及去向,比如要从一个外部的oss存储到内部的oss,新建的oss上面,包括内容的一个字段的映射,它都会自动帮显示出来。但是为什么会把它转化成一个转化成一个脚本模式?是因为默认的里面可能缺少了两个本实验里面需要用到的参数,所以把它转换成脚本模式之后,在里面把它的参数加进来,也就是‘’suffix‘’:‘’.txt‘’参数是手动添加进来的,节点设置好之后,再看另外一个数据源的数据同步节点,也是一样的,也是先从这种界面图形化的流程转换成脚本模式,手动增加这种参数,这些都设置好之后要记得保存,这两个数据同步的节点都设置好之后,它的下游是配置两个建表语句,因为现在emr的页面操作,建表语句是用到hive语句自己来编写的,所以是拖进了两个hive的节点,分别给这两个数据同步的数据建两张表格。
13、在这个页面可以写的建表语句,可以关注的一点是告诉 location 它的一个存放的地址是oss的一个内容,那oss的内容路径是在哪里创建呢?登录阿里云oss的管控台,去给项目和工作空间去创建一个 oss 的 bucket。点击加号可以创建一个新的bucket,注意region,创建好之后它就会出现在列表里面,现在最下面是为工作空间创建的一个创建好的一个目录,那文件管理里面可以看到,是给它提前创建好的这些目录,这些目录指定好之后,它就会存到一个目录,接下来给分区存一个目录,还是存到跟它一样的目录下面,存到目录下面之后,再给它一个不同的分区进行隔离。要注意保存,保存之后,如果想试运行,要注意选择emr的集群,一定要对应上这个任务希望对应的那个emr机群,任务是对应第二个,所以选择第二个,每次新建时,重新跑时都要注意emr机群的选择。
14、表里面主要填的内容是浏览某一个网址的用户的个人信息,包括它的ID性别年龄段以及星座,那另外一张表的存的内容是什么?主要是一个网站的它的一个日志的记录,所以是给网站的日志记录做一个建表操作。
drop table ods_raw_log_d ;
CREATE EXTERNAL TABLE
iF
NOT EXISTS
ods_raw_log_d
(
‘col’ STRING
) PARTITIONED BY (
dt STRING
);
alter table ods_ raw_ log d add partition (dt=${bizdate})
location 'oss://dw- emr-demo/ods_raw_log_d/user_log ${bizdate}/';
SELECT * from ods_ raw_ log_d where dt=20191114 ;
show PARTITIONS
ods_raw_ log_d;