Hadoop 与sqoop导入相关的查询? 脚本:

Hadoop 与sqoop导入相关的查询? 脚本:,hadoop,sqoop,Hadoop,Sqoop,我已将数据从SQl Server导入HDFS。HDFS目录中存储的多个文件中的数据如下: 第m-00000部分 第m-00001部分 第m-00002部分 第m-00003部分 问题: 我的问题是,在从HDFS目录读取存储的数据时,我们必须读取所有文件(part-m-00000,01,02,03),或者只读取part-m-00000)。因为当我阅读这些数据时,我发现HDFS中的数据有点缺失。 那么,这是真的还是我遗漏了什么?你需要读取所有的文件,而不仅仅是00000。存在多个文件的原因是sqoo

我已将数据从SQl Server导入HDFS。HDFS目录中存储的多个文件中的数据如下:

第m-00000部分
第m-00001部分
第m-00002部分
第m-00003部分

问题: 我的问题是,在从HDFS目录读取存储的数据时,我们必须读取所有文件(
part-m-00000,01,02,03
),或者只读取
part-m-00000
)。因为当我阅读这些数据时,我发现HDFS中的数据有点缺失。
那么,这是真的还是我遗漏了什么?

你需要读取所有的文件,而不仅仅是00000。存在多个文件的原因是sqoop以map-reduce方式工作,将“导入”工作拆分为多个部分。每个部分的输出都放在一个单独的文件中


RL

Sqoop正在运行不带还原器的导入。因此,映射程序处理的零件文件没有合并。因此,根据您在sqoop命令中设置的映射程序数量,您将看到零件文件为
--m4
--num-4
。因此,如果您提供
sqoop import--connect jdbc:mysql://localhost/db --username--table--m1
那么它将只创建一个零件文件。

如果结果很大,则Hive将以块的形式存储结果。如果要使用CLI读取这些文件,请执行下面的命令

$ sudo cat part-m-*
它将给你最终的结果,没有任何遗漏的部分