sqoop job命令自動生成
批量生成
#!/usr/bin/env python
import MySQLdb
import datetime
import time
import os
#file path
FILEPATH='/tmp'
#source database
HOST='11.143.68.29'
PORT=3306
USER=admin'
PASSWD='admin'
DB='db_1'
#sqoop
FIELDS_TERMINATED_BY='\\t' #如果需要臨時表合併hive小檔案,需使用預設分隔符
CHECK_COLUMN='__#alibaba_rds_row_id#__'
conn=MySQLdb.connect (host=HOST,port=PORT,user=USER,passwd=PASSWD,db =DB,)
cur=conn.cursor()
ret=cur.execute("select table_name from information_schema.tables where TABLE_SCHEMA='%s'"%(DB))
ret=cur.fetchall()
creFile=open(FILEPATH+'/sjob_cre.sh','w')
delFile=open(FILEPATH+'/sjob_del.sh','w')
execFile=open(FILEPATH+'/sjob_exec.sh' ,'w')
for line in ret:
tableName=line[0
try:
sjob="sudo -u hdfs sqoop job --create %s_%s -- import --connect jdbc:mysql://%s:%s/%s --table %s \
--username %s --password %s -m 1 --hive-import --fields-terminated-by '%s' --hive-database %s \
--incremental append --check-column %s --last-value 0;"%(DB,tableName,HOST,PORT,DB,tableName,USER,PASSWD,FIELDS_TERMINATED_BY,DB,CHECK_COLUMN)
creFile.write(sjob+'\n')
delFile.write("sudo -u hdfs sqoop job --delete %s_%s"%(DB,tableName)+'\n')
execFile.write("sudo -u hdfs sqoop job --exec %s_%s"%(DB,tableName)+'\n')
except:
print "*************************************************"
print "Error,%s failed!"%(tableName)
print "*************************************************"
cur.close()
conn.close()
生成一個表的job:
#!/bin/bash
set -e
#set -x
#file path
EXECFILE_PATH='/data/sqoop/sjob_exec.sh'
#source database
HOST='192.168.2.229'
PORT=3306
USER='root'
PASSWD='root'
DB='db_1'op
FIELDS_TERMINATED_BY='\t'
CHECK_COLUMN='__#alibaba_rds_row_id#__'
WORKER_NUM=1
tableName=$1
sjob="sudo -u hdfs sqoop job --create ${DB}_${tableName} -- import --connect jdbc:mysql://${HOST}:${PORT}/${DB} --table ${tableName} \
--username ${USER} --password ${PASSWD} -m ${WORKER_NUM} --hive-import --fields-terminated-by '${FIELDS_TERMINATED_BY}' --hive-database ${DB} \
--incremental append --check-column ${CHECK_COLUMN} --last-value 0;"
echo $sjob
echo "Add to sqoop?(y or n):"
read ret
if [ $ret == 'y' ];
then
$($sjob)
sjob="sqoop job --exec ${DB}_${tableName}"
sed -i '/impala/i\'"$sjob"'' $EXECFILE_PATH
echo "Add Completed!"
fi
相關推薦
sqoop job命令自動生成
批量生成 #!/usr/bin/env python import MySQLdb import datetime import time import os #file path FILEPA
Tree 命令自動生成 目錄樹到txt
使用DOS的[TREE]命令,具體方法如下: [開始]→[所有程式]→[附件]→[DOS命令提示符]→進入DOS介面; [CD/+回車]→返回C:/根目錄; 在C:/下鍵入TREE□X:/目錄名□/F□>ABC.TXT [回車],此時就會在C:/盤的根目錄下生成一個名為
輕鬆學習Ionic (四) 修改應用圖示及新增啟動畫面(更新官方命令列工具自動生成)
<platform name="android"> <icon src="res/android/ldpi.png" density="ldpi" /> <icon src="res/android/mdpi.png" de
【Python】自動生成命令列工具
Python 中用於生成命令列介面(Command Line Interfaces, CLIs)的工具已經有一些了,例如已經成為 Python 標準庫的 argparse 和第三方的 click ,這些都是很不錯的工具。但是這些工具為 Python 程式生成 C
Thinkphp5命令列自動生成
ThinkPHP5.0支援 Console 應用,通過命令列的方式執行一些URL訪問不方便或者安全性較高的操作。 這裡只是其中幾條常用的指令,在此記下: php th
自動生成代理類
ase static sta public question desc cto cape proxy WebApiProxy-Generate-CSharp public static string AssemblyDirectory {
使用Mybatis-Generator自動生成Dao、Model、Mapping相關文件
select let 屬於 url img jdb uid enables 粘貼 Mybatis屬於半自動ORM,在使用這個框架中,工作量最大的就是書寫Mapping的映射文件,由於手動書寫很容易出錯,我們可以利用Mybatis-Generator來幫我們自動生成文件。
ROS知識(16)----如何編譯時自動鏈接同一個工作空間的其他包的頭文件(包含message,srv,action自動生成的頭文件)
logs package fin 空間 依賴庫 osc div build 知識 catkin_make編譯時,往往需要自動鏈接同一個工作空間的其他包的頭文件。否則會出現類似如下的錯誤: /home/xx/xx_ws/srcA_package/src/db.hpp:13:
條款6:不想使用編譯器自動生成的函數,就要明確拒絕!
但是 con public col 調用 operator 聲明 接受 錯誤 每一個對象都是獨一無二的,如果不想其被復制,我們就希望其復制以失敗收場。如一座房屋出售HomeForSale類: 1 HomeForSale h1; 2 HomeForSale h2; 3 Ho
使用MyBatis Generator自動生成MyBatis的代碼
ive for ctype enable runtime 包名 strings href tle 這兩天需要用到MyBatis的代碼自動生成的功能,由於MyBatis屬於一種半自動的ORM框架,所以主要的工作就是配置Mapping映射文件,但是由於手寫映射文件很容易出錯,
綜合示例:自動生成一組新聞
lap func tel style display ima one closed alt 點擊按鈕,自動生成5條新聞信息 用一組數組把5條新聞保存起來, 再運用 if 判讀和 for 循環來達到自動生成的效果 1 <!DOCTYPE HTML> 2
Mybatis最入門---代碼自動生成(generatorConfig.xml配置)
pack ces war map serial file 用戶名 clip 英文 第一種方式:通過Main方法執行配置文件。 --------------------------------------------------------------------------
eclipse自動生成getset註釋
setters ron ren 目錄 pla 設置 附件 註釋 consola 1、文件替換 將附件裏的文檔替換到eclipse安裝目錄下的plugins,在替換之前最好是把那個文件做個備份放在外面。 2、重啟Eclipse設置註釋風格: Window->Prefer
AutoConf自動生成Makefile(基於helloworld簡單例子)
programs tom change col -a 二進制 自己 int 生成 新建一個簡單的helloworld工程文件夾,目錄結構如下 hello.h代碼: #include<stdio.h> void fprint() { printf("h
tp5模塊自動生成
更多 命令 gmail del _file__ con control test use 1build.php配置要生成的目錄 <?php// +-----------------------------------------------------------
自動生成氣泡對話框的函數CreateBubble.js
eat func 9.png 對話 com def ans https 引用 之前在寫一個界面,想要用到氣泡,然而一直找不到現成的有效地辦法,是在沒有辦法了我只好自己寫一個,於是就有了現在的CreateBubble.js。很簡單的一個函數,但是非常實用。 使
Eclipse自動生成 get/set
.com ras lun ahp v2v lips 3rd wkt air %E5%AD%97%E8%8A%82%E5%BA%8F%E8%BD%AC%E6%8D%A2%E4%B8%8E%E7%BB%93%E6%9E%84%E4%BD%93%E4%BD%8D%E5%9F%9F
使用MyBatis-Gererator自動生成Dao.Model.Mapping相關文件
less .cn dbcc nat acc git reat logs ping 一。在MyEclipse中使用Maven項目下使用MyBatis-Gererator自動生成Dao.Model.Mapping相關文件 1.關於Mybatis-Generator的下載可以
CSS雪碧圖自動生成軟件
自動生成 position enter 教程 下載地址 com 包含 nbsp round http://www.99css.com/1524/ 包含詳細的下載地址、下載步驟以及使用教程 亮點:自動合成雪碧圖+自動生成雪碧圖background-position代碼CS
express-generator 自動生成服務器基本文件
邏輯 初始化 list 規則 方法 htm aaa 中項 生成 (1) 安裝 express-generator 構建工具 npm install -g express-generator 在命令行中用 npm 在全局安裝 express-generator