2016-09-29 2 views
2

Почему hadoop не позволяет использовать VIM для редактирования файлов. Я хочу редактировать файлы изменений с помощью редактора, используя командную строку HDFS.Почему hadoop не позволяет использовать VIM для редактирования файлов?

+1

Это не ясно, что вы спрашиваете здесь. Я бы уточнил этот вопрос. –

ответ

2

Файловая система Hadoop-HDFS записывает один раз, читает много файловой системы. Мы не можем редактировать любой файл в HDFS, мы можем при необходимости добавить append. Эта распределенная файловая система предназначена для обработки огромных данных. VIM, vi, nano, gedit и т. Д. Являются файловыми редакторами unix и могут использоваться только для редактирования файлов в файловой системе Unix. HDFS - это в основном виртуальная файловая система, и мы получаем доступ к файловой системе, используя URI HDFS с командами HDFS. Когда мы читаем файл в hdfs location/user/user1, фактический URI является hdfs: // namenode: port/user/user1. Мы не можем использовать обычные команды файловой системы unix для доступа к файловой системе hadoop. У нас есть команды файловой системы hasoop и связанные с ними api для доступа к файловой системе hadoop. Файловая система hadoop хранится на дисках базового Unix-сервера, но имеет отдельные метаданные и блоки, хранящиеся в соответствии с архитектурой HDFS.

Архитектура и формат файловой системы HDFS полностью различаются по сравнению с файловой системой unix. Поскольку система предназначена для обработки огромных данных, параметр редактирования не добавляется, чтобы избежать накладных расходов на редактирование огромных файлов. Если вы читаете о архитектуре HDFS и способах хранения файлов, вы получите четкое представление о том, почему в файлах hdf нет возможности редактировать файлы.

При добавлении чего-то к файлу накладные расходы меньше, так как это не приведет к изменению полного файла и метаданных файла. Но изменение чего-либо в файле - это огромные накладные расходы, поскольку он включает полную модификацию данных, а также связанные метаданные.

1

вы можете скопировать this 5 line script и их использовать

hvim <your filename> 

И код сценария:

hadoop fs -text $1>hvim.txt 
vim hvim.txt 
hadoop fs -rm -skipTrash $1 
hadoop fs -copyFromLocal hvim.txt $1 
rm hvim.txt 
Смежные вопросы