您的位置:主页 > hg0088备用网址 >

学步园

  sqoop是干吗的,就不在此雕刻边芡费笔墨了,此雕刻边首要讲下壹个新顺手接触到sqoop碰到的效实。 copyright dedecms

  壹 ?事情场景 Hive 查询Hql的结实进入MySql,当前己己己是经度过两步到来完成的,

织梦好,好织梦

  1 把hive查询结实直接进入Hive的表a(a表需寻求创立,构造需追言和b壹样) 织梦好,好织梦

  2 经度过sqoop把表a的情节带入到MySql表b(b表曾经存放在),

织梦内容管理系统

  此雕刻个时分你需寻求当今hive上创立a表,假设b字段很多,你需寻求壹个壹个字段写到建表语句子。我是不想写。估计你亦,邑是经度过sqoop直接把MySQL的b表带入到hive,鉴于hive表默许的隔河相望符是'\001',因此倒腾度过去的时分要剩意,带上表隔河相望符参数 内容来自dedecms

  --fields-terminated-by '\t',如次:

copyright dedecms

  sqoop import --connect jdbc:mysql://db.foo.com/corp --table EMPLOYEES \ 织梦好,好织梦

  ?--fields-terminated-by '\t'

内容来自dedecms

  要想经度过sqoop把hive的表带入MySql,hive上的表隔河相望符壹定要是'\t',sqoop才干顺顺手带入,假设你运用默许的,即苦在用sqoop带入的时分经度过参数--input-fields-terminated-by '\001'也不行的。壹定是--input-fields-terminated-by '\t' 才行。 dedecms.com

  二 sqoop带入hive数据到MySql碰到hive表中列的值为null的情景。

织梦内容管理系统

  在带入数据的经过中,假设碰到列值为null的情景,hive中为null的是以\N顶替的,因此你在带入到MySql时,需寻求加以上两个参数:--input-null-string '\\N' --input-null-non-string '\\N',多加以壹个'\',是为伸申义。假设你经度过此雕刻个还不能处理字段为null的情景,还是报什么NumberFormalt非日的话,那坚硬是比较另类的了,没拥有拥有相干,我们还是要方法处理,此雕刻坚硬是最末兵器。呵呵

copyright dedecms

  你应当剩意到每回经度过sqoop带入MySql的时,邑会生成壹个以MySql表命名的.java文件,然后打成JAR包,给sqoop提提交给hadoop 的MR到来松析Hive表中的数据。那我们却以根据报的错误,找到对应的行,改写该文件,编译,重行打包,sqoop却以经度过 -jar-file ,--class-name 构成让我们指定运转己己己的jar包中的某个class。到来松析该hive表中的每行数据。脚丫儿子本如次:壹个完整顿的例儿子如次: dedecms.com

  下面--jar-file 参数指定jar包的道路。--class-name 指定jar包中的class。

本文来自织梦

  此雕刻么就却以处理所拥有松析非日了。 织梦内容管理系统

  下面贴下sqoop日日用的命令,

内容来自dedecms

  1 带入MySQL表到Hive 织梦内容管理系统

  叁 sqoop增量倒腾入 本文来自织梦

  sqoop顶持两种增量MySql带入到hive的花样, dedecms.com

  ?壹种是 append,即经度过指定壹个面提交增的列,譬如:

织梦好,好织梦

  --incremental append ?--check-column num_iid --last-value 0? 本文来自织梦

  另种是却以根据时间戳,譬如:

友荐云推荐 关键字:
本文版权归作者本人所有,转载请注明原文出处。

返回顶部
er2.htm"/}