Я скопировал файл 10Gig из локальной файловой системы в hdfs (с помощью -copyFromLocal), распределен ли он между всеми данными datanodes или это только на namenode? как я могу быть уверен, что он был распространен на всех datanodes?делает hasoop распространять файл copyFromLocal
ответ
Как известно, метаданные файла хранятся в Namenode, и фактические данные хранятся в Datanodes кластера.
Если вы переместили файл 10 Gig, тогда определенные метаданные этого файла будут сохранены в Namenode, и данные будут храниться в Datanodes. Но размер вашего файла намного больше размера блока (обычно 64 МБ или 128 МБ), тогда данные файла будут определенно сохранены во многих блоках разных Datanodes (из-за коэффициента репликации) кластера.
Только Namenode знает данные о местоположении данных в кластере.
Всякий раз, когда файл копируется в HDFS, он будет распределяться среди подчиненных узлов. В зависимости от размера файла он может распространяться на несколько или несколько datanodes. вы можете проверить распределение своего файла с помощью команд «fsck». Используйте команду ниже, чтобы проверить параметры распределения файлов.
$ hdfs fsck <absolute path to your file on hdfs>
Да, copyFromLocal
операция распределит chuncks ваших входных данных по скоплению вместе с тиражируемых копий. Любая операция, посредством которой вы записываете содержимое в HDFS, будет распространять данные по кластеру.
По каким-либо причинам служба Namenode не будет хранить данные, поскольку она только готовит узлы списка данных, доступные для хранения данных в каждом кластере, когда любой клиент, включая hadoop -copyFromLocal
, пытается записать данные. После того, как клиент получает список узлов данных из namenode, клиент берет на себя обработку данных данных в узлах данных вместе с репликацией.
Анатомия файла Напишите из раздела 3 руководства Hadoop Definitive Guide, который поможет вам ясно понять этот сценарий.
В любом случае вы можете очень хорошо проверить, как ломти/были распределены по кластеру, используя следующую команду блоков данных,
hadoop fsck <hdfs_file_path> -files -blocks -locations
Эта команда даст вам знать размер файла, количество блоков, реплицированные блоки, поврежденные блоки, отсутствующие блоки. Кроме того, он будет показывать более подробную информацию о каждом блоке, включая места, где хранятся блоки, и состояние здоровья блоков.
- 1. Делает hasoop create InputSplits parallly
- 2. Hadoop -copyFromLocal не удается найти файл
- 3. Ошибка: -copyFromLocal: java.net.UnknownHostException
- 4. Hadoop ошибка Dfs -copyFromLocal
- 5. copyFromLocal: неожиданный URISyntaxException
- 6. hadoop dfs -copyFromLocal src dest
- 7. «Hadoop фс -copyFromLocal» не работает
- 8. hasoop fair scheduler открыть файл ошибки?
- 9. Делает ли hasoop кеш hdfs-блоком для нелокальных карт?
- 10. hasoop компиляция
- 11. Выясните, hasoop vendor
- 12. hasoop, map/уменьшить выходной файл (part-00000) и распределенный кеш
- 13. copyFromLocal error in pig grunt shell
- 14. HDFS -copyFromLocal DataNode DFS отказывающиеся соединение
- 15. Не удается распространять файл AdHoc ipa
- 16. Вы можете использовать RPM распространять * .bin файл
- 17. Как распространять файл .d.ts в пакете npm
- 18. Как распространять файл ios .framework через cocoapods?
- 19. Как распространять GIF-файл с activityVIew
- 20. Насколько большой размер слишком большой для файла DistributedCache hasoop?
- 21. hasoop mapreduce job is not
- 22. В чем разница между -copyFromLocal и -put
- 23. Из выпуска памяти для Hadoop copyFromLocal
- 24. как copyToLocal и copyFromLocal работы под капотом
- 25. Hadoop: Ошибка во время операции -copyFromLocal
- 26. Основы узлов Datastax hasoop
- 27. hasoop multiple kms configuration
- 28. hasoop mapreduce processing
- 29. hasoop необходимо использовать Giraph
- 30. hasoop flume log4j configuration