1、import原理
1、在命令行中编写Sqoop导入/导出指令;
2、在回车一瞬间,将Sqoop指令翻译为Maptask程序;
根据指定的Map个数,会自动生成相对应数量的MapTask程序;
3、从传统数据库获取元数据信息(schema,table,)源源不断地通过MR程序导入到HDFS中;
- 在MapReduce中有很多map,每个map读取一片数据,进而并行拷贝;
2、export原理
1、获取导出表的schema,meta信息,和hadoop中的字段match;
2、多个map作业同时运行,完成hdfs中数据导出到关系型数据库中;
3、面试题:多个map的顺序是否有序
多个map的顺序是无序的,因为是多线程并行执行;
如果是一个maptask,那么数据顺序和HDFS中数据顺序保持一致;
如果是多个maptask,那么数据顺序和HDFS中数据顺序是不一样的;
4、面试题:Sqoop底层是4个Map,那么他读数据的时候怎么拿数据,他知道那个Map拿哪些数据?
Sqoop的JobClient向HDFS提交的资源就包含了InputSplit,这就是数据划分的结果;
也就是说数据划分实在JobClient上完成的,JobClient会使用指定的InputFormat将输入数据进行一次划分形成若干个Client