(veya daha genel hadoop fs -text
) sadece iki varsa mümkün olabilir: Eğer (biraz beyin ölümü olan) SunOS konum göz önüne alındığında bu deneyin 1 GB dosya. 100 dosya için streaming-api kullanırdım, çünkü tam teşekküllü bir mapreduce işine başvurmadan adhoc sorguları için kullanılabilir. Örneğin. java.io.IOException: Stream closed
durumlar almaya önlemek için, tüm giriş okumak zorunda
#!/bin/bash
grep -q $1 && echo $mapreduce_map_input_file
cat >/dev/null # ignore the rest
Not: sizin durumunuzda bir komut dosyası get_filename_for_pattern.sh
oluşturun.
Sonra komutları yerine
hadoop jar $HADOOP_HOME/hadoop-streaming.jar
ait
mapred streaming
çalışması gerekir yeni dağıtımlarda
hadoop jar $HADOOP_HOME/hadoop-streaming.jar\
-Dstream.non.zero.exit.is.failure=false\
-files get_filename_for_pattern.sh\
-numReduceTasks 1\
-mapper "get_filename_for_pattern.sh bcd4bc3e1380a56108f486a4fffbc8dc"\
-reducer "uniq"\
-input /apps/hdmi-technology/b_dps/real-time/*\
-output /tmp/files_matching_bcd4bc3e1380a56108f486a4fffbc8dc
hadoop fs -cat /tmp/files_matching_bcd4bc3e1380a56108f486a4fffbc8dc/*
sorunu. İkinci durumda, kavanozu bulmak için $HADOOP_HOME
'u doğru bir şekilde ayarlamanız gerekir (ya da doğrudan yolu tam olarak sağlayın).
Daha basit sorgular için komut dosyasına bile ihtiyacınız yoktur, ancak doğrudan -mapper
parametresine komut sağlayabilirsiniz. Fakat biraz karmaşık olan bir şey için, bir betiğin kullanılması tercih edilir, çünkü kaçış hakkının elde edilmesi bir angarya olabilir.
Küçültme fazına ihtiyacınız yoksa, sembolik NONE
parametresini ilgili -reduce
seçeneğine verin (veya sadece -numReduceTasks 0
kullanın). Ancak sizin durumunuzda, çıktının tek bir dosyada birleştirilmesini sağlamak için bir azaltma aşamasına sahip olmak yararlıdır.
Grep mi, Sed mi? Hayır? – plast1K
Sorun bununla birlikte, bu tür bash-3'ü yapmaya çalıştığımda onun bir UNIX dosya sistemi değil, bir Hadoop Dosya Sistemi.00 $ cd/uygulamalar/hdmi-technology/b_dps/gerçek zamanlı bash: cd:/apps/hdmi-technology/b_dps/real-time: Böyle bir dosya veya dizin yok “Böyle bir dosya veya dizin almıyorum. Bu yüzden bu sorunla uğraşmanın başka bir yoluna ihtiyacım var. – ferhan