调度基本功能(ETL+任务流)
2025-11-21 12:18
信息假设储存方法(信息读取文件播放器----( textfil parquet)---as-textfileImports data as plain text (default)---as-parquetfile Imports data to Parquet Files)
借助于请注意信息开集到HDFS
bin/sqoop import ---connect jdbc:mysql://172.16.43.67:3306/userdb ---username root ---password root ---table emp_add ---target-dir /sqoop/emp_add -m 1 ---delete-target-dir ---where "city = 'sec-bad'"BLOB信息到Hive
对于CLOB,如xml文本,sqoop可以搬迁到Hive请注意,互换队列读取为Unicode型式。对于BLOB,如jpg页面,sqoop无法必要搬迁到Hive请注意,必需不须搬迁到HDFS逆时针,然后再应用于Hive下达查找到Hive请注意。搬迁到HDFS后BLOB队列读取为16进制形式。
bin/sqoop-import ---connect jdbc:mysql://192.168.77.137:3306/zhjy ---username root ---password 123456 ---table ceshi ---columns "id,name,photo" ---split-by id -m 4 ---inline-lob-limit=16777126 设立内联的LOB这不一定的不等---target-dir /user/hive/warehouse/ods.db/ceshijar包
第二步:开始借助于
day=MLT-date -d "yesterday" +%Y%m%dMLT-sqoop import ---借助于信息---connect jdbc:mysql://10.2.111.87:3306/ehl_apmp ---通往url---username root ---用户名---password root ---私钥---table zf_jygz_thjc ---要借助于的请注意-m 1 ---maptask---hive-drop-import-delims ---借助于时擦除信息库里特殊Unicode ---hive-overwrite ---遮盖借助于---hive-import ---借助于到hive请注意里---hive-database ods ---借助于到hive里哪个信息库---hive-table ods_zf_jygz_thjc ---借助于到hive里哪个请注意---fields-terminated-by ' ' ---队列分隔符---lines-terminated-by '' ---登录行分隔符---null-string '\N' ---Unicode串型式为null是代替Unicode---null-non-string '\N' ---字非符串型式为null是的代替Unicode---hive-partition-key day ---hive请注意的七区队列---hive-partition-value "$day" ---登录借助于请注意的七区值们也可以通过下达来将我们的mysql的请注意必要借助于到hive请注意当里去
sqoop import ---connect jdbc:mysql://10.2.111.87:3306/ehl_apmp ---username root ---password root ---table $1 ---hive-import ---hive-database ods ---create-hive-table ---fields-terminated-by ' ' ---null-string '\N' ---null-non-string '\N' ---split-by code -m 42.1.4自适应借助于
Append id 是给予一个某一列的某个值。
merge-key id 合并方法在
append方法
自增列id,在关系型信息库里以都由键的形式普遍存在。之前已经将id在0-1000之间的编号的下单借助于到HDFS 里;如果在产生新的下单,此时我们只需登录incremental请注意达式为append,---last-value请注意达式为1000即可,请注意示只从id少于1000后开始借助于。
(1)创始人一个MySQL请注意
CREATE TABLE orders( o_id INT PRIMARY KEY AUTO_INCREMENT, o_name VARCHAR(255), o_price INT );INSERT INTO orders(o_id,o_name,o_price) VALUES(1,'联想',5000);INSERT INTO orders(o_id,o_name,o_price) VALUES(2,'塔尼',3000);INSERT INTO orders(o_id,o_name,o_price) VALUES(3,'雷神',5000);INSERT INTO orders(o_id,o_name,o_price) VALUES(4,'JACK JONES',800);INSERT INTO orders(o_id,o_name,o_price) VALUES(5,'真维斯',200);(2)创始人一个hive请注意(请注意内部结构与mysql赞同)
bin/sqoop import ---connect jdbc:mysql://192.168.22.30:3306/userdb ---username root ---password root ---table emp ---target-dir /sqoop/increment ---num-mappers 1 ---incremental append ---check-column id ---last-value 1202Modify方法
# 将小时列少于大于阈值的信息自适应借助于HDFS
sqoop import ---connect jdbc:mysql://192.168.xxx.xxx:3316/testdb ---username root ---password transwarp ---query “select order_id, name from order_table where $CONDITIONS” ---target-dir /user/root/order_all ---split-by id -m 4 ---incremental lastmodified ---merge-key order_id ---check-column time # remember this date !!! ---last-value “2014-11-09 21:00:00”==通过where必需挑落选造出信息更加得心应手==
yesterday=MLT-date -d "yesterday" +%Y_%m_%dMLT-where="update_time>= "${yesterday}""day=MLT-date -d "yesterday" +%Y-%m-%dMLT-sqoop import ---借助于信息---connect jdbc:mysql://10.2.111.87:3306/ehl_apmp ---通往url---username root ---用户名---password root ---私钥---table zf_jygz_thjc ---要借助于的请注意-m 1 ---maptask---hive-drop-import-delims ---借助于时擦除信息库里特殊Unicode ---hive-overwrite ---遮盖借助于---hive-import ---借助于到hive请注意里---hive-database ods ---借助于到hive里哪个信息库---hive-table ods_zf_jygz_thjc ---借助于到hive里哪个请注意---fields-terminated-by ' ' ---队列分隔符---lines-terminated-by '' ---登录行分隔符---columns 'zf_bh,zf_xm' ---借助于的队列(可落选)---where "${where}" ---必需借助于---null-string '\N' ---Unicode串型式为null是代替Unicode---null-non-string '\N' ---字非符串型式为null是的代替Unicode---hive-partition-key day ---hive请注意的七区队列---hive-partition-value "$day" ---登录借助于请注意的七区值RDBMS到hbase
bin/sqoop import ---connect jdbc:mysql://192.168.22.30:3306/userdb ---username root ---password root ---table emp ---columns "id,name,sex" ---column-family "info"---hbase-create-table ---hbase-row-key "id" ---hbase-table "hbase_test" ---split-by id ---num-mappers 12.1.6从HDFS到RDBMS
信息是在HDFS当里的如下录入/sqoop/emp,信息细节如下
1201,gopal,manager,50000,TP,2018-06-17 18:54:32.0,2018-06-17 18:54:32.0,11202,manisha,Proof reader,50000,TP,2018-06-15 18:54:32.0,2018-06-17 20:26:08.0,11203,khalil,php dev,30000,AC,2018-06-17 18:54:32.0,2018-06-17 18:54:32.0,11204,prasanth,php dev,30000,AC,2018-06-17 18:54:32.0,2018-06-17 21:05:52.0,01205,kranthi,admin,20000,TP,2018-06-17 18:54:32.0,2018-06-17 18:54:32.0,1第一步:创始人MySQL请注意
CREATE TABLE MLT-emp_outMLT- ( MLT-idMLT- INT(11) DEFAULT NULL, MLT-nameMLT- VARCHAR(100) DEFAULT NULL, MLT-degMLT- VARCHAR(100) DEFAULT NULL, MLT-salaryMLT- INT(11) DEFAULT NULL, MLT-deptMLT- VARCHAR(10) DEFAULT NULL, MLT-create_timeMLT- TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, MLT-update_timeMLT- TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, MLT-is_deleteMLT- BIGINT(20) DEFAULT '1') ENGINE=INNODB DEFAULT CHARSET=utf8;全量假设
bin/sqoop export ---connect jdbc:mysql://172.16.43.67:3306/userdb ---username root ---password admin ---table emp_out ---export-dir /sqoop/emp ---columns id,name (当文件信息与请注意内部结构赞同时,可以不登录)---input-fields-terminated-by ","自适应假设
bin/sqoop export ---connect jdbc:mysql://192.168.77.137:3306/zhjy ---username root ---password 123456 ---table emp_out ---update-key id ---update-mode allowinsert (新增的信息被假设)---export-dir '/user/hive/warehouse/ods_ceshi/part-m-00000' ---input-null-string '\N' ---input-null-non-string '\N' ---input-fields-terminated-by ',' -m 1更新假设
bin/sqoop export ---connect jdbc:mysql://192.168.77.137:3306/zhjy ---username root ---password 123456 ---table emp_out ---update-key id ---update-mode updateonly (必需假设重写后的信息,不能假设新增的信息)---export-dir '/user/hive/warehouse/ods_ceshi/part-m-00000' ---input-null-string '\N' ---input-null-non-string '\N' ---input-fields-terminated-by ',' -m 1(1)mysql批量借助于hive
#!/bin/bashsource /etc/profilenum=0list="table1 table2 table3"for i in $list; do echo "$sum" echo "$i" echo "sqoop开始批量借助于......" sqoop import ---connect jdbc:mysql://localhost:3306/test ---username root ---password 123456 ---table person ---hive-table db.$i ---delete-target-dir ---hive-overwrite ---hive-import & num=$(expr $num + 1) if [$sum -gt 4 ]; then { echo "下次批量使命已完成" wait echo "开始下一批借助于" num = 0 } fidoneecho "下次最后一批使命已完成"waitecho "全部借助于已完成"应用于shell解释器:
#!/bin/shexport SQOOP_HOME=/usr/share/sqoop-1.4.4hostuser="root"password="root"database="test"table="tags"curr_max=0function db_to_hive(){ ${SQOOP_HOME}/bin/sqoop import ---connect jdbc:mysql://${hostname}/${database} ---username ${user} ---password ${password} ---table ${table} ---split-by docid ---hive-import ---hive-table lan.ding ---fields-terminated-by ' ' ---incremental append ---check-column docid ---last-value ${curr_max} result=MLT-mysql -h${hostname} -u${user} -p${password} ${database}<shell解释器循环遍历日期,用于sqoop解释器#! /bin/bashfirst="$1"second="$2"while [ "$first" != "$second" ]dodate=MLT-date -d "$first" +"%Y-%m-%d"MLT-sqoop export ---connect jdbc:mysql:// ---username ---password ---table dwd_fact_front_orderinfo ---export-dir /user/hive/warehouse/dwd.db/dwd_fact_front_orderinfo/day="$date" ---input-null-non-string '\N' ---input-null-string '\N' ---input-fields-terminated-by " " ---update-key id ---update-mode allowinsert ---m 1;let first=MLT-date -d "-1 days ago ${first}" +%Y%m%dMLT-doneSqoop假设难题总结
难题原因:夏令时设立难题,date -R查看服务器小时,show VARIABLES LIKE "%time_zone"查看Mysql小时,system这不请注意示里国的标准小时,要将小时设立为东七区
set global time_zone = '+08:00';set time_zone = '+08:00';flush privileges;2.2Kettle适时用以3.使命引适时用以3.1适时用以对比3.2 Azkaban适时用以3.1.1启动solo-servercd /export/servers/azkaban-solo-server-0.1.0-SNAPSHOTbin/start-solo.sh3.1.2浏览器链接访问
3.3 Oozie适时用以
3.3.1数仓引程解释大致引程:MySQL -> HDFS -> ODS -> DWD -> DWS -> ADS -> MySQL 具体引程:1. MySQL业务通过Sqoop信息借助于HDFS2. 将HDFS信息借助于Hive数仓ODS层3. 将ODS信息简单清洗擦除DWD层4. 将DWD信息轻度汇总擦除DWS层宽请注意5. 将DWS层信息统计结果擦除ADS层6. 将ADS层信息通过Sqoop假设到MySQL汇总请注意3.3.2创始人实习引1. 创始人实习引 2. 编辑实习引 3. 完整版解释器 4. 掺入文件
5. 填写请注意达式
6. 分列掺入后续使命
7. 复原,或者列车运行 8. 状态查看
9. 其他
若有适时1. 创始人若有计划(schedule) 2. 重写并不一定
3. 掺入使命
4. 设立适时小时 5. Crontab高级语法方法在 6. 请注意达式设立
Bundle
。
杭州白癜风专家昆明甲状腺
昆明白癜风治疗方法有什么
消化不良吃什么
重庆白癜风医院哪家专业好
小孩缺钙
痤疮食疗
吃什么可以止咳化痰
血糖高不能吃什么
咳嗽有痰用急支糖浆还是川贝枇杷膏
下一篇: 【格林政经早报0105】

-
阿邦拉霍谈拉菲尼亚转会:茅夫要求巴萨立即付款很明智
阿邦莫霍谈莫菲加尔试训:杜士堡敦促莫尼马上付款很高明 现场转播吧7月18日讯 前黑池名将阿邦莫霍遵从Football Insider的新闻报道,谈到了莫菲加尔试训莫尼的交易,他

-
名记:艾顿能否与太阳重修旧好 蒙蒂&史蒂芬是主要因素
名记:艾顿能否与太阳不欢而散 蒙蒂Co史蒂芬是主要因素 录影吧7月18日讯 此前的报道中,太阳比如说了步行者得到艾顿的4年1.33亿美元的顶薪协议,艾顿继续留在太阳。
- 11-24沃尔谈在骅穿11号:这是我的最爱 此前奇才火箭均已退役该号码
- 11-24丢了足球人的脸?北京国安售卖飞盘造成热议,网友直言吃相难看!
- 11-24贵阳市第二届的社区运动会启幕
- 11-24高手!曼联新援多项传球数据为荷甲顶尖,顶尖出球控球驰援红魔
- 11-24碾压!中国男篮VS印尼交锋史,曾单场赢107分,对手蜕变须警惕
- 11-24中超当红外援力挺郝伟:我认为他人极佳,想不到更好的形容词!
- 11-24西甲新双骄!2位三旬老将齐聚伊比利亚半岛,莱万本泽马直言不讳
- 11-24舞林高手齐聚 成渝表演者公开赛在沙坪坝区举行
- 11-24国足东亚排名受到更为严重挑战:印尼考虑成为东亚第11个成员!
- 11-24中国女排止步8强后,传奇人物指出蔡斌2大不足,郎平爱徒受委屈了