最近在研究Sqoop,根据hadoop definitive guide 书籍,写下自己的理解,如有不当之处,请指正。
先说,Sqoop generated code的两种生成方式:
1、使用Sqoop导入命令,会自动生成,它的生成的时间是在 导入的过程中,而不是导入完成之后。
2、使用如下命令
%
sqoop
codegen --connect jdbc:mysql://localhost/hadoopguide \
> --table widgets --class-name Widget
两种方式的区别:
第一种可以说,是导入过程的副产品
第二种:
1、只是简单的生成代码,它不会执行完全的导入。
2、指明想生成一个名为widget的类,生成的代码就会被写进一个Widget.java。可以重命名generated
code的名字。
3、可以,在导入之前,指定类的名字和其它的生成代码的参数。
4、这个工具可以被用来重新生成代码,如果你不小心删除了源代码的时候。
下面说一下generated code 到底有什么用?
1、generated code可以把要导入的数据,以序列化文件存储在HDFS中。
2、它会检查数据库中的表,以决定在导入数据时,进行数据类型的转换时,每个字段最合适数据类型。
3、当你把原数据库中数据,以序列化文件的方式导入HDFS时,在你要处理这些序列化文件时,你需要使用generated
code 从序列化存储的文件中反序列化数据。