예제 #1
0
        /// <summary>
        /// 获取所需的rowKey
        /// </summary>
        public static void ReadRowKey(string Path)
        {
            listTempRowkey = new List <string>();
            StreamReader sr = new StreamReader(Path, Encoding.Default);
            String       line;
            var          count = 0;

            while ((line = sr.ReadLine()) != null)
            {
                if (string.IsNullOrEmpty(line))
                {
                    continue;
                }
                listTempRowkey.Add(line.ToString().Trim());
                ++count;
                if (count % 1000 != 0)
                {
                    continue;
                }
                LoggerManager.Create().InfoWrite(string.Format("已加载指定RowKey{0}条", count));
            }
            LoggerManager.Create().InfoWrite(string.Format("共加载指定RowKey{0}条", count));
        }
예제 #2
0
        public static void WriteHbaseData(string path, Dictionary <string, string> dicResult)
        {
            var fs    = new FileStream(path, FileMode.OpenOrCreate);
            var sw    = new StreamWriter(fs);
            var count = 0;

            foreach (var item in dicResult)
            {
                sw.WriteLine(item.Key + " " + item.Value);
                ++count;
                if (count % 1000 != 0)
                {
                    continue;
                }
                LoggerManager.Create().InfoWrite(string.Format("已写入指定RowKey数据{0}条", count));
                //LoggerManager.Create().InfoWrite(string.Format("已写入{0}条", ++count));
            }
            //清空缓冲区
            sw.Flush();
            //关闭流
            sw.Close();
            fs.Close();
            LoggerManager.Create().InfoWrite(string.Format("Hbase数据写入成功,共写入数据{0}条", count));
        }
예제 #3
0
        static void Main(string[] args)
        {
            int blockingCapacity = Convert.ToInt32(AppSettingInfo.appHbaseDownloadDataCapacity);

            //LoggerManager.Create().InfoWrite
            Console.Title = "Hbase读取工具";
            LoggerManager.Create().InfoWrite("/*******************************************************************/");
            LoggerManager.Create().InfoWrite(string.Format("服务器地址:{0}", AppSettingInfo.appSettingIP + ":" + AppSettingInfo.appSettingPort));
            LoggerManager.Create().InfoWrite(string.Format("Hbase表名:{0}", AppSettingInfo.appSettingTableName));
            LoggerManager.Create().InfoWrite("是否执行Hbase工具:Y/N");
            var str = Console.ReadLine();

            if (str.ToUpper() != "Y")
            {
                return;
            }
            switch (AppSettingInfo.appSettingOperation)
            {
            case "2":
                LoggerManager.Create().InfoWrite("模式选择:删除指定RowKey数据并备份至本地文件");
                LoggerManager.Create().InfoWrite("开始读取本地RowKey...");
                LoggerManager.Create().InfoWrite(string.Format("查询数据删除指定RowKey文件地址:{0}", AppSettingInfo.appSettingDeleteRowKeyPath));
                LoggerManager.Create().InfoWrite(string.Format("查询数据删除RowKey备份本地文件地址:{0}", AppSettingInfo.appSettingDeleteBackUpPath));
                LoggerManager.Create().InfoWrite("本地RowKey读取完成\r\n开始查询Hbase库数据...");
                ReadRowKey(AppSettingInfo.appSettingDeleteRowKeyPath);
                break;

            default:
                LoggerManager.Create().InfoWrite("模式选择:查询数据拷贝至本地文件");
                LoggerManager.Create().InfoWrite("开始读取本地RowKey...");
                LoggerManager.Create().InfoWrite(string.Format("读取本地文件地址:{0}", AppSettingInfo.appSettingReadPath));
                LoggerManager.Create().InfoWrite(string.Format("写入本地文件地址:{0}", AppSettingInfo.appSettingWritePath));
                ReadRowKey(AppSettingInfo.appSettingReadPath);
                LoggerManager.Create().InfoWrite("本地RowKey读取完成\r\n开始查询Hbase库数据...");
                break;
            }
            LoggerManager.Create().InfoWrite("/*******************************************************************/");

            try
            {
                if (listTempRowkey.Count > blockingCapacity)
                {
                    LoggerManager.Create().InfoWrite(String.Format("Hbase查询下载数据超过最大容量{0}条,开始分区下载", blockingCapacity));
                    var loop = listTempRowkey.Count / blockingCapacity;
                    for (var i = 0; i < loop + 1; i++)
                    {
                        LoggerManager.Create().InfoWrite(string.Format("Hbase库指定数据下载/删除第{0}轮开始,数量{1}...", i + 1, blockingCapacity));
                        dicResult = Helper.ReadKeyHbaseData(i == loop ? listTempRowkey.Skip(i * blockingCapacity).Take(listTempRowkey.Count - i * blockingCapacity).ToList() : listTempRowkey.Skip(i * blockingCapacity).Take(blockingCapacity).ToList()
                                                            , AppSettingInfo.appSettingIP, Convert.ToInt32(AppSettingInfo.appSettingPort), AppSettingInfo.appSettingTableName);
                        LoggerManager.Create().InfoWrite("Hbase库数据读取完成\r\n开始写本地文件");
                        switch (AppSettingInfo.appSettingOperation)
                        {
                        case "2":
                            WriteHbaseData(AppSettingInfo.appSettingDeleteBackUpPath + i + ".txt", dicResult);
                            //LoggerManager.Create().InfoWrite(string.Format("Hbase库指定数据删除第{0}轮开始,数量{1}...",i+1,blockingCapacity));
                            Helper.DeleteHbaseData(i == loop ? listTempRowkey.Skip(i * blockingCapacity).Take(listTempRowkey.Count - i * blockingCapacity).ToList() : listTempRowkey.Skip(i * blockingCapacity).Take(blockingCapacity).ToList()
                                                   , AppSettingInfo.appSettingIP, Convert.ToInt32(AppSettingInfo.appSettingPort), AppSettingInfo.appSettingTableName);
                            break;

                        default:
                            //LoggerManager.Create().InfoWrite(string.Format("Hbase库指定数据下载第{0}轮开始,数量{1}...", i+1, blockingCapacity));
                            WriteHbaseData(AppSettingInfo.appSettingWritePath + i + ".txt", dicResult);
                            break;
                        }
                    }
                }
                else
                {
                    dicResult = Helper.ReadKeyHbaseData(listTempRowkey, AppSettingInfo.appSettingIP,
                                                        Convert.ToInt32(AppSettingInfo.appSettingPort),
                                                        AppSettingInfo.appSettingTableName);
                    LoggerManager.Create().InfoWrite("Hbase库数据读取完成\r\n开始写本地文件");
                    switch (AppSettingInfo.appSettingOperation)
                    {
                    case "2":
                        WriteHbaseData(AppSettingInfo.appSettingDeleteBackUpPath + ".txt", dicResult);
                        LoggerManager.Create().InfoWrite("Hbase库指定数据删除开始...");
                        Helper.DeleteHbaseData(listTempRowkey, AppSettingInfo.appSettingIP,
                                               Convert.ToInt32(AppSettingInfo.appSettingPort),
                                               AppSettingInfo.appSettingTableName);
                        break;

                    default:
                        WriteHbaseData(AppSettingInfo.appSettingWritePath + ".txt", dicResult);
                        break;
                    }
                }

                LoggerManager.Create().InfoWrite("完成!");
            }
            catch (Exception e)
            {
                LoggerManager.Create().ErrorWrite(string.Format("程序异常:{0}", e.Message));
                throw;
            }
            Console.ReadKey();
        }
 /// <summary>
 ///     Log4s the net builder.
 /// </summary>
 /// <param name="configurationHelper">The configuration helper.</param>
 /// <param name="pathConfig">The path config.</param>
 /// <returns></returns>
 public static ConfigurationPublisher Log4NetBuilder(this ConfigurationPublisher configurationHelper,
                                                     string pathConfig)
 {
     LoggerManager.Create(Log4NetFactory.CreateFrom(pathConfig));
     return(configurationHelper);
 }
 /// <summary>
 ///     Log4s the net builder.
 /// </summary>
 /// <param name="configurationHelper">The configuration helper.</param>
 /// <returns></returns>
 public static ConfigurationPublisher Log4NetBuilder(this ConfigurationPublisher configurationHelper)
 {
     LoggerManager.Create(Log4NetFactory.DefaultLogger());
     return(configurationHelper);
 }