我在这里有一个很大的困惑。当我们在 HADOOP HDFS 上传/插入/放入数据时,我们知道数据是根据块大小存储在块中的。和复制因子。此外,Map reduce仅在处理数据时有效。
当我在我的一个表格中插入任何数据时,我正在使用MRV2我可以看到MAP REDUCE进度条。这里的确切图片是什么。实际上插入时有一个映射器和缩减器/将数据上传到HDFS?
答案 0 :(得分:1)
MapReduce的需要取决于Write操作的类型。
在将数据从LocalFS写入HDFS时,hdfs dfs -put
或-copyFromLocal
等操作不使用MapReduce。而DistCp
,用于执行帧间/帧内集群HDFS数据复制,使用Mappers。同样,Sqoop
使用映射器将数据导入HDFS。 Hive的LOAD
声明不会在INSERT
时发生。
他们只是Mapper MapReduce的工作。
当我在我的一个表格中插入任何数据时,我正在使用MRV2
我假设您正在将数据插入Hive表中。 Hive中的INSERT
语句使用Mappers。
插入/上传时是否涉及映射器和缩减器 数据到HDFS?
并非总是如此。基于写操作,参与了映射器。
答案 1 :(得分:0)
HDFS客户端在查询了块位置的namenode后直接写入datanode。不需要映射器或减速器。
参考:Architecture of HDFS Read and Write
因为有进度条,并不意味着它是MapReduce进程。
如果写入HDFS的每个文件都是MapReduce进程,那么YARN ResourceManager UI会记录所有文件,所以如果你不相信我,请检查
答案 2 :(得分:0)
从本地复制数据或在HDFS中放入数据时不使用MapReduce。