1 添加数据
sqoop import --connect jdbc:mysql://localhost:3306/sqooptest --table sqoop_class --username root --password hadoop --check-column class_id --incremental append --last-value 6 -m 1
sqooptest 为数据库名字
sqoop_class 为表名
username 为数据库用户名
password 为数据库密码
check-column,用来指定一些列,这些列在导入时用来检查做决定数据是否要被作为增量数据,在一般关系型数据库中,都存在类似Last_Mod_Date的字段或主键。注意:这些被检查的列的类型不能是任意字符类型,例如Char,VARCHAR…(即字符类型不能作为增量标识字段)
incremental,用来指定增量导入的模式(Mode),append和lastmodified
last-value,指定上一次导入中检查列指定字段最大值
m或num-mappers [INT],控制导入时MR作业的Map任务数量,后接一个整数值,用来表示MR的并行度。在进行并行导入的时候,Sqoop会使用split-by进行负载切分(按照表的PK进行切分),首先获取切分字段Max和Min值,再根据Max和Min值去进行切分,举例:student_id [1,1000],Sqoop会直接使用4个Map任务”select * from student where id >=min and id <=max,(1,250),(250,500),(500,750),(750,1000)。如果非常不幸,你的ID或切分字段不是均匀分布的话,会导致任务的不平衡。注明:Sqoop目前不能使用多个字段作为切分字段。
2 启动hadoop错误日志
$HADOOP_HOME/sbin/mr-jobhistory-daemo.sh start historyserver