sqoop从mysql导入到hive

业务需求:将mysql的pis.T_MATCH表导入到hive上pms库的pis_t_match表

实现代码:

hive -e "set mapred.job.queue.name=pms;

create table if not exists pms.pis_t_match
(
id bigint,
merchant_id int,
product_id string,
product_name string,
product_code string,
oppon_product_code string,
oppon_product_name string,
oppon_product_url string,
site_id int,
score double,
create_time string,
creator_id string,
update_time string,
is_manual int,
is_auto int,
is_champion int,
is_candidate int,
is_confirm int,
is_delete int,
formula_ymbols int,
formula_number int,
remarks string,
data_status int,
is_barcode int,
is_doubt int,
is_search int,
instance_id string,
is_inshop int
)
STORED AS TEXTFILE;"

hadoop fs -rmr /user/pms/T_MATCH

sqoop import -Dmapred.job.queue.name=pms --connect jdbc:mysql://mysql-pis-slave.int.yihaodian.com:3306/pis --username pisqry --password 123456 --table T_MATCH --hive-table pms.pis_t_match --fields-terminated-by '\t' --lines-terminated-by '\n' --hive-overwrite --hive-import

执行结果:

$hadoop fs -cat /user/hive/pms/pis_t_match/* | more
24894	1	1069320	西铁城CITIZEN电子体温计CT791SP	0010693206	1096041301	新款抢先上市 西铁城体温计CT791SP 30秒速计 软头设计 舒适测量 - 营养/保健/成人 - 当当网	http://product.dangdang.co
m/product.aspx?product_id=1096041301	1003	null	2011-11-15 10:15:26.0	mujingjing	2014-12-11 19:18:01.0	true	false	false	false	false	false	null	null	对手下架,取消确认
匹配关系	false	null	null	null	null	false
24905	1	1110373	天合健芦荟软胶囊500mg×40粒/盒	0011103734	20511906	[当当自营] 凯镛芦荟胶囊0.4g*40粒(健)	http://product.dangdang.com/product.aspx?product_id=20511906	1003	nu
ll	2011-11-15 10:19:22.0	caifei	2014-12-11 19:18:01.0	true	false	false	false	false	false	null	null	对手下架,取消确认匹配关系	false	null	null	null	null	fa
lse
24906	1	1111640	清华紫光金奥力DHA软胶囊500mg*100粒	0011116408	60139687	[当当自营] 清华紫光 金奥力DHA软胶囊 500mg*100粒	http://product.dangdang.com/Product.aspx?product_id=601396
87	1003	null	2011-11-15 10:19:27.0	caifei	2012-05-24 23:25:37.0	true	false	false	false	true	false	null	null	null	false	null	true	null	null	false
24908	1	1111642	清华紫光金奥力牌褪黑素胶囊(改善睡眠)  200mg*60粒	0011116420	60118666	[当当自营] 清华紫光金奥力牌褪黑素胶囊200mg*60s	http://product.dangdang.com/Product.aspx?p
roduct_id=60118666	1003	null	2011-11-15 10:19:29.0	caifei	2012-05-24 23:25:37.0	true	false	false	false	true	false	null	null	null	false	null	false	null	nu
ll	false
时间: 2024-08-29 09:06:13

sqoop从mysql导入到hive的相关文章

教程 | 使用Sqoop从MySQL导入数据到Hive和HBase

基础环境 sqoop:sqoop-1.4.5+cdh5.3.6+78, hive:hive-0.13.1+cdh5.3.6+397, hbase:hbase-0.98.6+cdh5.3.6+115 Sqool和Hive.HBase简介 Sqoop Sqoop是一个用来将Hadoop和关系型数据库中的数据相互转移的开源工具,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中. Hiv

使用sqoop从mysql导入数据到hive

前言 这篇文章主要是用sqoop从mysql导入数据到hive时遇到的坑的总结. 环境: 系统:Centos 6.5 Hadoop:Apache,2.7.3 Mysql:5.1.73 JDK:1.8 Sqoop:1.4.7 Hadoop以伪分布式模式运行. 一.使用的导入命令 我主要是参考一篇文章去测试的,Sqoop: Import Data From MySQL to Hive. 参照里面的方法,在mysql建了表,填充了数据,然后按照自己的情况输入了命令: sqoop import --co

sqoop从mysql导入到hdfs

1.mysql -- 创建数据库 create database logs; -- 使用 use logs; -- 创建表 create table weblogs(  md5 varchar(32),  url varchar(64),  request_date date,  request_time time,  ip varchar(15) ); -- 从外部文本文件加载数据 load data infile '/path/weblogs_entries.txt' into table

sqoop从mysql导入hive的一些问题

1.错误:Sqoop:Import failed: java.lang.ClassNotFoundException: org.apache.hadoop.hive.conf.HiveConf 解决方法1: 将mysql中的数据导入到hive中报错: ERROR tool.ImportTool:Import failed: java.io.IOException: java.lang.ClassNotFoundException: org.apache.hadoop.hive.conf.Hive

sqoop 整库导入数据hive

1.整库导入 sqoop  import-all-tables --connect jdbc:mysql://ip:3306/dbname  --username user --password password --hive-database abc  -m 10  --create-hive-table  --hive-import --hive-overwrite import-all-tables :导入所有表 --connect :连接的url地址 --username:mysql用户

sqoop 从mysql导入hive的字段名称问题

hive中有些关键字限制,因此有些字段名称在mysql中可用,但是到了hive就不行. 比如order必须改成order1, 下面列出了我们发现的一些不能在hive中使用的字段名称 order  => order1 sort => sort1 reduce => reduce1 cast => cast1 directory => directory1

使用Sqoop,最终导入到hive中的数据和原数据库中数据不一致解决办法

Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql.postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中. 1.问题背景 使用Sqoop把oracle数据库中的一张表,这里假定为student,当中的数据导入到hdfs中,然后再创建hive的external表,location到刚才保存到hdfs中数

sqoop同步mysql数据到hive中

一.sqoop 在同步mysql表结构到hive sqoop create-hive-table --connect jdbc:mysql://ip:3306/sampledata --table t1--username dev --password 1234 --hive-table t1; 执行到这一步就退出了,但是在hadoop的hdfs上的/hive/warehouse/的目录下是找不到t1表的目录, 但是正常执行完成是下面这样的: 错误就是hive的jar包有缺失 全部的jar包该是

多种字符集并存情况下sqoop从MySQL导入HBase中文乱码解决

最近在做binlog日志采集同步到数据平台的事.刚开始需要借助sqoop将从库数据表数据初始化到hbase中,整个过程都需要自动化进行,尽量减少人为干预.但是,由于历史原因,线上存在两种字符集格式的数据库(表),而导入到hbase的数据我们需要统一采用utf-8格式存储.sqoop直接导入的话,没法控制中文字符转码工作.所以需要对sqoop源码进行简单改动支持这种方式. 大体思路是,通过定义一个接口可以从InformationSchema库的tables中获取某个表的table-collatio