溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

sqoop中query \$CONDITIONS HUE執(zhí)行失敗怎么辦

發(fā)布時間:2022-01-14 14:51:16 來源:億速云 閱讀:249 作者:柒染 欄目:云計算

這篇文章給大家介紹sqoop中query \$CONDITIONS HUE執(zhí)行失敗怎么辦,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

1. HUE sqoop命令框中直接輸入:

sqoop-import --connect jdbc:mysql://ip地址:端口/數(shù)據(jù)庫 --username 用戶名 --password 密碼 --query select * from 表名 where 1=1 and \$CONDITIONS --split-by id --hive-table hive表 --target-dir /apps/hive/warehouse/mydb.db/product/dt=${date} --hive-partition-key dt --hive-partition-value ${date} --hive-import --driver com.mysql.jdbc.Driver

運行會提示報錯,是因為SQL語句被解析成sqoop參數(shù)

2784 [main] ERROR org.apache.sqoop.tool.BaseSqoopTool  - Error parsing arguments for import:
2016-09-11 15:21:46,485 ERROR [main] tool.BaseSqoopTool (BaseSqoopTool.java:hasUnrecognizedArgs(304)) - Error parsing arguments for import:
2785 [main] ERROR org.apache.sqoop.tool.BaseSqoopTool  - Unrecognized argument: *
2016-09-11 15:21:46,486 ERROR [main] tool.BaseSqoopTool (BaseSqoopTool.java:hasUnrecognizedArgs(307)) - Unrecognized argument: *
2785 [main] ERROR org.apache.sqoop.tool.BaseSqoopTool  - Unrecognized argument: from
2016-09-11 15:21:46,486 ERROR [main] tool.BaseSqoopTool (BaseSqoopTool.java:hasUnrecognizedArgs(307)) - Unrecognized argument: from
2785 [main] ERROR org.apache.sqoop.tool.BaseSqoopTool  - Unrecognized argument: product
2016-09-11 15:21:46,486 ERROR [main] tool.BaseSqoopTool (BaseSqoopTool.java:hasUnrecognizedArgs(307)) - Unrecognized argument: p_product
2785 [main] ERROR org.apache.sqoop.tool.BaseSqoopTool  - Unrecognized argument: where
2016-09-11 15:21:46,486 ERROR [main] tool.BaseSqoopTool (BaseSqoopTool.java:hasUnrecognizedArgs(307)) - Unrecognized argument: where
2785 [main] ERROR org.apache.sqoop.tool.BaseSqoopTool  - Unrecognized argument: $CONDITIONS

2. 解決方案: 最好采用參數(shù)化的方式

<workflow-app name="test" xmlns="uri:oozie:workflow:0.5">
    <start to="sqoop-fb61"/>
    <kill name="Kill">
        <message>Action failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
    </kill>
    <action name="sqoop-fb61">
        <sqoop xmlns="uri:oozie:sqoop-action:0.2">
            <job-tracker>${jobTracker}</job-tracker>
            <name-node>${nameNode}</name-node>
              <arg>import</arg>
              <arg>--connect</arg>
              <arg>&quot;jdbc:mysql://IP地址:端口/數(shù)據(jù)庫&quot;</arg>
              <arg>--username</arg>
              <arg>&quot;用戶名&quot;</arg>
              <arg>--password</arg>
              <arg>&quot;密碼&quot;</arg>
              <arg>--query</arg>
              <arg>select * from product where $CONDITIONS</arg>    ## 注意:這個地方?jīng)]有反斜杠(\)
              <arg>--split-by</arg>
              <arg>&quot;id&quot;</arg>
              <arg>--hive-table</arg>
              <arg>&quot;HIVE表名&quot;</arg>
              <arg>--target-dir</arg>
              <arg>&quot;/apps/hive/warehouse/mydb.db/product/dt=${date}&quot;</arg>
              <arg>--hive-partition-key</arg>
              <arg>&quot;dt&quot;</arg>
              <arg>--hive-partition-value</arg>
              <arg>&quot;${date}&quot;</arg>
              <arg>--hive-import</arg>
              <arg>--driver</arg>
              <arg>&quot;com.mysql.jdbc.Driver&quot;</arg>
        </sqoop>
        <ok to="End"/>
        <error to="Kill"/>
    </action>
    <end name="End"/>
</workflow-app>

關(guān)于sqoop中query \$CONDITIONS HUE執(zhí)行失敗怎么辦就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI