文档介绍:Sqoop中文手册1. 概述本文档主要对SQOOP的使用进行了说明,参考内容主要来自于ClouderaSQOOP的官方文档。为了用中文更清楚明白地描述各参数的使用含义,本文档几乎所有参数使用说明都经过了我的实际验证而得到。、javaclass类、以及相关的jar包,1、 将数据库表映射为一个Java文件,在该Java文件中对应有表的各个字段。2、 生成的Jar和class文件在metastore功能使用时会用到。基础语句:sqoopcodegen–connectjdbc:mysql://localhost:3306/hive–usernameroot–password123456–tableTBLS2 参数说明–bindir<dir>指定生成的java文件、编译成的class文件及将生成文件打包为JAR的JAR包文件输–class-name<name>–outdir<dir>生成的java文件存放路径–package-name<name>包名,nic,nic两级目录,nic目录里–input-null-non-string<null-str>在生成的java文件中,可以将null字符串设为想要设定的值(比如空字符串’’)–input-null-string<null-str>同上,设定时,最好与上面的属性一起设置,且设置同样的值(比如空字符串等等)。–map-column-java<arg>数据库字段在生成的java文件中会映射为各种属性,且默认的数据类型与数据库类型保持对应,比如数据库中某字段的类型为bigint,则在Java文件中的数据类型为long型,通过这个属性,可以改变数据库字段在java中映射的数据类型,格式如:–map-column-javaDB_ID=String,id=Integer–null-non-string<null-str>在生成的java文件中,比如TBL_ID==null?”null”:””,通过这个属性设置可以将null字符串设置为其它值如ddd,TBL_ID==null?”ddd”:””–null-string<null-str>同上,使用的时候最好和上面的属性一起用,且设置为相同的值–table<table-name>对应关系数据库的表名,生成的java文件中的各属性与该表的各字段一一对应。 -hive-table生成与关系数据库表的表结构对应的HIVE表基础语句:sqoopcreate-hive-table–connectjdbc:mysql://localhost:3306/hive-usernameroot-password123456–tableTBLS–hive-tableh_tbls2参数–hive-home<dir>Hive的安装目录,可以通过该参数覆盖掉默认的hive目录–hive-overwrite覆盖掉在hive表中已经存在的数据–create-hive-table默认是false,如果目标表已经存在了,那么创建任务会失败–hive-table后面接要创建的hive表–table指定关系数据库表名 ,这可以使得在使用import这种工具进行数据导入的时候,可以预先了解相关的SQL语句是否正确,并能将结果显示在控制台。查询示例:sqoopeval–connectjdbc:mysql://localhost:3306/hive-usernameroot-password123456-query“SELECT*FROMtblsLIMIT10″数据插入示例:sqoopeval–connectjdbc:mysql://localhost:3306/hive-usernameroot-password123456-e“INSERTINTOTBLS2VALUES(100,1375170308,1,0,’hadoop’,0,1,’guest’,’MANAGED_TABLE’,’abc’,’ddd’)”-e、-query这两个参数经过测试,比如后面分别接查询和插入SQL语句,皆可运行无误,如上。–connectjdbc:mysql://localhost:3306/hive–usernameroot–password123456 –tableTBLS2–export-dirsqoop/test参数说明–direct快速模式,利用了数据库的导入工具,如mysql的mysqlimport,可以比jdbc连接的方式更为高效的将数据导入到关系数据库中。–export-dir<dir>存放数据的HDFS的