日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

sqoop1.4.4從oracle導數據到hive中

系統 2290 0

sqoop從oracle定時增量導入數據到hive

感謝:

http://blog.sina.com.cn/s/blog_3fe961ae01019a4l.html
http://f.dataguru.cn/thread-94073-1-1.html sqoop.metastore.client.record.password
http://blog.csdn.net/ryantotti/article/details/14226635 開啟sqoop metastore

step 1 創建sqoop job
a.配置sqoop metastore服務
修改sqoop/conf/sqoop-site.xml文件

相關屬性:

sqoop.metastore.server.location
sqoop.metastore.server.port
sqoop.metastore.client.autoconnect.url

上面三個參數是為了實現共享(shared)metastore,"By default, job descriptions are saved to a private repository stored in? $HOME/.sqoop/ . You can configure Sqoop to instead use a shared? metastore , which makes saved jobs available to multiple users across a shared cluster. Starting the metastore is covered by the section on the? sqoop-metastore tool."這樣在其他的cluster上就可以共享job并執行。

如果不需要共享job,只需要把上面三個屬性在配置文件中用<!-- -->注釋掉即可。

sqoop.metastore.client.enable.autoconnect
sqoop.metastore.client.record.password 這個屬性是為了保存數據庫密碼的,默認情況下處于安全需要,不會將密碼保存到metastore中,這樣每次執行job時就需要重新輸入數據庫的密碼。為了定時執行,我們修改這個屬性,是他可以保存密碼。

修改如下:

      
        <
      
      
        property
      
      
        >
      
      
        <
      
      
        name
      
      
        >
      
      sqoop.metastore.server.location
      
        </
      
      
        name
      
      
        >
      
      
        <
      
      
        value
      
      
        >
      
      /tmp/sqoop-metastore/shared.db
      
        </
      
      
        value
      
      
        >
      
      
        </
      
      
        property
      
      
        >
      
      
        <
      
      
        property
      
      
        >
      
      
        <
      
      
        name
      
      
        >
      
      sqoop.metastore.server.port
      
        </
      
      
        name
      
      
        >
      
      
        <
      
      
        value
      
      
        >
      
      16000
      
        </
      
      
        value
      
      
        >
      
      
        </
      
      
        property
      
      
        >
      
      
        <
      
      
        property
      
      
        >
      
      
        <
      
      
        name
      
      
        >
      
      sqoop.metastore.client.autoconnect.url
      
        </
      
      
        name
      
      
        >
      
      
        <
      
      
        value
      
      
        >
      
      jdbc:hsqldb:hsql://118.228.197.115:16000/sqoop
      
        </
      
      
        value
      
      
        >
      
      
        </
      
      
        property
      
      
        >
      
      
        <
      
      
        property
      
      
        >
      
      
        <
      
      
        name
      
      
        >
      
      sqoop.metastore.client.record.password
      
        </
      
      
        name
      
      
        >
      
      
        <
      
      
        value
      
      
        >
      
      true
      
        </
      
      
        value
      
      
        >
      
      
        </
      
      
        property
      
      
        >
      
      
        <!--
      
      
        注釋掉這個屬性

<property>

  <name>sqoop.metastore.client.enable.autoconnect</name>

  <value>false</value>

</property>


      
      
        -->
      
    

b.啟動metasotre,控制臺執行sqoop metastore命令 (如果沒有配置前三個屬性,請跳過此步驟 )
c.創建sqoop job

(為了方便執行,將下面的腳本寫入到文件保存,然后用chmod u+x FILENAME修改權限后,通過 ./FILENAME執行文件,創建job)

      sqoop job --meta-connect jdbc:hsqldb:hsql:
      
        //
      
      
        hostIP:16000/sqoop --create JOBNAME -- import --hive-import --incremental append --connect jdbc:oracle:thin:@DatabaseIP:1521/INSTANCENAME --username USERNAME --password PASSWD --verbose -m 1 --bindir /opt/sqoop/lib --table TABLENAME --check-column COLUMNNAME --last-value VALUE
      
    


注意:

1) 如果前面沒有配置共享metastore(即”sqoop.metastore.server.location" 、”sqoop.metastore.server.port“、”sqoop.metastore.client.autoconnect.url“三個屬性在配置文件中已經注釋了),那就需要將上面的腳本中 ”--meta-connect jdbc:hsqldb:hsql://hostIP:16000/sqoop“ 去掉。

2) "--create JOBNAME -- import"中”--“后面加一個空格再寫import命令,否則執行出錯
3) --check-column列不能是char varchar等,可以是date,int,
參考官網: http://sqoop.apache.org/docs/1.4.4/SqoopUserGuide.html ?在官網頁面查找 check-column字段,快速定位到相關解釋

?

step 2 執行sqoop job看是否可以順利進行

      <!--查看job列表,看是否成功創建-->
      
        

sqoop job 
      
      --
      
        list


      
      <!--執行job,測試能否正常執行,此處如果導入的數據量大,會很耗費時間-->
      
        

sqoop job 
      
      --
      
        exec JOBNAME
        


step 3 確定sqoop job可以正常執行后,編寫腳本定時執行

將下面的腳本寫入一個文本文件,如 execJob,然后執行 chmod u+x execJob 命令添加可執行權限

      source /etc/
      
        profile


      
      
        rm
      
       TABLENAME.java -
      
        f

sqoop job 
      
      -exec JOBNAME
    

?

step 4 用crontab工具實現定時執行

?

執行crontab -e 命令,添加如下一行腳本,保存退出即可

      
        # 每天1點鐘執行數據導入job


      
      
        0
      
      
        1
      
       * * * execJob 1>/root/execlogs 2>&1
    

注意:execJob就是step3創建的腳本文件,需要用具體的路徑,如/root/execJob。“1>/root/execlogs 2>&1”這句是重定向stdout和stderr輸出對象到指定文件,可以在文件中查看執行輸出的信息。

crontab命令工具用法參考:

http://www.cnblogs.com/jiafan/articles/1153066.html

http://baike.baidu.com/view/1229061.htm

    
      
        ?
      
    
  

sqoop1.4.4從oracle導數據到hive中


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 台北县| 婺源县| 都昌县| 武义县| 南充市| 青铜峡市| 荣昌县| 灌南县| 高阳县| 阿尔山市| 文化| 东方市| 温州市| 聂拉木县| 延边| 黎川县| 天津市| 余庆县| 福建省| 会泽县| 冀州市| 衡阳市| 甘德县| 吉林市| 松溪县| 临颍县| 阿坝县| 莎车县| 准格尔旗| 门头沟区| 皮山县| 琼海市| 祁阳县| 黄浦区| 商丘市| 平定县| 恩施市| 钦州市| 葵青区| 金寨县| 嘉义市|