在开始导入之前,sqoop会通过jdbc来获得所需要的数据库元数据
1.导入表的列名、数据类型等;
2.接着这些数据库的数据类型(varchar、number等)会把映射成java的数据类型(string、int等),根据这些信息,sqoop会生成一个与表名同名的类用来完成反序列的工作,保持表中的每一行记录;
3.sqoop启动mapreduce作业
4.启动的作业在input的过程中,会通过jdbc读取数据库表中的内容;
5.这是会使用sqoop生成的类进行反序列话
6.最后再将这些记录写到hdfs中,在写入hdfs的过程中,同样会使用sqoop生成的类进行序列化。
1/2 sqoop根据目标表的结构会生成一个java类
3.该类作用为序列化和反序列化
4.接着启动一个mapreduce作业
5.在作业中会生成的java类从hdfs中读取数据
6.并生成一批insert语句,每条语句都会向mysql的目标表中插入多条记录