Сколько датододов использовалось для отображения нескольких небольших файлов за одно задание hadoop? - PullRequest
0 голосов
/ 15 декабря 2018

У меня есть один NameNode (Hadoop-Master) и три DataNode (Hadoop-Master, Hadoop-Slave1, Hadoop-Slave2).Hadoop-Master используется как для NameNode, так и для DataNode.ОС Ubuntu 16.04.Версия Hadoop - 2.7.6.Размер блока составляет 128 МБ.HDFS настроен с двумя репликациями.У меня есть десять файлов в HDFS (/file1,/file2,.../file10), каждый по 127 МБ, поэтому каждый файл только в одном блоке.Эти файлы распространяются в трех датоде. Но я не знаю, почему все файлы имеют репликацию в Hadoop-Master (как DataNode) .Два других узла данных (Hadoop-Slave1 и Hadoop-Slave2) имеют различную репликацию файлов.Я пишу программу Java MapReduce для обработки всех десяти файлов.Используя следующие коды, чтобы добавить все файлы для работы:

FileInputFormat.addInputPath( job , new Path("/file1"));
FileInputFormat.addInputPath( job , new Path("/file2"));
... ...
FileInputFormat.addInputPath( job , new Path("/file10"));

После того, как работа завершена, я читаю журнал консоли.Похоже, только Hadoop-Master выполняет всю работу по картографированию и восстановлению.Два других датодода не отображаются в журнале консоли.Я на самом деле хочу, чтобы все DataNode обрабатывали эти файлы параллельно.Например, файл процесса Hadoop-Master1 ~ file4, файл процесса Hadoop-Slave15 ~ file7 и файл процесса Hadoop-Slave28 ~ file10.Что я должен сделать, чтобы все DataNode обрабатывали задание.

...