我有一个“Windows上的Hadoop”群集,其中blob存储(log-container
位于logfstore
)作为默认存储配置(输入和输出从那里读取和写入)。
我正在使用MapReduce SDK在C#中编写和管理mapper和reducer。
如何从C#代码中访问blob存储上的其他文件?
File.ReadAllLines(@"/log100by10/Input/filelist_short.txt");
结果:找不到路径'c:\ log100by10 \ Input \ filelist_short.txt'的一部分 例外
File.ReadAllLines(@"log100by10/Input/filelist_short.txt");
结果:找不到路径'c:\ apps \ temp \ hdfs \ nm-local-dir \ usercache \ admin \ appcache \ application_1453123456785_0006 \ container_1453123456785_0006_01_000002 \ log100by10 \ Input \ filelist_short.txt'
File.ReadAllLines(@"wasb://log100by10/Input/filelist_short.txt");
结果:不支持给定路径的格式
File.ReadAllLines(@"wasb://log-container@logfstore/log100by10/Input/filelist_short.txt");
结果:不支持给定路径的格式
using System;
using System.Collections.Generic;
using System.IO;
using Microsoft.Hadoop.MapReduce;
namespace AzureTest.MultiTest
{
class MultiTestMapper : MapperBase
{
public override void Map(string inputLine, MapperContext context)
{
string path = @"/log100by10/Input/filelist_short.txt";
try
{
string[] text = File.ReadAllLines(path);
context.EmitKeyValue("****input ",text[0]);
}
catch(Exception ex)
{
context.EmitKeyValue("****error ", ex.Message);
}
}
}
}