sqoop导出hive表数据到mysql

来源:互联网 发布:淘宝优化 编辑:程序博客网 时间:2024/04/29 08:34

直接在mysql里从本地文件系统导入数据

mysql》LOAD DATA LOCAL INFILE 'C:\\Users\\asys\\Documents\\Tencent Files\\13174605\\FileRecv\\2015082818' INTO TABLE track_log

 FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n';  (注意这里文件是从linux导出的,以\n结尾)


sqoop从hive导出数据到mysql

先在mysql建立表

grant all privileges on *.* to 'root'@'%' identified by 'Nokia123' with grant option;


CREATE TABLE `track_log` (
  `id` varchar(1000) DEFAULT NULL,
  `url` varchar(5000) DEFAULT NULL,
  `referer` varchar(5000) DEFAULT NULL,
  `keyword` varchar(5000) DEFAULT NULL,
  `type` varchar(1000) DEFAULT NULL,
  `guid` varchar(1000) DEFAULT NULL,
  `pageId` varchar(1000) DEFAULT NULL,
  `moduleId` varchar(1000) DEFAULT NULL,
  `linkId` varchar(1000) DEFAULT NULL,
  `attachedInfo` varchar(1000) DEFAULT NULL,
  `sessionId` varchar(1000) DEFAULT NULL,
  `trackerU` varchar(1000) DEFAULT NULL,
  `trackerType` varchar(1000) DEFAULT NULL,
  `ip` varchar(1000) DEFAULT NULL,
  `trackerSrc` varchar(1000) DEFAULT NULL,
  `cookie` varchar(5000) DEFAULT NULL,
  `orderCode` varchar(1000) DEFAULT NULL,
  `trackTime` varchar(1000) DEFAULT NULL,
  `endUserId` varchar(1000) DEFAULT NULL,
  `firstLink` varchar(1000) DEFAULT NULL,
  `sessionViewNo` varchar(5000) DEFAULT NULL,
  `productId` varchar(1000) DEFAULT NULL,
  `curMerchantId` varchar(1000) DEFAULT NULL,
  `provinceId` varchar(1000) DEFAULT NULL,
  `cityId` varchar(1000) DEFAULT NULL,
  `ds` varchar(20) DEFAULT NULL,
  `hour` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


然后运行sqoop

jimmy》sqoop export --connect jdbc:mysql://localhost:3306/track_log --username root --password Nokia123  --table track_log   --export-dir "/user/hive/warehouse/track_log/ds=20150828/hour=18" --fields-terminated-by '\t' --columns "id, url,referer,keyword,type,guid,pageId,moduleId,linkId,attachedInfo,sessionId,trackerU,trackerType,ip,trackerSrc,cookie,orderCode,endUserId,firstLink,sessionViewNo,productId,curMerchantId,provinceId,cityId,ds ,hour"


注意: 1)--table track_log 是目的mysql的表,库在链接指定(这里库名也叫track_log) --connect jdbc:mysql://localhost:3306/track_log

              2) 不能直接从hive表里导出(不能--hive-table),只能从hdfs导出

              3)必须指定字段--columns

              4)字段分割符号要和hdfs文件里的一致 --fields-terminated-by '\t'

          

0 0
原创粉丝点击