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();
            }
        }
    }
Example #2
0
        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 = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;联接成功..";
        }
        catch (Exception ex)
        {
            Label1.Text  = "联接失败..";
            Label1.Text += ex;
        }

        finally
        {
            if (transport != null)
            {
                transport.Close();
            }
        }
    }
Example #4
0
        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;
                }
            }
        }
Example #5
0
        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();
        }
Example #6
0
        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("&nbsp;&nbsp;RowKey:\n{0}", Encoding.UTF8.GetString(key.Row)));
            //打印Qualifier和对应的Value
            foreach (var k in key.Columns)
            {
                sss.Add(string.Format("&nbsp;&nbsp;&nbsp;列名:" + "\n" + Encoding.UTF8.GetString(k.Key)));
                sss.Add(string.Format("&nbsp;&nbsp;&nbsp;值:" + Encoding.UTF8.GetString(k.Value.Value)));
            }
        }

        gri创建数据表示例数据.DataSource = sss;
        gri创建数据表示例数据.DataBind();
    }
Example #8
0
        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");
                }
            }
        }
Example #9
0
    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 = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;联接成功..";
            }
            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 = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;删除成功..";
        }
        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);
    }
Example #12
0
        /// <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));
        }
Example #15
0
    /// <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();
            }
        }
    }
Example #16
0
        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();
                }
            }
        }
Example #17
0
    /// <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();
            }
        }
    }
Example #18
0
        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);
        }
Example #20
0
        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;
            }
        }
Example #21
0
        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;
            }
        }
Example #22
0
        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;
                }
            }
        }
Example #23
0
        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;
                }
            }
        }
Example #24
0
        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);
        }
Example #25
0
        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;
        }
Example #26
0
        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();
            }
        }
    }
Example #28
0
        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);
        }
Example #29
0
        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 = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;创建成功..";
            }
            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();
            }
        }
    }
Example #33
0
        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;
            }
        }