protected void 获取表_Click(object sender, EventArgs e) { TTransport transport = null; try { //192.168.2.111:60010 //实例化Socket连接 transport = new TSocket("192.168.2.111", 9090); //实例化一个协议对象 TProtocol tProtocol = new TBinaryProtocol(transport); //实例化一个Hbase的Client对象 var client = new Hbase.Client(tProtocol); //打开连接 transport.Open(); 当前所有表(client); } catch (Exception ex) { ; lab创建表信息状态.Text += ex; } finally { if (transport != null) { transport.Close(); } } }
protected void HBaseMutateImage(string rowKey, byte[] image) { var socket = new TSocket("172.24.2.144", 9090); var transport = new TBufferedTransport(socket); var protocol = new TBinaryProtocol(transport); Hbase.Client hc = new Hbase.Client(protocol); transport.Open(); //List<byte[]> tableNames = hc.getTableNames(); byte[] table = Encoding.UTF8.GetBytes("FiservImages"); byte[] row = Encoding.UTF8.GetBytes(rowKey); byte[] column = Encoding.UTF8.GetBytes("ImageData:Image"); List <Mutation> mutation = new List <Mutation>(); Mutation m = new Mutation(); m.Column = column; m.Value = image; m.IsDelete = false; m.WriteToWAL = true; mutation.Add(m); hc.mutateRow(table, row, mutation, null); }
/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void 测试联接是否成功_Click(object sender, EventArgs e) { TTransport transport = null; try { //192.168.2.111:60010 //实例化Socket连接 transport = new TSocket("192.168.2.111", 9090); //实例化一个协议对象 TProtocol tProtocol = new TBinaryProtocol(transport); //实例化一个Hbase的Client对象 var client = new Hbase.Client(tProtocol); //打开连接 transport.Open(); Label1.Text = " 联接成功.."; } catch (Exception ex) { Label1.Text = "联接失败.."; Label1.Text += ex; } finally { if (transport != null) { transport.Close(); } } }
static void _Sets_hbase(string baseName, string columnFamily, DateTime transaction_date, List <global::BatchMutation> data) { var socket = null as TSocket; var transport = null as TBufferedTransport; try { // Сделаем вычисление апи хоста по базе данных socket = new TSocket(getHost(baseName, columnFamily), Port); transport = new TBufferedTransport(socket); var proto = new TBinaryProtocol(transport); var hbase = new Hbase.Client(proto); var tableName = getBaseTableHbase(baseName, columnFamily); transport.Open(); if (data.Count == 1) { hbase.mutateRowTs(tableName, data.First().Row, data.First().Mutations, transaction_date.Ticks, null); } else { hbase.mutateRowsTs(tableName, data, transaction_date.Ticks, null); } } finally { if (transport != null) { transport.Close(); transport = null; } } }
static void Main(string[] args) { // Connection var socket = new TSocket("hdp1.localdomain", 9090); var transport = new TBufferedTransport(socket); var protocol = new TBinaryProtocol(transport); Hbase.Client hba = new Hbase.Client(protocol); transport.Open(); // Get table names Console.WriteLine("<-GET LIST OF TABLES->"); var tableNames = hba.getTableNames(); foreach (var tableName in tableNames) { Console.WriteLine(Encoding.UTF8.GetString(tableName, 0, tableName.Length)); } // Insert rows Console.WriteLine("<-INSERT->"); Mutation _mutation = new Mutation(); _mutation.IsDelete = false; _mutation.Column = Encoding.UTF8.GetBytes("image:bodyimage"); _mutation.Value = Encoding.UTF8.GetBytes("newnew image 2.jpg"); hba.mutateRow(Encoding.UTF8.GetBytes("blogposts"), Encoding.UTF8.GetBytes("post1"), new List <Mutation> { _mutation }, null); // Finished Console.WriteLine("<-FINISHED->"); Console.ReadKey(); }
public string TestConnection(string IPAddress, int Port) { TTransport transport = null; try { //192.168.2.111:60010 //实例化Socket连接 transport = new TSocket(IPAddress, Port); //实例化一个协议对象 TProtocol tProtocol = new TBinaryProtocol(transport); //实例化一个Hbase的Client对象 var client = new Hbase.Client(tProtocol); //打开连接 transport.Open(); return("联接成功.."); } catch (Exception ex) { return("联接失败.." + ":" + ex.ToString()); } finally { if (transport != null) { transport.Close(); } } }
public void 显示示例数据(string tabname, string keyv, Hbase.Client client) { //遍历结果集 List <string> sss = new List <string>(); var id = client.scannerOpenWithScan(Encoding.UTF8.GetBytes(tabname), new TScan(), new Dictionary <byte[], byte[]>()); List <TRowResult> reslut; //使用key获取值 //reslut = client.getRow(Encoding.UTF8.GetBytes(tabname), Encoding.UTF8.GetBytes(keyv), null); reslut = client.scannerGet(id); foreach (var key in reslut) { sss.Add(string.Format(" RowKey:\n{0}", Encoding.UTF8.GetString(key.Row))); //打印Qualifier和对应的Value foreach (var k in key.Columns) { sss.Add(string.Format(" 列名:" + "\n" + Encoding.UTF8.GetString(k.Key))); sss.Add(string.Format(" 值:" + Encoding.UTF8.GetString(k.Value.Value))); } } gri创建数据表示例数据.DataSource = sss; gri创建数据表示例数据.DataBind(); }
public void GetHBaseImage(string rowKey = "20150822180801118") { var socket = new TSocket(hbaseThrif, hbaseThrifPort); var transport = new TBufferedTransport(socket); var protocol = new TBinaryProtocol(transport); Hbase.Client hbaseClient = new Hbase.Client(protocol); transport.Open(); //List<byte[]> tableNames = hc.getTableNames(); byte[] table = Encoding.UTF8.GetBytes("FiservImages"); byte[] row = Encoding.UTF8.GetBytes(rowKey); byte[] column = Encoding.UTF8.GetBytes("ImageData:Image"); List<TRowResult> results = hbaseClient.getRow(table, row, null); TCell t = new TCell(); //t. foreach (TRowResult result in results) { //result.Columns[column] //result.Columns; Dictionary<byte[], TCell> konj; konj = result.Columns; //string s = Encoding.UTF8.GetString(result.Columns[column].Value); foreach (KeyValuePair<byte[], TCell> singleRow in konj) { //File.WriteAllBytes(@"c:\test\output.docx", singleRow.Value.Value); OpenFile(singleRow.Value.Value, "output.docx"); } } }
void 测试多个联接(int num) { TTransport transport = null; for (int i = 0; i < num; i++) { try { //192.168.2.111:60010 //实例化Socket连接 transport = new TSocket("192.168.2.111", 9090); //实例化一个协议对象 TProtocol tProtocol = new TBinaryProtocol(transport); //实例化一个Hbase的Client对象 var client = new Hbase.Client(tProtocol); //打开连接 transport.Open(); //添加到集合 conns.Add(i, transport); //Label1.Text = " 联接成功.."; } catch (Exception ex) { // Label1.Text = "联接失败.."; //Label1.Text += ex; } finally { // if (transport != null) { transport.Close(); } } } }
/// <summary> /// 删除表 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void 除表_Click(object sender, EventArgs e) { TTransport transport = null; try { //192.168.2.111:60010 //实例化Socket连接 transport = new TSocket("192.168.2.111", 9090); //实例化一个协议对象 TProtocol tProtocol = new TBinaryProtocol(transport); //实例化一个Hbase的Client对象 var client = new Hbase.Client(tProtocol); //打开连接 transport.Open(); client.deleteTable(txt表名.Text.ToUTF8Bytes()); lab创建表信息状态.Text = " 删除成功.."; } catch (Exception ex) { lab创建表信息状态.Text = "删除表失败"; lab创建表信息状态.Text += ex; } finally { if (transport != null) { transport.Close(); } } }
/// <summary> /// 数据库表名,及指定key的示例 /// </summary> /// <param name="tabname"></param> /// <param name="key"></param> public void 当前创建表示例(string tabname, Hbase.Client client) { string key = "示例数据_Key"; var list = new List <Mutation>(); foreach (var item in txt列名集合.Text.Split(',')) { //创建列 if (!string.IsNullOrEmpty(item)) { string coln = item; if (!coln.Contains(":")) { coln = item + ":" + "示例"; } var col = new Mutation() { Column = coln.ToUTF8Bytes(), Value = ("abcdef" + item).ToUTF8Bytes() }; list.Add(col); } } client.mutateRow(tabname.ToUTF8Bytes(), key.ToUTF8Bytes(), list, new Dictionary <byte[], byte[]>()); //显示示例数据 显示示例数据(tabname, key, client); }
/// <summary> /// 读取Hbase数据 /// </summary> /// <param name="tempList"></param> /// <param name="IPAddress"></param> /// <param name="Port"></param> /// <param name="strTableName"></param> /// <returns></returns> public static Dictionary <string, string> ReadKeyHbaseData(List <string> tempList, string IPAddress, int Port, string strTableName) { Dictionary <string, string> dis = new Dictionary <string, string>(); try { int count = 0; if (transport == null) { transport = new TSocket(IPAddress, Port); } //实例化一个协议对象 TProtocol tProtocol = new TBinaryProtocol(transport); //实例化一个Hbase的Client对象 var client = new Hbase.Client(tProtocol); //打开连接 transport.Open(); foreach (var temp in tempList) { //根据表名,RowKey名来获取结果集 var reslut = client.getRow(Encoding.UTF8.GetBytes(strTableName), Encoding.UTF8.GetBytes(temp), null); foreach (var keys in reslut) { foreach (var k in keys.Columns) { if (dis.ContainsKey(Encoding.UTF8.GetString(keys.Row))) { continue; } dis.Add(Encoding.UTF8.GetString(keys.Row), Encoding.UTF8.GetString(k.Value.Value)); ++count; //LoggerManager.Create().InfoWrite(string.Format("已下载{0}条记录", ++count)); if (count % 1000 != 0) { continue; } LoggerManager.Create().InfoWrite(string.Format("已下载指定RowKey{0}条", count)); } } } LoggerManager.Create().InfoWrite(string.Format("Hbases下载指定数据成功,共下载数据{0}条", count)); } catch (Exception ex) { LoggerManager.Create().ErrorWrite(string.Format("Hbase读取指定数据失败,错误信息:{0}", ex.Message)); } finally { if (transport != null) { transport.Close(); } } return(dis); }
public AbstractHBaseThriftService(string host, int port) { this.host = host; this.port = port; transport = new TSocket(host, port); TProtocol protocol = new TBinaryProtocol(transport, true, true); client = new Hbase.Client(protocol); }
private Tuple <TTransport, Hbase.Client> GenerateAgent() { var transport = new TSocket(this.Server, this.Port, this.Timeout); var protocol = new TBinaryProtocol(transport); var client = new Hbase.Client(protocol); transport.Open(); return(new Tuple <TTransport, Hbase.Client>(transport, client)); }
/// <summary> /// 删除单元格数据 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Button5_Click(object sender, EventArgs e) { string table = "abc"; string key = "aaaK"; TTransport transport = null; try { //192.168.2.111:60010 //实例化Socket连接 transport = new TSocket("192.168.2.111", 9090); //实例化一个协议对象 TProtocol tProtocol = new TBinaryProtocol(transport); //实例化一个Hbase的Client对象 var client = new Hbase.Client(tProtocol); //打开连接 transport.Open(); foreach (var item in System.Linq.Enumerable.Range(1, 10)) { string skey = (key + "_" + item); string scol = ("你好中文:" + item); string svla = (Guid.NewGuid().ToString()); ///////////////删除单元格数据 byte[] tableName = table.ToUTF8Bytes(); byte[] row = skey.ToUTF8Bytes(); Dictionary <byte[], byte[]> encodedAttributes = new Dictionary <byte[], byte[]>(); client.mutateRow(tableName, row, new List <Mutation>() { new Mutation() { IsDelete = true, Column = scol.ToUTF8Bytes() } }, encodedAttributes); Response.Write(string.Format("删除单元格数据:{0},数据{{ RowKey:{1},列:{2} }}<br/>", table, skey, scol)); } } finally { if (transport != null) { transport.Close(); } } }
public static bool DeleteHbaseData(List <string> tempList, string IPAddress, int Port, string strTableName) { Dictionary <string, string> dis = new Dictionary <string, string>(); try { int count = 0; if (transport == null) { transport = new TSocket(IPAddress, Port); } //实例化一个协议对象 TProtocol tProtocol = new TBinaryProtocol(transport); //实例化一个Hbase的Client对象 var client = new Hbase.Client(tProtocol); //打开连接 transport.Open(); byte[] tableName = strTableName.ToUTF8Bytes(); foreach (var temp in tempList) { byte[] row = temp.ToUTF8Bytes(); Dictionary <byte[], byte[]> encodedAttributes = new Dictionary <byte[], byte[]>(); client.deleteAllRow(tableName, row, encodedAttributes); ++count; if (count % 1000 != 0) { continue; } LoggerManager.Create().InfoWrite(string.Format("已删除指定RowKey{0}条", count)); //LoggerManager.Create().InfoWrite(string.Format("已删除{0}条记录", ++count)); } LoggerManager.Create().InfoWrite(string.Format("Hbases删除指定数据成功,共删除数据{0}条", count)); return(true); } catch (Exception ex) { LoggerManager.Create().ErrorWrite(string.Format("Hbases删除指定数据失败,错误信息:{0}", ex.Message)); return(false); } finally { if (transport != null) { transport.Close(); } } }
/// <summary> /// 添加数据 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Button3_Click(object sender, EventArgs e) { string table = "abc"; string key = "aaaK"; TTransport transport = null; try { //192.168.2.111:60010 //实例化Socket连接 transport = new TSocket("192.168.2.111", 9090); //实例化一个协议对象 TProtocol tProtocol = new TBinaryProtocol(transport); //实例化一个Hbase的Client对象 var client = new Hbase.Client(tProtocol); //打开连接 transport.Open(); foreach (var item in System.Linq.Enumerable.Range(1, 10)) { string skey = (key + "_" + item); string scol = ("你好中文:" + item); string scol2 = ("你好中文:单元格2" + item); string svla = (Guid.NewGuid().ToString()); client.mutateRow("abc".ToUTF8Bytes(), skey.ToUTF8Bytes(), new List <Mutation>() { new Mutation() { Column = scol.ToUTF8Bytes(), Value = svla.ToUTF8Bytes() }, new Mutation() { Column = scol2.ToUTF8Bytes(), Value = svla.ToUTF8Bytes() } }, new Dictionary <byte[], byte[]>()); Response.Write(string.Format("添加tab:{0},数据{{ RowKey:{1} ,列{2},数据{3},列{4},数据{5} }}<br/>", table, skey, scol, svla, scol2, svla)); } } finally { if (transport != null) { transport.Close(); } } }
public static void Insert(FuncionarioModel model) { try { var socket = new TSocket(host, port); var transport = new TBufferedTransport(socket); var proto = new TBinaryProtocol(transport); _hbase = new Hbase.Client(proto); transport.Open(); _hbase.mutateRows(table_name, new List <BatchMutation>() { new BatchMutation() { Row = Encoding.UTF8.GetBytes(model.GetRowKey()), Mutations = new List <Mutation> { new Mutation { Column = Encoding.UTF8.GetBytes("fc:ano"), IsDelete = false, Value = Encoding.UTF8.GetBytes(model.Ano.ToString()) }, new Mutation { Column = Encoding.UTF8.GetBytes("fc:mes"), IsDelete = false, Value = Encoding.UTF8.GetBytes(model.Mes.ToString()) }, new Mutation { Column = Encoding.UTF8.GetBytes("fc:cpf"), IsDelete = false, Value = Encoding.UTF8.GetBytes(model.Cpf.ToString()) }, new Mutation { Column = Encoding.UTF8.GetBytes("fc:nome"), IsDelete = false, Value = Encoding.UTF8.GetBytes(model.Nome.ToString()) }, new Mutation { Column = Encoding.UTF8.GetBytes("fc:salario"), IsDelete = false, Value = Encoding.UTF8.GetBytes(model.Salario.ToString()) }, new Mutation { Column = Encoding.UTF8.GetBytes("fc:jetons"), IsDelete = false, Value = Encoding.UTF8.GetBytes(model.Jetons.ToString()) } } } }); transport.Close(); } catch (Exception) { throw; } }
internal ThriftClient(IHBaseConfiguration configuration) { Configuration = configuration; _thriftSocket = new TSocket(Configuration.ThriftHost, Configuration.ThriftPort); _thriftTransport = new TBufferedTransport(_thriftSocket); _thriftProtocol = new TBinaryProtocol(_thriftTransport); var thriftClient = new Hbase.Client(_thriftProtocol); _thriftTransport.Open(); _connection = thriftClient; _timestamp = DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalSeconds + (Configuration.ThriftTimeout ?? DEFAULT_TIMEOUT); }
public static ListModel List() { try { var list = new ListModel(); list.Funcionarios = new List <FuncionarioModel>(); var socket = new TSocket(host, port); var transport = new TBufferedTransport(socket); var proto = new TBinaryProtocol(transport); _hbase = new Hbase.Client(proto); transport.Open(); //Conectado var scanner = _hbase.scannerOpen(table_name, Guid.Empty.ToByteArray(), new List <byte[]>() { Family }); for (var entry = _hbase.scannerGet(scanner); entry.Count > 0; entry = _hbase.scannerGet(scanner)) { foreach (var rowResult in entry) { var funcionario = new FuncionarioModel(); funcionario.Key = Encoding.UTF8.GetString(rowResult.Row); var res = rowResult.Columns.Select(c => BitConverter.ToInt32(c.Value.Value, 0)); //foreach (var cell in res) //{ // Console.WriteLine("{0}", cell); //} list.Funcionarios.Add(funcionario); } } transport.Close(); return(list); } catch (Exception) { throw; } }
public static void Search() { try { var socket = new TSocket(host, port); var transport = new TBufferedTransport(socket); var proto = new TBinaryProtocol(transport); _hbase = new Hbase.Client(proto); transport.Open(); //Conectado transport.Close(); } catch (Exception) { throw; } }
static void _CreateDataBase(string baseName, string columnFamily) { if (string.IsNullOrWhiteSpace(baseName)) { return; } if (string.IsNullOrWhiteSpace(columnFamily)) { return; } var socket = null as TSocket; var transport = null as TBufferedTransport; try { // Сделаем вычисление апи хоста по базе данных socket = new TSocket(getHost(baseName, columnFamily), Port); transport = new TBufferedTransport(socket); var proto = new TBinaryProtocol(transport); var hbase = new Hbase.Client(proto); transport.Open(); hbase.createTable( getBaseTableHbase(baseName, columnFamily), new List <ColumnDescriptor>() { new ColumnDescriptor { Name = getAttrNameHbase(columnFamily), BlockCacheEnabled = true, MaxVersions = 1, InMemory = true } }); } finally { if (transport != null) { transport.Close(); transport = null; } } }
static void _DropDataBase(string baseName, string columnFamily) { if (string.IsNullOrWhiteSpace(baseName)) { return; } if (string.IsNullOrWhiteSpace(columnFamily)) { return; } var socket = null as TSocket; var transport = null as TBufferedTransport; try { // Сделаем вычисление апи хоста по базе данных socket = new TSocket(getHost(baseName, columnFamily), Port); transport = new TBufferedTransport(socket); var proto = new TBinaryProtocol(transport); var hbase = new Hbase.Client(proto); transport.Open(); var tableName = getBaseTableHbase(baseName, columnFamily); if (hbase.isTableEnabled(tableName)) { hbase.disableTable(tableName); hbase.deleteTable(tableName); } } finally { if (transport != null) { transport.Close(); transport = null; } } }
public Dictionary <byte[], TCell> GetHBaseImage() { var socket = new TSocket(_hbaseThrif, _hbaseThrifPort); var transport = new TBufferedTransport(socket); var protocol = new TBinaryProtocol(transport); Hbase.Client hbaseClient = new Hbase.Client(protocol); Dictionary <byte[], TCell> hbaseResult = new Dictionary <byte[], TCell>(); transport.Open(); //List<byte[]> tableNames = hc.getTableNames(); byte[] table = Encoding.UTF8.GetBytes("FiservImages"); byte[] row = Encoding.UTF8.GetBytes(_documentId); byte[] column = Encoding.UTF8.GetBytes("ImageData:Image"); List <TRowResult> results = hbaseClient.getRow(table, row, null); TCell t = new TCell(); //t. foreach (TRowResult result in results) { //result.Columns[column] //result.Columns; hbaseResult = result.Columns; //string s = Encoding.UTF8.GetString(result.Columns[column].Value); //foreach (KeyValuePair<byte[], TCell> singleRow in konj) //{ // //File.WriteAllBytes(@"c:\test\output.docx", singleRow.Value.Value); // Main a = new Main(); // a.OpenFile(singleRow.Value.Value, "output.docx"); //} } return(hbaseResult); }
public Dictionary<byte[], TCell> GetHBaseImage() { var socket = new TSocket(_hbaseThrif, _hbaseThrifPort); var transport = new TBufferedTransport(socket); var protocol = new TBinaryProtocol(transport); Hbase.Client hbaseClient = new Hbase.Client(protocol); Dictionary<byte[], TCell> hbaseResult = new Dictionary<byte[], TCell>(); transport.Open(); //List<byte[]> tableNames = hc.getTableNames(); byte[] table = Encoding.UTF8.GetBytes("FiservImages"); byte[] row = Encoding.UTF8.GetBytes(_documentId); byte[] column = Encoding.UTF8.GetBytes("ImageData:Image"); List<TRowResult> results = hbaseClient.getRow(table, row, null); TCell t = new TCell(); //t. foreach (TRowResult result in results) { //result.Columns[column] //result.Columns; hbaseResult = result.Columns; //string s = Encoding.UTF8.GetString(result.Columns[column].Value); //foreach (KeyValuePair<byte[], TCell> singleRow in konj) //{ // //File.WriteAllBytes(@"c:\test\output.docx", singleRow.Value.Value); // Main a = new Main(); // a.OpenFile(singleRow.Value.Value, "output.docx"); //} } return hbaseResult; }
public void GetHBaseImage(string rowKey = "20150822180801118") { var socket = new TSocket(hbaseThrif, hbaseThrifPort); var transport = new TBufferedTransport(socket); var protocol = new TBinaryProtocol(transport); Hbase.Client hbaseClient = new Hbase.Client(protocol); transport.Open(); //List<byte[]> tableNames = hc.getTableNames(); byte[] table = Encoding.UTF8.GetBytes("FiservImages"); byte[] row = Encoding.UTF8.GetBytes(rowKey); byte[] column = Encoding.UTF8.GetBytes("ImageData:Image"); List <TRowResult> results = hbaseClient.getRow(table, row, null); TCell t = new TCell(); //t. foreach (TRowResult result in results) { //result.Columns[column] //result.Columns; Dictionary <byte[], TCell> konj; konj = result.Columns; //string s = Encoding.UTF8.GetString(result.Columns[column].Value); foreach (KeyValuePair <byte[], TCell> singleRow in konj) { //File.WriteAllBytes(@"c:\test\output.docx", singleRow.Value.Value); OpenFile(singleRow.Value.Value, "output.docx"); } } }
protected void 除数据行_Click(object sender, EventArgs e) { lab删除数据.Text = string.Empty; //请在步骤2输入表名 if (string.IsNullOrEmpty(txt表名.Text)) { lab删除数据.Text = "请在步骤2输入表名"; return; } //检查单元格是否已经输入 if (string.IsNullOrEmpty(txt单元格列名.Text)) { lab删除数据.Text = "请输入要删除的列名,如不知道,请点击步骤4获取数据"; return; } //检查单元格是否已经输入 if (string.IsNullOrEmpty(txt数据行key.Text)) { lab删除数据.Text = "请输入要删除的数据行key,如不知道,请点击步骤4获取数据"; return; } string table = txt表名.Text; TTransport transport = null; try { //192.168.2.111:60010 //实例化Socket连接 transport = new TSocket("192.168.2.111", 9090); //实例化一个协议对象 TProtocol tProtocol = new TBinaryProtocol(transport); //实例化一个Hbase的Client对象 var client = new Hbase.Client(tProtocol); //打开连接 transport.Open(); string rowkey = txt数据行key.Text;; string scol = txt单元格列名.Text; byte[] tableName = table.ToUTF8Bytes(); byte[] row = rowkey.ToUTF8Bytes(); Dictionary <byte[], byte[]> encodedAttributes = new Dictionary <byte[], byte[]>(); //删除整行数据 client.deleteAllRow(tableName, row, encodedAttributes); string xxx = string.Format("删除整行数据:{0},数据{{ RowKey:{1},列:{2} }}<br/>", table, rowkey, scol); lab删除数据.Text = xxx + "请点击步骤4获取数据,查看删除状态"; 获取数据_Click(sender, e); } finally { if (transport != null) { transport.Close(); } } }
protected void HBaseMutateImage(string rowKey, byte[] image) { var socket = new TSocket("172.24.2.144", 9090); var transport = new TBufferedTransport(socket); var protocol = new TBinaryProtocol(transport); Hbase.Client hc = new Hbase.Client(protocol); transport.Open(); //List<byte[]> tableNames = hc.getTableNames(); byte[] table = Encoding.UTF8.GetBytes("FiservImages"); byte[] row = Encoding.UTF8.GetBytes(rowKey); byte[] column = Encoding.UTF8.GetBytes("ImageData:Image"); List<Mutation> mutation = new List<Mutation>(); Mutation m = new Mutation(); m.Column = column; m.Value = image; m.IsDelete = false; m.WriteToWAL = true; mutation.Add(m); hc.mutateRow(table, row, mutation, null); }
static void Main(string[] args) { TSerializer.RegisterSerializer(new SelfTSerializer()); Man man = new Man(); man.Name = "李金川"; man.Sex = 1; man.Age = 30; man.Fei = new int[] { 1, 2, 3 }; man.Addr = new List <string> { "老师", "学生", "朋友" }; Thrift2ClientWarpper.Put <Man>("hbaseclient1", "test", "man", man.Name, man, (m) => { var tps = LJC.FrameWork.EntityBuf.EntityBufCore.GetTypeEntityBufType(typeof(Man)); var list = new List <KeyValuePair <string, object> >(); foreach (Tuple <LJC.FrameWork.EntityBuf.EntityBufType, bool> it in tps) { list.Add(new KeyValuePair <string, object>(it.Item1.Property.PropertyInfo.Name, it.Item1.Property.PropertyInfo.GetValue(m))); } return(list); }); Thrift2ClientWarpper.CheckAndDelete("hbaseclient1", "test", man.Name, "man", "Name", "李金川", new[] { "Sex" }); var resultljc = Thrift2ClientWarpper.Get <Man>("hbaseclient1", "test", man.Name, (t, s) => { var tps = LJC.FrameWork.EntityBuf.EntityBufCore.GetTypeEntityBufType(t); var pop = tps.First(p => p.Item1.Property.PropertyInfo.Name.Equals(s)); return(pop.Item1.Property.PropertyInfo); }); man.Name = "张三丰"; man.Age = 100; Thrift2ClientWarpper.Append <Man>("hbaseclient1", "test", man.Name, "man", man, (m) => { var tps = LJC.FrameWork.EntityBuf.EntityBufCore.GetTypeEntityBufType(typeof(Man)); var list = new List <KeyValuePair <string, object> >(); foreach (Tuple <LJC.FrameWork.EntityBuf.EntityBufType, bool> it in tps) { list.Add(new KeyValuePair <string, object>(it.Item1.Property.PropertyInfo.Name, it.Item1.Property.PropertyInfo.GetValue(m))); } return(list); }); Thrift2ClientWarpper.Delete("hbaseclient1", "test", man.Name); var result = Thrift2ClientWarpper.Get <Man>("hbaseclient1", "test", man.Name, (t, s) => { var tps = LJC.FrameWork.EntityBuf.EntityBufCore.GetTypeEntityBufType(t); var pop = tps.First(p => p.Item1.Property.PropertyInfo.Name.Equals(s)); return(pop.Item1.Property.PropertyInfo); }); return; TTransport transport = null; try { //实例化Socket连接 //transport = new TSocket("2.5.172.38", 30001); transport = new TSocket("hbaseclient1"); //实例化一个协议对象 TProtocol tProtocol = new TBinaryProtocol(transport); //实例化一个Hbase的Client对象 var client = new Hbase.Client(tProtocol); //打开连接 transport.Open(); Console.Write("已连接上"); //client.disableTable(Encoding.UTF8.GetBytes("dz_CDN_Ip_Stat")); //client.deleteTable(Encoding.UTF8.GetBytes("dz_CDN_Ip_Stat")); //client.createTable(Encoding.UTF8.GetBytes("dz_CDN_Ip_Stat"), new List<ColumnDescriptor> { new ColumnDescriptor { Name = Encoding.UTF8.GetBytes("col1") } }); //Console.Write("创建表"); //var boo=client.checkAndPut(Encoding.UTF8.GetBytes("dz_CDN_Ip_Stat"), Encoding.UTF8.GetBytes("201310_001_0_1100"), Encoding.UTF8.GetBytes("col1"), Encoding.UTF8.GetBytes("val"), null, null); //Console.WriteLine("写数据:" + boo); //根据表名,RowKey名来获取结果集 //List<TRowResult> reslut = client.getRow(Encoding.UTF8.GetBytes("dz_CDN_Ip_Stat"), Encoding.UTF8.GetBytes("row1"), null); //Console.WriteLine("读数据:" + reslut.Count); ////遍历结果集 //foreach (var key in reslut) //{ // Console.WriteLine("RowKey:\n{0}", Encoding.UTF8.GetString(key.Row)); // //打印Qualifier和对应的Value // foreach (var k in key.Columns) // { // Console.WriteLine("Family:Qualifier:" + "\n" + Encoding.UTF8.GetString(k.Key)); // Console.WriteLine("Value:" + Encoding.UTF8.GetString(k.Value.Value)); // } //} var tables = client.getTableNames(); foreach (var bi in tables) { transport.Close(); transport.Open(); client.disableTable(bi); client.deleteTable(bi); //var tb = Encoding.UTF8.GetString(bi); //Console.WriteLine(tb); //transport.Close(); //transport.Open(); //var dic = client.getColumnDescriptors(bi); //foreach (var kv in dic) //{ // Console.WriteLine(string.Format("{0}:{1}", Encoding.UTF8.GetString(kv.Key), Encoding.UTF8.GetString(kv.Value.Name))); //} } } catch (Exception e) { System.Console.WriteLine(e); } finally { if (null != transport) { transport.Close(); } } Console.ReadLine(); }
protected void 创建数据表_Click(object sender, EventArgs e) { TTransport transport = null; try { //192.168.2.111:60010 //实例化Socket连接 transport = new TSocket("192.168.2.111", 9090); //实例化一个协议对象 TProtocol tProtocol = new TBinaryProtocol(transport); //实例化一个Hbase的Client对象 var client = new Hbase.Client(tProtocol); //打开连接 transport.Open(); #region 创建表 //判断 表是不是存在 if (!client.getTableNames().Select(p => p.ToUTF8String()).Contains(txt表名.Text)) { //数据列 var cols = new List <ColumnDescriptor>(); foreach (var item in txt列名集合.Text.Split(',')) { //创建列 if (!string.IsNullOrEmpty(item)) { string coln = item; if (!coln.Contains(":")) { coln = item + ":"; } var col = new ColumnDescriptor() { Name = coln.ToUTF8Bytes(), MaxVersions = 3 }; cols.Add(col); } } //创建数据表 client.createTable(txt表名.Text.ToUTF8Bytes(), cols); lab创建表信息状态.Text = " 创建成功.."; } else { lab创建表信息状态.Text = "创建失败..表:" + txt表名.Text + "已经存在"; //return; } //向表里加数据 #region 向表里加数据 当前创建表示例(txt表名.Text, client); #endregion 当前所有表(client); #endregion } catch (Exception ex) { lab创建表信息状态.Text = "创建失败.."; lab创建表信息状态.Text += ex; } finally { if (transport != null) { transport.Close(); } } }
/// <summary> /// 删除单元数据,封装方法 /// </summary> /// <param name="table"></param> /// <param name="rowKey"></param> /// <param name="writeToWal"></param> /// <param name="columns"></param> /// <param name="attributes"></param> /// <param name="client"></param> public void DeleteCells(string table, string rowKey, bool writeToWal, List <string> columns, Dictionary <string, string> attributes, Hbase.Client client) { byte[] tableName = table.ToUTF8Bytes(); byte[] row = rowKey.ToUTF8Bytes(); Dictionary <byte[], byte[]> encodedAttributes = new Dictionary <byte[], byte[]>(); if (attributes != null) { foreach (var item in attributes) { encodedAttributes.Add(item.Key.ToUTF8Bytes(), item.Value.ToUTF8Bytes()); } } List <Mutation> mutations = new List <Mutation>(); foreach (string column in columns) { Mutation mutation = new Mutation(); mutation.IsDelete = true; mutation.WriteToWAL = writeToWal; mutation.Column = column.ToUTF8Bytes(); mutations.Add(mutation); } client.mutateRow(tableName, row, mutations, encodedAttributes); }
/// <summary> /// 一次加入多行数据 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void 一次加入多行数据_Click(object sender, EventArgs e) { //请在步骤2输入表名 if (string.IsNullOrEmpty(txt表名.Text)) { lab添加数据状态.Text = "请在步骤2输入表名"; return; } string table = txt表名.Text; byte[] tableName = table.ToUTF8Bytes(); TTransport transport = null; try { //192.168.2.111:60010 //实例化Socket连接 transport = new TSocket("192.168.2.111", 9090); //实例化一个协议对象 TProtocol tProtocol = new TBinaryProtocol(transport); //实例化一个Hbase的Client对象 var client = new Hbase.Client(tProtocol); //打开连接 transport.Open(); //获取所有列 #region 具体功能代码 //批量提交 var bat = new List <BatchMutation>(); //value:列数据集合 目前是单列 #region 生成批量提交的数据集合 var mu = new Mutation { /////////////////////////////////////////////////////////注意这里的列名表里必须有. Column = System.Text.Encoding.UTF8.GetBytes("Data:Collections"), Value = Guid.NewGuid().ToByteArray() }; string row; row = string.Format("{0:d15}{1}{2}", 99999, "ABCDEF", DateTime.Now.ToString("yyyyMMddHHmmssfff")); Dictionary <byte[], byte[]> encodedAttributes = new Dictionary <byte[], byte[]>(); var batch = new BatchMutation { Row = System.Text.Encoding.UTF8.GetBytes(row), Mutations = new List <Mutation>() { mu } }; #endregion //添加到集合中 bat.Add(batch); client.mutateRow(tableName, bat[0].Row, bat[0].Mutations, encodedAttributes); client.mutateRows(tableName, bat, encodedAttributes); #endregion } finally { if (transport != null) { transport.Close(); } } }
public static FuncionarioModel Get(string RowKey) { try { var socket = new TSocket(host, port); var transport = new TBufferedTransport(socket); var proto = new TBinaryProtocol(transport); _hbase = new Hbase.Client(proto); transport.Open(); var funcionario = new FuncionarioModel(); var scanner = _hbase.scannerOpen(table_name, Encoding.UTF8.GetBytes(RowKey), null); var entry = _hbase.scannerGet(scanner); foreach (var rowResult in entry) { funcionario.Key = Encoding.UTF8.GetString(rowResult.Row); var keys = rowResult.Columns.Select(c => Encoding.UTF8.GetString(c.Key)); var res = rowResult.Columns.Select(c => Encoding.UTF8.GetString(c.Value.Value)); string[] chave = new string[keys.Count()]; int i = 0; foreach (var item in keys) { chave[i] = item.ToString(); i++; } int count = 0; foreach (var cell in res) { switch (chave[count]) { case "fc:ano": funcionario.Ano = Convert.ToInt32(cell); break; case "fc:cpf": funcionario.Cpf = cell.ToString(); break; case "fc:jetons": funcionario.Jetons = cell.ToString(); break; case "fc:mes": funcionario.Mes = Convert.ToInt32(cell); break; case "fc:nome": funcionario.Nome = cell.ToString(); break; case "fc:salario": funcionario.Salario = cell.ToString(); break; } count++; } } transport.Close(); return(funcionario); } catch (Exception) { throw; } }