利用oozie,执行sqoopaction将DB2中的数据导入到hive分区表中

测试:利用oozie,执行sqoop action将DB2中的数据导入到hive分区表中。

10年积累的成都网站建设、成都网站制作经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有泰顺免费网站建设让你可以放心的选择与我们合作。

 

需要注意的地方:

1,要添加hive.metastore.uris这个参数。否则无法将数据加载到hive表中。并且,如果一个xml文本中有多个这种操作的话,每个action中都需要配置这个参数。

2,要注意XML中的转义字符问题。这里我的sql中,就有一个小于号需要重写,否则执行后会说sql语句不对。

3,因为是分区表,按照每日分区,所以要从系统获取系统时间。这里没找到其他的可执行的方法,就比较麻烦的写成了这个样子:${replaceAll(timestamp(),"T.{0,}","")}

4,还要注意xmlns的版本问题。这个时候,多试几个就好了。


workflow.xml

<?xml version="1.0" encoding="gb2312"?>

<workflow-app name="workID1" xmlns="uri:oozie:workflow:0.5">

    <start to="step0101"/>

    <action name="step0101">

        <sqoop xmlns="uri:oozie:sqoop-action:0.4">

        <configuration>

        <property>

        <name>hive.metastore.uris</name>

        <value>thrift://192.168.20.39:9083</value>

        </property>

        </configuration>

            <arg>import</arg>

            <arg>--connect</arg>

            <arg>jdbc:db2://192.168.20.236:50001/sample</arg>

            <arg>--username</arg>

            <arg>db2inst1</arg>

            <arg>--password</arg>

            <arg>zheshimima</arg>

            <arg>--query</arg>

            <arg>select projno,projname,prstdate from project where prstdate &lt; date(current date)-1 day and $CONDITIONS</arg>

            <arg>--fields-terminated-by</arg>

            <arg>"\t"</arg>

            <arg>--hive-import</arg>

            <arg>--target-dir</arg>

            <arg>/qpf/target-dir/</arg>

            <arg>--hive-table</arg>

            <arg>ceshiku.tb_db2test</arg>

            <arg>--null-string</arg>

            <arg>"\\N"</arg>

            <arg>--null-non-string</arg>

            <arg>"\\N"</arg>

            <arg>--hive-partition-key</arg>

            <arg>shijian</arg>

            <arg>--hive-partition-value</arg>

            <arg>"${replaceAll(timestamp(),"T.{0,}","")}"</arg>

            <arg>-m</arg>

            <arg>1</arg>    

        </sqoop>

        <ok to="end"/>

        <error to="Kill0101" />

    </action>

    <kill name="Kill0101">

        <message>Action failed,step01 error message[${wf:errorMessage(wf:lastErrorNode())}]</message>

    </kill> 

    <end name="end"/>

</workflow-app>

新闻标题:利用oozie,执行sqoopaction将DB2中的数据导入到hive分区表中
转载来源:https://www.cdcxhl.com/article6/gepcog.html

成都网站建设公司_创新互联,为您提供营销型网站建设商城网站搜索引擎优化外贸网站建设网站导航网站维护

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都定制网站网页设计