C# ile yazılmış mapper ve indirici yürütülebilir dosyaları var. Bunları Hadoop akışı ile kullanmak istiyorum.C# ve Mono ile Hadoop akışı: Yanlış kullanılan IdentityMapper
Bu Bu, her haritacının karşılaşılan hatadır
hadoop jar $HADOOP_HOME/contrib/streaming/hadoop-streaming-*.jar
-input "/user/hduser/ss_waits"
-output "/user/hduser/ss_waits-output"
–mapper "mono mapper.exe"
–reducer "mono reducer.exe"
-file "mapper.exe"
-file "reducer.exe"
Ben Hadoop işi oluşturmak için kullanıyorum komut ... ...
java.io.IOException: Type mismatch in key from map: expected org.apache.hadoop.io.Text, recieved org.apache.hadoop.io.LongWritable
at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.collect(MapTask.java:1014)
at org.apache.hadoop.mapred.MapTask$OldOutputCollector.collect(MapTask.java:592)
at org.apache.hadoop.mapred.lib.IdentityMapper.map(IdentityMapper.java:38)
at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:50)
at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:436)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:372)
at org.apache.hadoop.mapred.Child$4.run(Child.java:255)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1121)
at org.apache.hadoop.mapred.Child.main(Child.java:249)
çağırma dayanarak olduğunu yığın, sorun (Java) IdentityMapper sınıfının mapper olarak kullanılmakta olduğu görünmektedir. (Hangi tür uyumsuzluk hatası neden oluştuğunu açıklar). Eşleştirici, "mono mapper.exe" çalıştırılabilir olmalıdır.
mono mapper.exe neden herhangi bir fikir kullanılmıyor?
mapper.exe Reducer.exe sahip aşağıdaki izinleri: -rwxr-xr-x
başarıyla unix komut kabuğu mono mapper.exe yürütmek mümkün ve o metinde okumak zorunda Stdin'den ve stdout'a yaz.
Ortamı:
- Ubuntu Sunucu 12.04 LTS (VM Azure'de üzerinde çalışan)
- Hadoop'un 1.0.4
- Mono 2,10
Önemsiz bir öneri: Eğer birden fazla satır genelinde iş gönderme komutu bölme ediyorsanız, her satırdan (son hariç) sonunda \ yazıyorsun? – Douglas
Ayrıca şunu deneyebilirsiniz: sarma komut dosyasını (http://www.mono-project.com/Guide:Running_Mono_Applications#Shell_Scripts) oluşturun veya grup oluşturun (http://www.mono-project.com/Guide:Running_Mono_Applications#Bundles) –