问题:
根据业务需求,Dataworks需要接入专有网络下的MongoDB数据源,步骤较经典网络有所不同;
解决方案:
1.专有网络的MongoDB是不支持测试联通性的;
2.VPC环境的需要添加连接串模式数据源类型并保存;
3.数据同步的话借助自定义资源组或者独享资源组来进行网络打通,自定义资源组的机器或独享资源组需要确保能够访问mongodb。保证在同一VPC即可。
执行步骤:
1.说明
DataWorks专业版支持最多不超过5个自定义资源组,因此,在新增自定义资源组时,需要确认当前已有资源组是否<5个。
在DataWorks中,自定义资源组分成一级调度资源组和二级运行资源组,并且二者是共享专业版自定义资源组的配额的,因此需要将自定义资源组删除至<5个后才能开始新建工作,二者路径分别如下
1.一级调度资源
2.二级运行资源
2.添加服务器
我们需要的是新增二级运行资源组,因此在删除多余资源组后(自定义资源组用户无法删除,只能联系阿里云技术删除),我们开始新建操作:
1.每个自定义资源组需要添加ECS实例作为运行资源;
2.通过 dmidecode | grep UUID命令获取上述ECS实例的UUID来进行网络注册
3.以项目管理员身份登录DataWorks控制台,单击相应工作空间后的进入数据集成。
4.单击左侧导航栏中的自定义资源组,进入自定义资源组管理页面。
5.单击页面右上角的新增自定义资源组。
6.在新增自定义资源组对话框中,输入资源组名称,单击下一步。
7.配置添加服务器对话框中的参数,单击下一步。
3.安装Agent并初始化
Agent只能安装在Linux机器上,添加的每个服务器都需要初始化。如果是新添加机器,请按照如下步骤操作:
1.SSH登录ECS服务器,保持在root用户下;
2.执行命令:wget https://di-agent-image-***********.aliyuncs.com/install.sh --no-check-certificate (在自定义资源组添加服务器界面直接粘贴即可)
3.执行命令:sh install.sh --user_name= --password= --enable_uuid=false --region_id=cn-shanghai --bucket=di-agent-image-cn-shanghai --time_zone=GMT+8 --deploy_locale=zh_CN
4.稍后在添加服务器页面,点击刷新按钮,观察服务状态是否转为可用状态。
5.请开通服务器的8000端口。(专有网络类型可以不打开此端口)
使用 tail -f /home/admin/alisatasknode/logs/heartbeat.log命令验证agent是否启动完成,heartbeat每5s打印两行日志为正常。
之后,刷新服务器状态,查看是否为可用。
4.配置数据源
在安装成功后,配置DataWorks–>数据集成–>数据源中的MongoDB数据源,需要注意的是MongoDB数据源不能测试连通性,因此选择连接串模式后输入内容并保存即可。
5.测试运行
配置完成后再DataWorks的开发界面即可进行测试,新建一个数据集成脚本,选择MongoDB–>ODPS,特别注意的是,需要在配置任务资源组中,选择之前新建的自定义资源组。
成功!!!
Q&A:
选取几个在配置时遇到的比较大的错误
Q:在测试执行时报超时错误
A:无法连接到对象,在经过多次验证后发现,需要修改数据源配置的地址,应该填专有网络地址。
Q:在测试执行时报身份无法识别错误
A:单纯看这个报错是密码不对,但也可能是认证库没有指定对,导致验证失败,在经过和阿里云技术支持的多次实验后发现,是账号有问题,在DataWorks配置数据源时必须要杜绝使用root用户!!
参考链接:
1.阿里云配置MongoDB数据源:
https://help.aliyun.com/knowledge_detail/137675.html?spm=a2c4g.11186631.2.4.553f2e8aIkaxkm
2.阿里云新增自定义资源组:
https://help.aliyun.com/document_detail/136934.html?spm=5176.10695662.1996646101.searchclickresult.13d77296OE1cf1&aly_as=Ghf4dwQi
3.MongoDB官方文档:
https://docs.mongodb.com/