Как настроить пути ввода-вывода HDInsight, чтобы они указывали на хранилище хранилищ Azure (ASV) в эмуляторе локального хранилища?
Я пытаюсь создать простое задание карты / редуктора для hdinsight, но у меня возникают проблемы с подключением задания в локальном кластере Hadinsight Hadoop к эмулятору локального хранилища Azure через ASV://
Пример кода такой:
var hadoop = Hadoop.Connect();
HadoopJobConfiguration config = new HadoopJobConfiguration();
config.InputPath = @"asv://127.0.0.1:10000/devstoreaccount1/testcontainer/input";
config.OutputFolder = "asv://127.0.0.1:10000/devstoreaccount1/testcontainer/output";
hadoop.MapReduceJob.Execute<Mapper1>(config);
или же
var hadoop = Hadoop.Connect();
HadoopJobConfiguration config = new HadoopJobConfiguration();
config.InputPath = @"asv://testcontainer/input";
config.OutputFolder = "asv://testcontainer/output";
hadoop.MapReduceJob.Execute<Mapper1>(config);
где testcontainer - это существующий контейнер в локальном хранилище BLOB- объектов эмулятора. При запуске этого кода я получаю исключение StreamingException "Процесс не выполнен (" Потоковое задание не выполнено! ")"
И увидеть следующую ошибку в выводе консоли:
packageJobJar: [] [/C:/Hadoop/hadoop-1.1.0-SNAPSHOT/lib/hadoop-streaming.jar] C: \Users\user1\AppData\Local\Temp\1\streamjob6525516867576872971.jar tmpDir=null
13/08/26 12:30:51 INFO util.NativeCodeLoader: Loaded the native-hadoop library
13/08/26 12:30:51 WARN snappy.LoadSnappy: Snappy native library not loaded
13/08/26 12:30:51 INFO mapred.JobClient: Cleaning up the staging area hdfs://loc alhost:8020/hadoop/hdfs/tmp/mapred/staging/user1/.staging/job_201308221229_0010
13/08/26 12:30:51 ERROR security.UserGroupInformation: PriviledgedActionExceptio n as:user1 cause:org.apache.hadoop.mapred.InvalidInputException: Input path does not exist: hdfs:/devstoreaccount1/testcontainer/input
13/08/26 12:30:51 ERROR streaming.StreamJob: Error Launching job : Input path do es not exist: hdfs:/devstoreaccount1/testcontainer/input
Streaming Command Failed!
Есть намеки?
1 ответ
Вы можете использовать один из следующих путей для доступа к эмулятору локального хранилища.
wasb: // testcontainer @ storageemulator / вход
wasb:///input (когда эмулятор хранилища установлен в качестве файловой системы по умолчанию)
asv: /// input (когда эмулятор хранилища задан как файловая система по умолчанию, asv устарел, не рекомендуется)