都内で働くSEの技術的なひとりごと / Technical soliloquy of System Engineer working in Tokyo

都内でサラリーマンやってます。SQL Server を中心とした (2023年からは Azure も。) マイクロソフト系(たまに、OSS系などマイクロソフト以外の技術も...)の技術的なことについて書いています。日々の仕事の中で、気になったことを技術要素関係なく気まぐれに選んでいるので記事内容は開発言語、インフラ等ばらばらです。なお、当ブログで発信、発言は私個人のものであり、所属する組織、企業、団体等とは何のかかわりもございません。ブログの内容もきちんと検証して使用してください。英語の勉強のため、英語の

HDInsightのHDFSからデータ取得

MapReduceした結果は、HDFSに格納されます。取り出すのは非常に簡単です。ソースコードは下記の通りです。

 

using Microsoft.Hadoop.MapReduce;
using System;

namespace test
{
    class Program
    {
        static void Main(string[] args)
        {
            //Hadoopに接続する。
            var hadoop = Hadoop.Connect();
            //ファイルを取得する。
            var files = hadoop.StorageSystem.LsFiles(@"/user/koo/output/LogFiles");
            //MapReduceした結果ファイルを取得する。
            var filepath = files[1];
            //ファイルからデータを取得する。
            var lines = hadoop.StorageSystem.ReadAllLines(filepath);
            //あとは、取得した結果からHive、SQL Server等にデータを書き込む。
        }
    }
}

ちょっと手抜きな感じですが、上記のコードでHDFSからデータを取り出すことが可能です。