最近,Exploring Microsoft HDInsight Hadoop for Windows。但是不知道从哪里开始,开始使用 apache hadoop with c# / asp.net mvc。
我知道http://hadoopsdk.codeplex.com/是最好的可用资源,但找不到从头开始的文档?比如创建集群、数据库,然后将其连接到 C# 应用程序。
最近,Exploring Microsoft HDInsight Hadoop for Windows。但是不知道从哪里开始,开始使用 apache hadoop with c# / asp.net mvc。
我知道http://hadoopsdk.codeplex.com/是最好的可用资源,但找不到从头开始的文档?比如创建集群、数据库,然后将其连接到 C# 应用程序。
最简单的入门方法是使用Azure 上的 HDInsight 服务(仍处于预览阶段,但运行良好)。这样,您只需登录您的 azure 门户并启动一个集群,该集群将链接到您的 azure 存储。
如果实在不想上云,那么可以通过web平台安装器下载HDInsight开发者预览包,会创建一个单节点本地集群。或者,如果您对“just hadoop”感兴趣,那么您可以尝试使用 Hortonworks 或 Cloudera 提供的 VM。
之后,如果您熟悉 SQL,则可能值得从 Hive 开始。O'Reilly Definitive Guide to Hadoop在这方面做得很好。
从 .NET 的角度来看,codeplex 上的hadoopsdk是一个很好的起点。
就非常基本的连接示例而言,请尝试此博客作为示例,但请注意 HDInsight 的连接略有不同,现在它都使用 Templeton 接口,所以这会让你开始:
var db = new HiveConnection(
webHCatUri: new Uri("http://localhost:50111"),
userName: (string) "hadoop", password: (string) null);
var result = db.ExecuteHiveQuery("select * from w3c");
如果您希望在 HDInsight 上全面了解 MapReduce,那么您可能需要查看 C# MapReduce 示例以及 codeplex 上的 sdk。
请注意,默认的 HDInsight 安装还附带了一些很好的示例,其中包括一些可供使用的数据以及一些 powershell 脚本和 .NET 代码以帮助您入门。
享受!
从 HDInsight 团队查看https://github.com/hdinsight/hbase-sdk-for-net
微软于 6 月在Nuget.org 上发布了他们用于 Phoenix/Hbase 的 .NET ProtoBuf 客户端的预览版。我发现它运行良好,但 API 对我来说并不熟悉。据我了解,我围绕它实现了一个 .NET Framework System.Data IDbConnection、IDbCommand 等包装 API,名为 Garuda.Data。它使从 .NET 代码访问 Phoenix/Hbase 感觉就像 SQL Server 的 SqlConnection、SqlCommand 等 - 看看:https ://www.nuget.org/packages/Garuda.Data/
这是 github 项目仓库:https ://github.com/dwdii/GarudaUtil
还有一些示例代码:
using (IDbConnection phConn = new PhoenixConnection())
{
phConn.ConnectionString = cmdLine.ConnectionString;
phConn.Open();
using (IDbCommand cmd = phConn.CreateCommand())
{
cmd.CommandText = "SELECT * FROM GARUDATEST";
using (IDataReader reader = cmd.ExecuteReader())
{
while(reader.Read())
{
for(int i = 0; i < reader.FieldCount; i++)
{
Console.WriteLine(string.Format("{0}: {1}", reader.GetName(i), reader.GetValue(i)));
}
}
}
}
}