热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

sqoop2创建mysqllink_sqoop2的shell下的使用及其详解(sqoop1.99.7)

,当创建link时,用这个id指定所继承的connector,但在这个版本中没有这个id了,创建link时直接使用conne

,当创建link时,用这个id指定所继承的connector,但在这个版本中没有这个id了,创建link时直接使用connector名称创建,这里我们使用的是generic-jdbc-connector(一般数据库都可以用这个):@H_403_3@

createlink-c[onnector] generic-jdbc-connector@H_403_3@@H_403_3@

这时候就会出现交互会话,提示你输入各项参数:

Name: MysqL-link 标示这个link的字符串,就是一个名字,但是不能重复

Driver Class:指定jdbc启动时所需要加载的driver类,这个类实现了Java.sql.Driver接口。对本文来说,这个值是com.MysqL.jdbc.Driver。

Connection String:本例为jdbc:MysqL://master:3306/hive, #注意:jdbc:MysqL://主机名(ip):端口/数据库名

Username:链接数据库的用户名,也就是MysqL客户端传入的-u参数。本例是hive。

Password:链接数据库的用户密码。(注:在使用update命令时,这里默认是没有的,其他参数都会保存原来输过的值)

FetchSize:直接回车了,使用的默认值,不是很清楚这个值,请知道的大牛告知,按字面意思就是获取一次资源时的大小。

填写完上面几项,将提供一个可以输入JDBC属性的hash,提示符是entry#,这时候可以手动指定很多JDBC属性的值。本例只覆盖了一个protocol值为tcp:protocol=tcp

再按回车,之后会再定义一下sql方言。也就是说,各个数据库系统提供商们对sql语言标准的理解和实现各有不同,于是各有各的一些细微差别。以下属性就是用于指定这些区别的。 官方文档上并没有说明这些属性如何填写,连提都没提(官网有时还是挺坑的)。

Identifier enclose:指定sql中标识符的定界符@H_403_3@,也就是说,有的sql标示符是一个引号:select * from "table_name", 在写MysqL的sql语句中会加上双引号,这种定界符在MysqL中是会报错的,。这个属性默认值就是双引号,所以不能直接回车使用默认值,必须将之覆盖,我使用空格覆盖了这个值。

至此,就可以完成这个link的创建。命令行提示符也会还原为sqoop:000>。使用以下命令查看是否创建成功:@H_403_3@@H_403_3@@H_403_3@

show link,后面也可以加参数,-n或者-a之类的

@H_403_3@

@H_403_3@@H_403_3@

2.2创建HDFS链接

createlink-c hdfs-connector@H_403_3@@H_403_3@

Name: hdfs-link 与MysqL的一样,是个名字但不重复

@H_403_3@

HDFS URI:hdfs://master:9000/@H_403_3@@H_403_3@@H_403_3@@H_403_3@这个url是hadoop中配置hdfs-site.xml中的属性@H_403_3@fs.defaultFS@H_403_3@的值(老版的hadoop是fs.default.name,如果没找到就使用webUI (http://主机名(ip):8088/conf) 去配置中心看)。@H_403_3@@H_403_3@@H_403_3@

Hadoop conf directory:/mysoftware/hadoop-2.7.1/etc/hadoop @H_403_3@#Hadoop配置文件的目录@H_403_3@

回车后没有什么错误就会显示successful信息。@H_403_3@

2.3 创建一个job

@H_403_3@createjob-f"MysqL-link"-t"hdfs-link"@H_403_3@@H_403_3@@H_403_3@

-f指定from,即是数据源位置,-t指定to,即是目的地位置。本例是从MysqL传递数据到HDFS,所以就是from MysqL to HDFS。参数值就是在创建链接(link)时指定的Name。名字在上面取好了,知道为啥名字不能重复了吧@H_403_3@

@H_403_3@

@H_403_3@

Name: MysqL_hdfs_job #Name必须唯一

Schema name: hive #必填,数据库名称

Table name: DBS@H_403_3@ #必填,表名

#以下几个配置我也是直接回车,使用默认值,从名字上能看出个大概的值

Table sql statement: @H_403_3@ #可选

Table column names: @H_403_3@#可选

Partition column name: @H_403_3@ #可选

Null value allowed for the partition column: #可选

Boundary query: #可选

Check column: #可选

Last value: #可选

Override null value: #可选

Null value:

Output format: #输出文件格式

0 : TEXT_FILE@H_403_3@

@H_403_3@..........@H_403_3@

Choose: 0 #必选

Compression format: @H_403_3@#用于指定使用什么压缩算法进行导出数据文件压缩,我指定NONE,这个也可以使用自定义的压缩算法CUSTOM,用Java实现相应的接口@H_403_3@

0 : NONE

..........

Choose: 0 #必选 这个就是指定的custom压缩算法

Output directory: /mysqoop # 指定存储在HDFS文件系统中的路径,这里最好指定一个存在的路径,或者存在但路径下是空的,貌似这样才能成功。

Append mode: @H_403_3@#是否追加文件,不懂的是,要求文件夹是空,连文件都没有何来追加!

#下面两个数量怎么取值,还不是很情况,请大牛告知

Extractors: 2 #可选,对应mapreduce的job中的map的数量

Loaders: 1 #可选,对应mapreduce的job中的reduce的数量

最后再次出现element#提示符,用于输入extra mapper jars的属性,可以什么都不写。直接回车。

至此若出现successful则证明已经成功创建。@H_403_3@

2.4 运行job

@H_403_3@start job -n MysqL_hdfs_job -s (名字上的引号要不要都无所谓)

@H_403_3@

-s 参数可以看到运行的状态,@H_403_3@

也可以用status job -n MysqL_hdfs_job 查看或者使用webUI查看 (http://主机名(ip):8088/cluster/apps),也能看日志@H_403_3@

@H_403_3@

如果失败,优先看sqoop shell中有没有报错,再者看日志,可以在webUI中和sqoop的日志文件看,前面有提及,如果日志中没有明显的报错,一般是你设置某个参数时不正确,或者是(hadoop)配置文件有问题,@H_403_3@

报错时的推荐参数:@H_403_3@

在Hadoop的yarn-site.xml 这个配置文件中设置以下属性

yarn.log-aggregation-enable

true

在mapred-site.xml中设置:(默认200)

mapred.child.java.opts

-Xmx1024m

@H_403_3@

参考文章:

http://www.cnblogs.com/avivaye/p/6196485.html

http://www.cnblogs.com/avivaye/p/6197123.html

http://blog.csdn.net/M_SIGNALs/article/details/53189424

http://blog.csdn.net/u012842205/article/details/52346595

http://blog.csdn.net/u014729236/article/details/46876651

还有很多地方不太懂,求知道的大牛,不吝赐教!共勉!

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250



推荐阅读
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 什么是大数据lambda架构
    一、什么是Lambda架构Lambda架构由Storm的作者[NathanMarz]提出,根据维基百科的定义,Lambda架构的设计是为了在处理大规模数 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文详细介绍了在ASP.NET中获取插入记录的ID的几种方法,包括使用SCOPE_IDENTITY()和IDENT_CURRENT()函数,以及通过ExecuteReader方法执行SQL语句获取ID的步骤。同时,还提供了使用这些方法的示例代码和注意事项。对于需要获取表中最后一个插入操作所产生的ID或马上使用刚插入的新记录ID的开发者来说,本文提供了一些有用的技巧和建议。 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
author-avatar
可爱嘟嘟豬5
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有