当您需要对HBase中的数据进行分析和搜索时,可以通过DataWorks的数据集成服务实现最快5分钟一次的离线数据采集,并同步到阿里云Elasticsearch中。本文介绍如何通过DataWorks将HBase集群中的数据同步到Elasticsearch。
操作流程
步骤一:环境准备
- 创建阿里云Elasticsearch实例,并开启实例的自动创建索引功能。具体操作,请参见创建阿里云Elasticsearch实例和配置YML参数。本文以通用商业版实例为例。
- 创建DataWorks工作空间。创建工作空间时,所选地域需要与阿里云Elasticsearch一致。具体操作,请参见创建工作空间。
- 创建HBase集群并准备测试数据。创建HBase集群时,所选地域、专有网络和虚拟交换机要与阿里云Elasticsearch保持一致。本文以创建标准版HBase集群为例,具体操作,请参见购买集群。本文使用的建表语句及测试数据如下。关于如何向HBase集群中导入数据,请参见使用HBase Shell访问。
- 建表语句
create 'student', {NAME => 'name'}, {NAME => 'ID'}, {NAME => 'xingbie'}
- 测试数据
使用put命令向数据表中插入数据,例如:
put 'student', 'row1', 'name:a', 'xiaoming'
。使用scan命令查看表中的数据,例如:scan 'student'
。
说明 本文数据仅供测试。 - 建表语句
步骤二:购买并创建DataWorks独享资源组
区间- 登录DataWorks控制台。
- 选择相应地域后,在左侧导航栏,单击资源组列表。
- 购买独享数据集成资源。具体操作,请参见新增和使用独享数据集成资源组。重要 购买时,所选地域需要与目标工作空间保持一致。
- 创建一个独享数据集成资源。
- 单击已创建的独享资源组右侧的网络设置,参见绑定专有网络,为该独享资源组绑定专有网络。独享资源部署在DataWorks托管的专有网络中。DataWorks需要与HBase集群和Elasticsearch实例的专有网络连通才能同步数据。而HBase集群和Elasticsearch实例在同一专有网络下,因此在绑定专有网络时,选择Elasticsearch实例所在专有网络和交换机即可。
- 单击已创建的独享资源组右侧的修改归属工作空间,为该独享资源组绑定目标工作空间。具体操作,请参见新增和使用独享数据集成资源组。
步骤三:配置HBase白名单
步骤四:在DataWorks中添加HBase和Elasticsearch数据源
- 进入DataWorks的数据集成页面。
- 在DataWorks控制台的左侧导航栏,单击工作空间列表。
- 找到目标工作空间,单击其右侧操作列下的数据集成。
- 在左侧导航栏,单击数据源。
- 在数据源管理页面,单击新增数据源。
- 在新增数据源对话框的大数据存储区域中,单击HBase。
- 在新增HBase数据源对话框中,填写数据源名称和配置信息。使用的HBase版本不同,您需要填写不同的配置信息:
- 标准版及以下的版本:使用默认的配置信息,即ZK链接地址,同时需要手动增加hbaseVersion属性。配置示例如下。
{ "hbaseVersion": "2.0.17", "hbase.zookeeper.quorum": "hb-bp178qu3tz470****-master3-001.hbase.rds.aliyuncs.com:2181,hb-bp178qu3tz470****-master2-001.hbase.rds.aliyuncs.com:2181,hb-bp178qu3tz470****-master1-001.hbase.rds.aliyuncs.com:2181" }
参数 说明 hbaseVersion 指定HBase集群的小版本。可在目标HBase集群数据库连接页面的引擎相关信息区域获取,详细信息请参见升级数据库小版本。 hbase.zookeeper.quorum 指定HBase集群的连接信息,即ZK链接地址。可在目标HBase集群数据库连接页面的连接信息区域获取,详细信息请参见使用HBase Shell访问。 - 标准版以上版本:使用增强版特有的Endpoint形式,不再使用zookeeper.quorum参数连接。需要手动修改HBase增强版(lindorm)数据源的配置信息,示例如下。
"hbaseConfig": { "hbase.client.connection.impl" : "com.alibaba.hbase.client.AliHBaseUEConnection", "hbase.client.endpoint" : "host:30020", "hbase.client.username" : "<user_name>", "hbase.client.password" : "<your_password>" }
配置完成后,可与独享资源组进行连通性测试。连通状态显示为可连通时,表示连通成功。更多配置参数说明,请参见配置HBase数据源。
- 标准版及以下的版本:使用默认的配置信息,即ZK链接地址,同时需要手动增加hbaseVersion属性。配置示例如下。
- 单击完成。
- 使用同样的方式添加Elasticsearch数据源。本示例选择数据源类型为连接串模式,需要配置的参数说明如下。
参数 说明 Endpoint 阿里云Elasticsearch的访问地址,格式为: http://<实例的内网或公网地址>:9200
。实例的内网或公网地址可在基本信息页面获取,详细信息,请参见查看实例的基本信息。重要 如果您使用的是公网地址,需要将独享资源组的EIP地址添加到阿里云Elasticsearch的公网地址访问白名单中,详情请参见配置实例公网或私网访问白名单和使用独享数据集成资源组执行任务需要在数据库添加的IP白名单。用户名 访问阿里云Elasticsearch实例的用户名,默认为elastic。 密码 对应用户的密码。elastic用户的密码在创建实例时设定,如果忘记可重置,重置密码的注意事项和操作步骤,请参见重置实例访问密码。 说明 其他未提及的参数请自定义输入。
步骤五:配置并运行DataWorks数据同步任务
- 在DataWorks的数据开发页面,新建一个业务流程。具体操作步骤请参见创建业务流程。
- 新建一个离线同步任务。
- 展开新建的业务流程,右键单击数据集成,选择 。
- 在新建节点对话框中,输入节点名称,单击确认。
- 在选择数据源区域中,将数据来源指定为HBase数据源,并选择待同步的表名称;将数据去向指定为Elasticsearch数据源,并填入索引名和索引类型。说明
- 您也可以使用脚本模式配置数据同步,详情请参见通过脚本模式配置离线同步任务、HBase Reader和Elasticsearch Writer。
- 建议在Elasticsearch数据源的高级配置下,将启用节点发现设置为否,否则同步过程中提示连接超时。
- 在字段映射区域中,设置来源字段与目标字段的映射关系。
- 在通道控制区域中,配置执行任务的相关参数。
- 配置任务调度属性。
- 配置执行同步任务所使用的资源组。
- 在页面右侧,单击数据集成资源组配置。
- 选择独享数据集成资源组为您创建的独享资源组。
- 提交任务。
- 保存当前配置,单击
图标。
- 在提交新版本对话框中,填入备注。
- 单击确认。
- 保存当前配置,单击
- 单击
图标,运行任务。
任务运行过程中,可查看运行日志。运行成功后,显示如下结果。
步骤六:验证数据同步结果
- 登录目标阿里云Elasticsearch实例的Kibana控制台,根据页面提示进入Kibana主页。登录Kibana控制台的具体操作,请参见登录Kibana控制台。说明 本文以阿里云Elasticsearch 7.10.0版本为例,其他版本操作可能略有差别,请以实际界面为准。
- 单击右上角的Dev tools。
- 在Console页签中,执行如下命令查看同步的数据。
POST /student_info/_search?pretty { "query": { "match_all": {}} }
说明student_info
为您在步骤五:配置并运行DataWorks数据同步任务中选择的索引名称。