4.IBM大数据集成方案带给客户的惊喜
五、DataStage连通Hadoop的最佳实践
在DataStage中,可通过File Connector组件或Big Data File组件来连接Hadoop平台,从而将传统RDBMS数据库或本地文件中的数据加载到HDFS。比较而言,Big Data File组件支持IBM BigInsights,提供更佳的读写性能;而File Connector组件则通过WebHDFS接口或HttpFS接口访问HDFS,不依赖于Hadoop的品牌和版本,提供更广泛的兼容性。
FileConnector是DataStage v11.3面向Hadoop的全新组件,提供以下功能:
可用于读/写Hadoop文件系统(HDFS)
支持并行处理和线性扩展
不需要安装其他Hadoop客户端软件包
支持Kerberos认证
支持SSL安全访问协议
支持Knox gateway
支持通过WebHDFS,HttpFS方式访问Hadoop
支持访问本地的Hadoop节点
更全面的支持Hadoop(不依赖于其版本变更)
下面以Apache Hadoop v2.7为例,介绍通过配置File Connector将Oracle表数据写入HDFS的方法:
1.安装DataStage v11.3.1(参考以下链接)
http://www-01.ibm.com/support/knowledgecenter/SSZJPZ_11.3.0/com.ibm.swg.im.iis.install.nav.doc/containers/cont_iis_information_server_installation.html?lang=en
2.配置Kerberos安全认证
将Apache Hadoop服务器上的krb5.conf文件(KDC配置信息)复制到DataStage服务器上的/etc目录。
3.检查Apache Hadoop的HDFS配置文件,确认已启用WebHDFS支持
如何配置WebHDFS Rest API for Apache Hadoop v2.7:
http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/WebHDFS.html
4.配置SSL访问Hadoop
登陆DataStage服务器,使用keytool命令创建truststore,用于存放来自于Hadoop服务器的SSL安全证书,该truststore名为test.jks, 在/opt目录下
keytool -genkey -alias test -keystore test.jks -storepass test
将Hadoop服务器上的SSL证书(例如cert.pem)复制到DataStage服务器
在DataStage服务器上通过keytool命令导入证书cert.pem
keytool -import -trustcacerts -alias test -file cert.pem -keystore test.jks -storepass test -noprompt
用DataStage自带的encrypt.sh命令加密上面所创建truststore的password,得到加密后的二进制密码(例如{iisenc} iWuRnROgFLbk0H1sjfIc7Q==)
cd /opt/IBM/InformationServer/ASBNode/bin/
[[email protected] bin]# ./encrypt.sh
Enter the text to encrypt: test
Enter the text again to confirm: test
{iisenc} iWuRnROgFLbk0H1sjfIc7Q==
在/opt目录下创建一个名为properties.txt的文本文件,添加内容如下
password={iisenc}iWuRnROgFLbk0H1sjfIc7Q==
修改DataStage配置文件(dsenv),添加以下环境变量
DS_TRUSTSTORE_LOCATION=/opt/test.jks
DS_TRUSTSTORE_PROPERTIES=/opt/properties.txt
重启DataStage
5.在DataStage开发客户端中找到File Connector组件
6.配置File Connector组件的属性
通过WebHDFS接口访问Apache Hadoop
采用Kerberos安全认证(指定Keytab文件)
采用https协议及相应端口
将源表数据自动拆分成多个文件并行写入HDFS(为提高性能,利用8个节点同时写数据)
7.运行DataStage作业,可看到数据已成功写入Hadoop HDFS
虽然本次测试是基于虚拟机环境,但DataStage所展现出来的性能依然非常强劲,从Oracle读取4.64亿条记录并写入HDFS,仅需10分钟左右,最高速率达到619495 行/秒。如果增加CPU以提高并行度,性能更可线性增长!
在目标端生成的HDFS文件列表(8个子文件):