如何从c#mapper访问hdinsight blob存储?

nfzehxib  于 2021-05-29  发布在  Hadoop
关注(0)|答案(0)|浏览(216)

我有一个带有blob存储的“hadoop on windows”集群( log-containerlogfstore )作为默认存储配置(输入和输出从那里读写)。
我使用mapreducesdk在c#中编写和管理mapper和reducer。
如何从c代码中访问blob存储上的其他文件?

我尝试了以下方法: File.ReadAllLines(@"/log100by10/Input/filelist_short.txt"); 结果:找不到路径“c:\log100by10\input\filelist\u short.txt”的一部分异常 File.ReadAllLines(@"log100by10/Input/filelist_short.txt"); 结果:找不到路径“c:\apps\temp\hdfs\nm local dir\usercache\admin\appcache\application\u 1453123456785\u 0006\container\u 1453123456785\u 0006\u 01\u000002\log100by10\input\filelist\u short.txt”的一部分 File.ReadAllLines(@"wasb://log100by10/Input/filelist_short.txt"); 结果:不支持给定路径的格式 File.ReadAllLines(@"wasb://log-container@logfstore/log100by10/Input/filelist_short.txt"); 结果:不支持给定路径的格式

整个Map器看起来像:

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);
            }
        }
    }
}

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题