c# - 您如何从 .NET 对 Thrift HBase 进行身份验证?

标签 c# .net hbase thrift

我们有一个使用 Thrift 与 HBase 通信的 .NET 应用程序。 Thrift 服务器配置为通过身份验证 (Kerberos)。我们有一个 key 表。

我们如何从 .NET 应用程序实现身份验证?我见过的所有示例都是用 Java 编写的。有人从 .NET 做过吗?

最佳答案

有一个使用标准thrift Protocol的RPC框架叫做“thrifty”,它和使用thrift IDL定义服务是一样的效果,即thrify可以兼容使用thrift IDL的代码,所以它是跨平台的。

你可以使用它的客户端

[ThriftStruct]
public class LogEntry
{

    [ThriftConstructor]
    public LogEntry([ThriftField(1)]String category, [ThriftField(2)]String message)
    {
        this.Category = category;
        this.Message = message;
    }

    [ThriftField(1)]
    public String Category { get; }

    [ThriftField(2)]
    public String Message { get; }
}

ThriftSerializer s = new ThriftSerializer(ThriftSerializer.SerializeProtocol.Binary);
byte[] s = s.Serialize<LogEntry>();

s.Deserialize<LogEntry>(s);



[ThriftService("scribe")]
public interface IScribe
{
    [ThriftMethod("getMessages")]
    List<LogEntry> GetMessages();

    [ThriftMethod]
    ResultCode Log(List<LogEntry> messages);
}

public class Scribe : IScribe
{
    public List<LogEntry> GetMessages()
    {
        return new List<LogEntry>
        {
            new LogEntry { Category = "c1", Message = Guid.NewGuid().ToString() },
            new LogEntry { Category = "c2", Message = Guid.NewGuid().ToString() },
            new LogEntry { Category = "c3", Message = Guid.NewGuid().ToString() }
        };
    }

    public ResultCode Log(List<LogEntry> messages)
    {
        return ResultCode.TRY_LATER;
    }
}

你可以试试:https://github.com/endink/Thrifty

关于c# - 您如何从 .NET 对 Thrift HBase 进行身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34304979/

相关文章:

hadoop - Hive/Impala 选择并平均所有行键版本

c# - 单击 WPF richtextbox 中的 TextBlock

c# - 如何从 C# 代码或在运行 IIS 的服务器上使用 Powershell 生成 IIS7 CSR(用于 SSL)

c# - 如何将文件的缩略图提取到 .NET 中的图像文件中?

c# - 将 C# 锯齿状数组转换为数组并再次返回

.net - 委托(delegate)和回调是否相同或相似?

c# - asp.net 中的动态调查表

c# - Xamarin.Forms 设置 IsVisible 在函数完成之前不会触发。

java - 是否可以/支持使用 Java 进行 Impala 查询?

hadoop - 如何建立Hbase的RegionServer来掌握