Ejemplo n.º 1
0
    // 开始统计
    public override OpRes doStat(object param, GMUser user)
    {
        m_result.reset();
        MapReduceResult map_result = DBMgr.getInstance().executeMapReduce(TableName.PLAYER_INFO,
                                                                          user.getDbServerID(),
                                                                          DbName.DB_PLAYER,
                                                                          null,
                                                                          MapReduceTable.getMap("vipLevel"),
                                                                          MapReduceTable.getReduce("vipLevel"));

        if (map_result != null)
        {
            IEnumerable <BsonDocument> bson = map_result.GetResults();
            foreach (BsonDocument d in bson)
            {
                try
                {
                    BsonValue resValue = d["value"];
                    int       count    = resValue["count"].ToInt32();
                    int       vip      = Convert.ToInt32(d["_id"]);
                    m_result.addVipLevel(vip, count);
                }
                catch (System.Exception ex)
                {
                }
            }
        }
        return(OpRes.opres_success);
    }
Ejemplo n.º 2
0
    void statPaytype(IMongoQuery imq, ChannelInfo cinfo)
    {
        MapReduceResult mapResult = MongodbPayment.Instance.executeMapReduce(cinfo.m_paymentTable,
                                                                             imq,
                                                                             MapReduceTable.getMap("rechargePayType"),
                                                                             MapReduceTable.getReduce("rechargePayType"));

        if (mapResult != null)
        {
            IEnumerable <BsonDocument> bson = mapResult.GetResults();
            foreach (BsonDocument d in bson)
            {
                int       payType  = Convert.ToInt32(d["_id"]);
                BsonValue resValue = d["value"];

                int total          = resValue["total"].ToInt32();
                int rechargePerson = resValue["rechargePerson"].ToInt32();
                int rechargeCount  = resValue["rechargeCount"].ToInt32();

                Dictionary <string, object> upData = new Dictionary <string, object>();
                upData.Add("genTime", cinfo.m_statDay.Date.AddDays(-1));
                upData.Add("channel", cinfo.m_channelNum);
                upData.Add(payType.ToString() + "_rmb", total);
                upData.Add(payType.ToString() + "_rechargePerson", rechargePerson);
                upData.Add(payType.ToString() + "_rechargeCount", rechargeCount);

                IMongoQuery upCond = Query.And(Query.EQ("genTime", cinfo.m_statDay.Date.AddDays(-1)),
                                               Query.EQ("channel", cinfo.m_channelNum));
                string str = MongodbAccount.Instance.ExecuteStoreByQuery(TableName.CHANNEL_TD_PAY, upCond, upData);
            }
        }
    }
Ejemplo n.º 3
0
    public override void doStat(object param, StatResult result)
    {
        ParamStat p = (ParamStat)param;

        ChannelInfo cinfo = p.m_channel;

        DateTime    mint = cinfo.m_statDay.Date.AddDays(-1), maxt = cinfo.m_statDay.Date;
        IMongoQuery imq1 = Query.LT("time", BsonValue.Create(maxt));
        IMongoQuery imq2 = Query.GTE("time", BsonValue.Create(mint));
        IMongoQuery imq3 = Query.EQ("channel", BsonValue.Create(cinfo.m_channelNum));

        IMongoQuery imq = Query.And(imq1, imq2, imq3);

        MapReduceResult mapResult = MongodbPayment.Instance.executeMapReduce(cinfo.m_paymentTable,
                                                                             imq,
                                                                             MapReduceTable.getMap("recharge"),
                                                                             MapReduceTable.getReduce("recharge"));

        if (mapResult != null)
        {
            IEnumerable <BsonDocument> bson = mapResult.GetResults();
            foreach (BsonDocument d in bson)
            {
                BsonValue resValue = d["value"];
                result.m_totalIncome += resValue["total"].ToInt32();
                result.m_rechargePersonNum++;
                result.m_rechargeCount += resValue["rechargeCount"].ToInt32();
            }
        }

        statPaytype(imq, cinfo);
    }
    List <int> getPlayerList()
    {
        List <int> playerList = new List <int>();

        IMongoQuery imq1 = Query.LT("genTime", BsonValue.Create(m_statDay));
        IMongoQuery imq2 = Query.GTE("genTime", BsonValue.Create(m_statDay.AddMinutes(-STAT_DELTA)));
        IMongoQuery imq  = Query.And(imq1, imq2);

        MapReduceResult mapResult = DBMgr.getInstance().executeMapReduce(TableName.LOG_PLAYER_INFO,
                                                                         0,
                                                                         DbName.DB_PUMP,
                                                                         imq,
                                                                         MapReduceTable.getMap("winLosePlayer"),
                                                                         MapReduceTable.getReduce("winLosePlayer"));

        if (mapResult != null)
        {
            IEnumerable <BsonDocument> bson = mapResult.GetResults();
            foreach (BsonDocument d in bson)
            {
                try
                {
                    int playerId = Convert.ToInt32(d["_id"]);
                    playerList.Add(playerId);
                }
                catch (System.Exception ex)
                {
                }
            }
        }
        return(playerList);
    }
Ejemplo n.º 5
0
    Dictionary <int, IncomeExInfo> calStartRemain(IMongoQuery imq)
    {
        Dictionary <int, IncomeExInfo> ret = new Dictionary <int, IncomeExInfo>();

        MapReduceResult mapResult = MongodbLog.Instance.executeMapReduce(TableName.PUMP_PLAYER_MONEY,
                                                                         imq,
                                                                         MapReduceTable.getMap("iteratorPlayer"),
                                                                         MapReduceTable.getReduce("iteratorPlayer"));

        if (mapResult != null)
        {
            IEnumerable <BsonDocument> bson = mapResult.GetResults();
            foreach (BsonDocument d in bson)
            {
                int playerId = Convert.ToInt32(d["_id"]);

                sr(playerId, 1, imq, ret);
                sr(playerId, 2, imq, ret);
                sr(playerId, 11, imq, ret);
                sr(playerId, 14, imq, ret);
            }

            IncomeExInfo info = new IncomeExInfo();
            info.m_start = bson.Count();
            ret[-1]      = info;
        }

        return(ret);
    }
Ejemplo n.º 6
0
        static void Main(string[] args)
        {
            //establish job configuration
            var myConfig = new HadoopJobConfiguration {
                InputPath = "/demo/simple/in", OutputFolder = "/demo/simple/out"
            };

            //connect to cluster
            var          myUri     = new Uri("http://localhost");
            const string userName  = "******";
            string       passWord  = null;
            IHadoop      myCluster = Hadoop.Connect(myUri, userName, passWord);

            //execute mapreduce job
            MapReduceResult jobResult = myCluster.MapReduceJob.Execute <MySimpleMapper, MySimpleReducer>(myConfig);

            //write job result to console
            int exitCode = jobResult.Info.ExitCode;

            string exitStatus = exitCode == 0 ? "Success" : "Failure";

            exitStatus = exitCode + " (" + exitStatus + ")";

            Console.WriteLine();
            Console.Write("Exit Code = " + exitStatus);
            Console.Read();
        }
Ejemplo n.º 7
0
    protected override MapReduceResult getMapReduceResult(IMongoQuery imq, GMUser user)
    {
        MapReduceResult mapResult = DBMgr.getInstance().executeMapReduce(TableName.PUMP_ACTIVE_PERSON,
                                                                         user.getDbServerID(),
                                                                         DbName.DB_PUMP,
                                                                         imq,
                                                                         MapReduceTable.getMap("activePerson"),
                                                                         MapReduceTable.getReduce("activePerson"));

        return(mapResult);
    }
Ejemplo n.º 8
0
    public override void update(double delta)
    {
        if (DateTime.Now.Date < m_statDay)
        {
            return;
        }

        beginStat("StatNewPlayerOutlayDistribution开始统计");

        DateTime    startTime = m_statDay.Date.AddDays(-1);
        IMongoQuery imq1      = Query.LT("genTime", m_statDay);
        IMongoQuery imq2      = Query.GTE("genTime", startTime);
        // pumpPlayerMoney表,需新增playerCreateTime字段
        IMongoQuery imq3 = Query.LT("playerCreateTime", m_statDay);
        IMongoQuery imq4 = Query.GTE("playerCreateTime", startTime);
        IMongoQuery imq  = Query.And(imq1, imq2, imq3, imq4,
                                     Query.EQ("reason", (int)PropertyReasonType.type_reason_single_round_balance));

        MapReduceResult mapResult = MongodbLog.Instance.executeMapReduce(TableName.PUMP_PLAYER_MONEY,
                                                                         imq,
                                                                         MapReduceTable.getMap("newPlayerOutlay"),
                                                                         MapReduceTable.getReduce("newPlayerOutlay"),
                                                                         TableName.STAT_NEW_PLAYER_OUTLAY_DISTRIBUTION + "_map");

        if (mapResult != null)
        {
            MapReduceResult mapResult1 = MongodbLog.Instance.executeMapReduce(TableName.STAT_NEW_PLAYER_OUTLAY_DISTRIBUTION + "_map",
                                                                              null,
                                                                              MapReduceTable.getMap("newPlayerOutlayDistribution"),
                                                                              MapReduceTable.getReduce("newPlayerOutlayDistribution"));
            if (mapResult1 != null)
            {
                IEnumerable <BsonDocument> bson = mapResult1.GetResults();
                foreach (BsonDocument d in bson)
                {
                    BsonDocument resValue = (BsonDocument)d["value"];
                    Dictionary <string, object> upData = new Dictionary <string, object>();
                    upData.Add("genTime", startTime);
                    foreach (var key in resValue.Names)
                    {
                        int num = resValue[key].ToInt32();
                        upData.Add(key, num);
                    }

                    MongodbLog.Instance.ExecuteInsert(TableName.STAT_NEW_PLAYER_OUTLAY_DISTRIBUTION, upData);
                }
            }
        }

        addStatDay();

        endStat("StatNewPlayerOutlayDistribution结束统计");
    }
Ejemplo n.º 9
0
    // 开始统计,返回0成功
    public override int doStat(object param)
    {
        m_result.reset();
        int retCode = 0;

        DBMgr.getInstance().checkDb(m_serverId);

        ParamStatWinLose   p         = (ParamStatWinLose)param;
        List <IMongoQuery> queryList = new List <IMongoQuery>();

        IMongoQuery imq1 = Query.LT("genTime", BsonValue.Create(p.m_end));
        IMongoQuery imq2 = Query.GTE("genTime", BsonValue.Create(p.m_start));

        queryList.Add(Query.And(imq1, imq2));
        queryList.Add(Query.EQ("playerId", BsonValue.Create(p.m_playerId)));
        IMongoQuery imq = Query.And(queryList);

        MapReduceResult map_result = DBMgr.getInstance().executeMapReduce(TableName.LOG_PLAYER_INFO,
                                                                          m_serverId,
                                                                          DbName.DB_PUMP,
                                                                          imq,
                                                                          MapReduceTable.getMap(m_algKey),
                                                                          MapReduceTable.getReduce(m_algKey));

        if (map_result != null)
        {
            IEnumerable <BsonDocument> bson = map_result.GetResults();
            foreach (BsonDocument d in bson)
            {
                try
                {
                    m_result.m_playerId = Convert.ToInt32(d["_id"]);

                    BsonValue resValue = d["value"];
                    m_result.m_playerOutlay = Convert.ToInt64(resValue["playerOutlay"]);
                    m_result.m_playerIncome = Convert.ToInt64(resValue["playerIncome"]);
                    m_result.m_washCount    = Convert.ToInt64(resValue["washCount"]);
                }
                catch (System.Exception ex)
                {
                    retCode = FunRet.RET_HAS_EXCEPTION;
                    LogMgr.log.Error("StatWinLoseA:" + ex.ToString());
                }
            }
        }
        else
        {
            retCode = FunRet.RET_HAS_EXCEPTION;
        }

        return(retCode);
    }
Ejemplo n.º 10
0
        /// <summary>
        /// mapReduce得到结果
        /// </summary>
        /// <param name="collectionName">表名</param>
        /// <param name="query">查询条件</param>
        /// <param name="finalizeJs">输出结果时转换的js</param>
        /// <param name="mapJs">map js</param>
        /// <param name="reduceJs">reduce js</param>
        /// <param name="limit">前多少条数据</param>
        /// <param name="sortBy">排序</param>
        /// <returns>文档数据</returns>
        public IEnumerable <BsonDocument> MapReduceToEnumerable(string collectionName, IMongoQuery query, string finalizeJs, string mapJs, string reduceJs, int limit, IMongoSortBy sortBy)
        {
            MapReduceResult result = MapReduceToResult(collectionName, query, finalizeJs, mapJs, reduceJs, limit, sortBy);

            if (result.Ok)
            {
                return(result.InlineResults);
            }
            else
            {
                return(null);
            }
        }
Ejemplo n.º 11
0
        /// <summary>
        /// mapReduce得到结果
        /// </summary>
        /// <typeparam name="T">类型</typeparam>
        /// <param name="collectionName">表名</param>
        /// <param name="query">查询条件</param>
        /// <param name="finalizeJs">输出结果时转换的js</param>
        /// <param name="mapJs">map js</param>
        /// <param name="reduceJs">reduce js</param>
        /// <param name="limit">前多少条数据</param>
        /// <param name="sortBy">排序</param>
        /// <returns>自定义类型数据</returns>
        public IEnumerable <T> MapReduceToList <T>(string collectionName, IMongoQuery query, string finalizeJs, string mapJs, string reduceJs, int limit, IMongoSortBy sortBy)
        {
            MapReduceResult result = MapReduceToResult(collectionName, query, finalizeJs, mapJs, reduceJs, limit, sortBy);

            if (result.Ok)
            {
                return(result.GetResultsAs <T>());
            }
            else
            {
                return(null);
            }
        }
Ejemplo n.º 12
0
        /// <summary>
        /// 运行
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void cmdRun_Click(object sender, EventArgs e)
        {
            BsonJavaScript map    = new BsonJavaScript(ctlMapFunction.Context);
            BsonJavaScript reduce = new BsonJavaScript(ctlReduceFunction.Context);
            //TODO:这里可能会超时,失去响应
            //需要设置SocketTimeOut
            MapReduceResult mMapReduceResult = _mongocol.MapReduce(map, reduce);

            MongoDBHelper.FillDataToTreeView("MapReduce Result", trvResult, mMapReduceResult.Response);
            trvResult.DatatreeView.BeginUpdate();
            trvResult.DatatreeView.ExpandAll();
            trvResult.DatatreeView.EndUpdate();
        }
Ejemplo n.º 13
0
    // 开始统计
    public override OpRes doStat(object param, GMUser user)
    {
        ParamQueryRecharge p   = (ParamQueryRecharge)param;
        QueryMgr           mgr = user.getSys <QueryMgr>(SysType.sysTypeQuery);

        m_cond.startQuery();
        OpRes res = mgr.makeQuery(param, QueryType.queryTypeRecharge, user, m_cond);

        if (res != OpRes.opres_success)
        {
            return(res);
        }

        IMongoQuery   imq = m_cond.getImq();
        QueryDocument qd  = (QueryDocument)imq;

        if (!qd.Contains("PayTime"))
        {
            return(OpRes.op_res_time_format_error);
        }

        m_result.Clear();
        QueryRecharge   rq         = mgr.getQuery <QueryRecharge>(QueryType.queryTypeRecharge);
        int             serverId   = DBMgr.getInstance().getSpecialServerId(DbName.DB_PAYMENT);
        MapReduceResult map_result = DBMgr.getInstance().executeMapReduce(rq.getPlatInfo().m_tableName,
                                                                          serverId,
                                                                          DbName.DB_PAYMENT,
                                                                          imq,
                                                                          MapReduceTable.getMap("sameOrderId"),
                                                                          MapReduceTable.getReduce("sameOrderId"));
        int count = 0;

        if (map_result != null)
        {
            IEnumerable <BsonDocument> bson = map_result.GetResults();
            foreach (BsonDocument d in bson)
            {
                BsonValue resValue = d["value"];
                count = resValue["total"].ToInt32();
                if (count > 1)
                {
                    ResultSameOrderIdItem tmp = new ResultSameOrderIdItem();
                    m_result.Add(tmp);
                    tmp.m_count   = count;
                    tmp.m_orderId = Convert.ToString(d["_id"]);
                }
            }
        }
        return(OpRes.opres_success);
    }
Ejemplo n.º 14
0
        /// <summary>
        /// 运行
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void cmdRun_Click(object sender, EventArgs e)
        {
            BsonJavaScript map    = new BsonJavaScript(txtMapJs.Text);
            BsonJavaScript reduce = new BsonJavaScript(txtReduceJs.Text);
            //TODO:这里可能会超时,失去响应
            //需要设置SocketTimeOut
            MapReduceResult rtn = _mongocol.MapReduce(map, reduce);

            List <BsonDocument> result = new List <BsonDocument>();

            result.Add(rtn.Response);
            MongoDBHelper.FillDataToTreeView("MapReduce Result", trvResult, result, 0);
            trvResult.DatatreeView.ExpandAll();
        }
Ejemplo n.º 15
0
        public static void DoCustomMapReduce()
        {
            //The credentials entered below are dummy values. Please input valid credentials and submit jobs
            Environment.SetEnvironmentVariable("HADOOP_HOME", @"C:\Syncfusion\BigData\3.2.0.20\BigDataSDK\\SDK\Hadoop");
            Environment.SetEnvironmentVariable("JAVA_HOME", @"C:\Syncfusion\BigData\3.2.0.20\BigDataSDK\\Java\jdk1.7.0_51");
            //Pass the cluster name
            string clusterName     = "https://{clustername}.azurehdinsight.net:";
            Uri    azureCluster    = new Uri(clusterName);
            string clusterUserName = "******"; // default - admin
            string clusterPassword = "******";

            //// This is the name of the account under which Hadoop will execute jobs.
            //// Normally this is just "Hadoop".
            string hadoopUserName = "******";

            //// Azure Storage Information.
            string azureStorageAccount   = "{storagename}.blob.core.windows.net";
            string azureStorageKey       = "{storagekey}";
            string azureStorageContainer = "{storagecontainer}";



            //Console.WriteLine("Starting MapReduce job. Remote login to your Name Node and check progress from JobTracker portal with the returned JobID...");

            IHadoop hadoop = Hadoop.Connect(azureCluster, clusterUserName,
                                            hadoopUserName, clusterPassword, azureStorageAccount,
                                            azureStorageKey, azureStorageContainer, true);
            // Create or overwrite the "myblob" blob with contents from a local file.
            var fileStream = File.ReadAllText(@"..//..//data/NASA_Access_Log");

            hadoop.StorageSystem.WriteAllText(FindReplace._input1HDFS, fileStream);
            Console.WriteLine("Input file uploaded.......\n\n");
            Console.WriteLine("Find and Replace Operation.\n\nImplementation of Find and Replace operations in native MapReduce through C#");
            Console.WriteLine("Execution begins......\n");

            //connect to HDInsightcluster
            MapReduceResult result = hadoop.MapReduceJob.ExecuteJob <FindReplace>();

            Console.WriteLine();
            Console.WriteLine("Job Run Information");
            Console.WriteLine();
            Console.WriteLine("Job Id: {0}", result.Id);
            Console.WriteLine("Exit Code: {0}", result.Info.ExitCode);
            Console.WriteLine("Standard Out");
            Console.WriteLine(result.Info.StandardOut);
            Console.WriteLine();
            Console.WriteLine("Standard Err");
            Console.WriteLine(result.Info.StandardError);
            Console.ReadKey();
        }
    OpRes statAve(IMongoQuery imq, GMUser user)
    {
        m_result.Clear();
        MapReduceResult mapResult = DBMgr.getInstance().executeMapReduce(TableName.STAT_PLAYER_GAME_BET_RESULT,
                                                                         user.getDbServerID(),
                                                                         DbName.DB_PUMP,
                                                                         imq,
                                                                         MapReduceTable.getMap("userGameBet"),
                                                                         MapReduceTable.getReduce("userGameBet"));

        if (mapResult != null)
        {
            IEnumerable <BsonDocument> bson = mapResult.GetResults();

            foreach (BsonDocument d in bson)
            {
                ResultItemPlayerGameBet tmp = new ResultItemPlayerGameBet();
                m_result.Add(tmp);

                BsonValue resValue = d["value"];

                tmp.m_time  = Convert.ToDateTime(d["_id"]).ToLocalTime();
                tmp.m_round = resValue["playerCount"].ToInt32();

                long   max = resValue["maxCarry"].ToInt64();
                long   min = resValue["minCarry"].ToInt64();
                double sum = resValue["sumCarry"].ToDouble();
                tmp.addData(ResultItemPlayerGameBet.CARRY, sum, max, min);

                max = resValue["maxOutlay"].ToInt64();
                min = resValue["minOutlay"].ToInt64();
                sum = resValue["sumOutlay"].ToDouble();
                tmp.addData(ResultItemPlayerGameBet.OUTLAY, sum, max, min);

                max = resValue["maxWin"].ToInt64();
                min = resValue["minWin"].ToInt64();
                sum = resValue["sumWin"].ToDouble();
                tmp.addData(ResultItemPlayerGameBet.WIN, sum, max, min);

                max = resValue["maxLose"].ToInt64();
                min = resValue["minLose"].ToInt64();
                sum = resValue["sumLose"].ToDouble();
                tmp.addData(ResultItemPlayerGameBet.LOSE, sum, max, min);

                tmp.m_rw = resValue["rw"].ToInt64();
            }
        }

        return(OpRes.opres_success);
    }
Ejemplo n.º 17
0
        private MapReduceResult MapReduce(string collectionName, string criteria, string mapFunction, string reduceFunction, string mapFinalize, string sort, int limit)
        {
            MongoCollection <BsonDocument> collection = Database.GetCollection <BsonDocument>(collectionName);
            MapReduceArgs   args   = new MapReduceArgs();
            MapReduceResult result = null;

            if (!string.IsNullOrEmpty(mapFunction))
            {
                args.MapFunction = mapFunction;
            }

            if (!string.IsNullOrEmpty(reduceFunction))
            {
                args.ReduceFunction = reduceFunction;
            }

            if (!string.IsNullOrEmpty(mapFinalize))
            {
                args.FinalizeFunction = mapFinalize;
            }

            if (!string.IsNullOrEmpty(criteria))
            {
                args.Query = Query.Create(new QueryDocument(ParseQuery(criteria)));
            }

            if (!string.IsNullOrEmpty(sort))
            {
                ParseQuery(sort).ToList().ForEach(itemtoSort =>
                {
                    if (itemtoSort.Value > 0)
                    {
                        args.SortBy = SortBy.Ascending(itemtoSort.Name);
                    }
                    else
                    {
                        args.SortBy = SortBy.Descending(itemtoSort.Name);
                    }
                });
            }

            args.Limit = limit;

            if (!string.IsNullOrEmpty(mapFunction) && !string.IsNullOrEmpty(reduceFunction))
            {
                result = collection.MapReduce(args);
            }
            return(result);
        }
Ejemplo n.º 18
0
    // 开始统计
    public override OpRes doStat(object param, GMUser user)
    {
        IMongoQuery imqTime = null;
        string      time    = (string)param;

        if (!string.IsNullOrEmpty(time))
        {
            DateTime mint = DateTime.Now, maxt = DateTime.Now;
            bool     res = Tool.splitTimeStr(time, ref mint, ref maxt);
            if (!res)
            {
                return(OpRes.op_res_time_format_error);
            }

            m_result.reset();

            IMongoQuery imq1 = Query.LT("create_time", BsonValue.Create(maxt));
            IMongoQuery imq2 = Query.GTE("create_time", BsonValue.Create(mint));
            imqTime = Query.And(imq1, imq2);
        }

        m_result.reset();
        MapReduceResult map_result = DBMgr.getInstance().executeMapReduce(TableName.PLAYER_INFO,
                                                                          user.getDbServerID(),
                                                                          DbName.DB_PLAYER,
                                                                          imqTime,
                                                                          MapReduceTable.getMap("vipLevel"),
                                                                          MapReduceTable.getReduce("vipLevel"));

        if (map_result != null)
        {
            IEnumerable <BsonDocument> bson = map_result.GetResults();
            foreach (BsonDocument d in bson)
            {
                try
                {
                    BsonValue resValue = d["value"];
                    int       count    = resValue["count"].ToInt32();
                    int       vip      = Convert.ToInt32(d["_id"]);
                    m_result.addVipLevel(vip, count);
                }
                catch (System.Exception ex)
                {
                }
            }
        }
        return(OpRes.opres_success);
    }
Ejemplo n.º 19
0
        static void Main(string[] args)
        {
            HadoopJobConfiguration myConfig = new HadoopJobConfiguration();

            myConfig.InputPath    = "/world/in/worldbank";
            myConfig.OutputFolder = "/world/out";



            Uri myUri = new Uri("http://*****:*****@"c:\hadoop");
            Environment.SetEnvironmentVariable("Java_HOME", @"c:\hadoop\jvm");

            IHadoop myCluster = Microsoft.Hadoop.MapReduce.Hadoop.Connect(myUri, userName, passWord);

            MapReduceResult jobResult = myCluster.MapReduceJob.Execute <ExtractValuesForIndicatorsMapper, IndicatorsReducer>(myConfig);

            HadoopJobConfiguration myConfig2 = new HadoopJobConfiguration();

            myConfig2.InputPath    = "/world/out";
            myConfig2.OutputFolder = "/world/out2";
            //MapReduceResult jobResult2 = myCluster.MapReduceJob.Execute<GroupValuesMapper, GroupValuesReducer>(myConfig2);



            int exitCode = jobResult.Info.ExitCode;



            string exitStatus = "Failure";

            if (exitCode == 0)
            {
                exitStatus = "Success";
            }

            exitStatus = exitCode + " (" + exitStatus + ")";

            Console.WriteLine();

            Console.Write("Exit Code = " + exitStatus);
        }
Ejemplo n.º 20
0
        /// <summary>
        ///     运行
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void cmdRun_Click(object sender, EventArgs e)
        {
            var map    = new BsonJavaScript(ctlMapFunction.Context);
            var reduce = new BsonJavaScript(ctlReduceFunction.Context);
            //TODO:这里可能会超时,失去响应
            //需要设置SocketTimeOut
            MapReduceArgs args = new MapReduceArgs();

            args.MapFunction    = map;
            args.ReduceFunction = reduce;
            MapReduceResult mMapReduceResult = SystemManager.GetCurrentCollection().MapReduce(args);

            MongoDbHelper.FillDataToTreeView("MapReduce Result", trvResult, mMapReduceResult.Response);
            trvResult.DatatreeView.BeginUpdate();
            trvResult.DatatreeView.ExpandAll();
            trvResult.DatatreeView.EndUpdate();
        }
Ejemplo n.º 21
0
        //Helper for using map reduce in mongo
        public T MapReduce <T>(string map, string reduce)
        {
            T         result = default(T);
            MapReduce mr     = Db.CreateMapReduce();

            MapReduceResponse response =
                mr.Execute(new MapReduceOptions(typeof(T).Name)
            {
                Map    = map,
                Reduce = reduce
            });
            IMongoCollection <MapReduceResult <T> > coll = response.GetCollection <MapReduceResult <T> >();
            MapReduceResult <T> r = coll.Find().FirstOrDefault();

            result = r.Value;

            return(result);
        }
Ejemplo n.º 22
0
        /// <summary>
        ///   Retrieves the data.
        /// </summary>
        internal void RetrieveData()
        {
            if (Command.Command.ContainsKey("map") == false || Command.Command.ContainsKey("reduce") == false)
            {
                throw new InvalidOperationException("Cannot execute without a map and reduce function");
            }

            IsModifiable = false;

            try
            {
                Result = new MapReduceResult(_database.SendCommand(_rootType, Command.Command));
            }
            catch (MongoCommandException exception)
            {
                Result = new MapReduceResult(exception.Error);
                throw new MongoMapReduceException(exception);
            }
        }
Ejemplo n.º 23
0
    int statPlayerRecharge(ChannelInfo cinfo, IMongoQuery cond, string acc)
    {
        IMongoQuery     imq       = Query.And(cond, Query.EQ(StatLTV.ACC_KEY_1, acc));
        MapReduceResult mapResult = MongodbPayment.Instance.executeMapReduce(cinfo.m_paymentTable,
                                                                             imq,
                                                                             MapReduceTable.getMap("recharge"),
                                                                             MapReduceTable.getReduce("recharge"));
        int total = 0;

        if (mapResult != null)
        {
            IEnumerable <BsonDocument> bson = mapResult.GetResults();
            foreach (BsonDocument d in bson)
            {
                BsonValue resValue = d["value"];
                total += resValue["total"].ToInt32();
            }
        }
        return(total);
    }
Ejemplo n.º 24
0
    // 开始统计
    public override OpRes doStat(object param, GMUser user)
    {
        m_result.Clear();
        m_cond.startQuery();
        OpRes res = makeQuery(param, user, m_cond);

        if (res != OpRes.opres_success)
        {
            return(res);
        }

        ParamQuery p = (ParamQuery)param;

        if (isSame(p, user))
        {
            return(query(p, null, user));
        }
        else
        {
            m_lastSearchTime = p.m_time;
            m_dbId           = user.getDbServerID();
        }

        IMongoQuery imqTime = m_cond.getImq();

        MapReduceResult map_result = DBMgr.getInstance().executeMapReduce(TableName.STAT_PLAYER_DRAGON,
                                                                          user.getDbServerID(),
                                                                          DbName.DB_PUMP,
                                                                          imqTime,
                                                                          MapReduceTable.getMap("playerDragonBall"),
                                                                          MapReduceTable.getReduce("playerDragonBall"),
                                                                          MapTable);

        if (map_result != null)
        {
            return(query(p, null, user));
        }
        return(OpRes.opres_success);
    }
Ejemplo n.º 25
0
    // 开始统计
    public override OpRes doStat(object param, GMUser user)
    {
        string   time = (string)param;
        DateTime mint = DateTime.Now, maxt = DateTime.Now;
        bool     res = Tool.splitTimeStr(time, ref mint, ref maxt);

        if (!res)
        {
            return(OpRes.op_res_time_format_error);
        }

        IMongoQuery imq1 = Query.LT("genTime", BsonValue.Create(maxt));
        IMongoQuery imq2 = Query.GTE("genTime", BsonValue.Create(mint));
        IMongoQuery imq  = Query.And(imq1, imq2);

        m_result.Clear();
        MapReduceResult mapResult = getMapReduceResult(imq, user);

        if (mapResult != null)
        {
            IEnumerable <BsonDocument> bson = mapResult.GetResults();
            foreach (BsonDocument d in bson)
            {
                BsonValue    resValue = d["value"];
                ResultActive tmp      = new ResultActive();
                m_result.Add(tmp);
                tmp.m_time  = Convert.ToDateTime(d["_id"]).ToLocalTime().ToString();
                tmp.m_game1 = resValue["game1"].ToInt32();
                tmp.m_game2 = resValue["game2"].ToInt32();
                tmp.m_game3 = resValue["game3"].ToInt32();
                tmp.m_game4 = resValue["game4"].ToInt32();
                tmp.m_game5 = resValue["game5"].ToInt32();
                tmp.m_game6 = resValue["game6"].ToInt32();
                tmp.m_game7 = resValue["game7"].ToInt32();
                tmp.m_game8 = resValue["game8"].ToInt32();
            }
        }
        return(OpRes.opres_success);
    }
Ejemplo n.º 26
0
    // 开始统计
    public override OpRes doStat(object param, GMUser user)
    {
        m_result.Clear();
        m_cond.startQuery();
        OpRes res = makeQuery(param, user, m_cond);

        if (res != OpRes.opres_success)
        {
            return(res);
        }

        ParamIncomeExpenses p = (ParamIncomeExpenses)param;

        if (isSame(p, user))
        {
            return(query(p, null, user));
        }
        else
        {
            m_lastParam.assign(p, user.getDbServerID());
        }

        IMongoQuery imqTime = m_cond.getImq();

        MapReduceResult map_result = DBMgr.getInstance().executeMapReduce(TableName.STAT_INCOME_EXPENSES,
                                                                          user.getDbServerID(),
                                                                          DbName.DB_PUMP,
                                                                          imqTime,
                                                                          MapReduceTable.getMap("playerIncomeExpenses"),
                                                                          MapReduceTable.getReduce("playerIncomeExpenses"),
                                                                          MapTable);

        if (map_result != null)
        {
            return(query(p, null, user));
        }
        return(OpRes.opres_success);
    }
Ejemplo n.º 27
0
    // 开始统计
    public override OpRes doStat(object param, GMUser user)
    {
        ParamQueryRecharge p   = (ParamQueryRecharge)param;
        QueryMgr           mgr = user.getSys <QueryMgr>(SysType.sysTypeQuery);

        m_cond.startQuery();
        OpRes res = mgr.makeQuery(param, QueryType.queryTypeRecharge, user, m_cond);

        if (res != OpRes.opres_success)
        {
            return(res);
        }

        IMongoQuery imq = m_cond.getImq();

        m_result.reset();
        QueryRecharge   rq         = mgr.getQuery <QueryRecharge>(QueryType.queryTypeRecharge);
        int             serverId   = DBMgr.getInstance().getSpecialServerId(DbName.DB_PAYMENT);
        MapReduceResult map_result = DBMgr.getInstance().executeMapReduce(rq.getPlatInfo().m_tableName,
                                                                          serverId,
                                                                          DbName.DB_PAYMENT,
                                                                          imq,
                                                                          MapReduceTable.getMap("recharge"),
                                                                          MapReduceTable.getReduce("recharge"));

        if (map_result != null)
        {
            IEnumerable <BsonDocument> bson = map_result.GetResults();
            foreach (BsonDocument d in bson)
            {
                BsonValue resValue = d["value"];
                m_result.m_total += resValue["total"].ToInt32();
                m_result.m_rechargePersonNum++;
                m_result.m_rechargeCount += resValue["rechargeCount"].ToInt32();
            }
        }
        return(OpRes.opres_success);
    }
    public override void doStat(object param, StatResult result)
    {
        ParamStat p = (ParamStat)param;

        ChannelInfo cinfo = p.m_channel;

        DateTime    mint = cinfo.m_statDay.Date.AddDays(-1), maxt = cinfo.m_statDay.Date;
        IMongoQuery imq1 = Query.LT("time", BsonValue.Create(maxt));
        IMongoQuery imq2 = Query.GTE("time", BsonValue.Create(mint));
        IMongoQuery imq3 = Query.EQ("channel", BsonValue.Create(cinfo.m_channelNum));

        IMongoQuery imq = Query.And(imq1, imq2, imq3);

        MapReduceResult mapResult = MongodbAccount.Instance.executeMapReduce(cinfo.m_loginTable,
                                                                             imq,
                                                                             MapReduceTable.getMap("active"),
                                                                             MapReduceTable.getReduce("active"));

        if (mapResult != null)
        {
            result.m_activeCount = (int)mapResult.OutputCount;
        }
    }
Ejemplo n.º 29
0
    void stat()
    {
        // DateTime now = DateTime.Now;
        //IMongoQuery imq1 = Query.GTE("logout_time", now.AddDays(-7));
        //IMongoQuery imq2 = Query.EQ("is_robot", false);
        //IMongoQuery imq = Query.And(imq1, imq2);
        IMongoQuery     imq       = Query.EQ("is_robot", false);
        MapReduceResult mapResult = MongodbPlayer.Instance.executeMapReduce(TableName.PLAYER_INFO,
                                                                            imq,
                                                                            MapReduceTable.getMap("totalMoney"),
                                                                            MapReduceTable.getReduce("totalMoney"));

        if (mapResult != null)
        {
            IEnumerable <BsonDocument> bson = mapResult.GetResults();
            foreach (BsonDocument d in bson)
            {
                BsonValue resValue = d["value"];
                m_moneyTotal = resValue["total"].ToInt64();
                m_safeBox    = resValue["box"].ToInt64();
            }
        }
    }
Ejemplo n.º 30
0
    void stat()
    {
        DateTime    startTime = m_statDay.AddDays(-1);
        DateTime    endTime   = m_statDay;
        IMongoQuery imq1      = Query.LT("genTime", BsonValue.Create(endTime));
        IMongoQuery imq2      = Query.GTE("genTime", BsonValue.Create(startTime));
        IMongoQuery imq       = Query.And(imq1, imq2);

        beginStat("StatPlayerTotalIncomeExpensesNew MapReduce开始统计");

        MapReduceResult mapResult = MongodbLog.Instance.executeMapReduce(TableName.PUMP_PLAYER_MONEY,
                                                                         imq,
                                                                         MapReduceTable.getMap("incomeExpensesNew"),
                                                                         MapReduceTable.getReduce("incomeExpensesNew"));

        endStat("StatPlayerTotalIncomeExpensesNew MapReduce结束统计");

        if (mapResult != null)
        {
            beginStat("StatPlayerTotalIncomeExpensesNew 开始写入数据");
            IEnumerable <BsonDocument> bson = mapResult.GetResults();
            StatIncomeExpensesItemBase item = new StatIncomeExpensesItemBase();
            foreach (BsonDocument d in bson)
            {
                BsonValue    resValue = d["value"];
                BsonDocument bd       = (BsonDocument)resValue;
                foreach (var gameName in bd.Names)
                {
                    int gameId = Convert.ToInt32(gameName);

                    BsonDocument gameData = (BsonDocument)bd[gameName];
                    foreach (var itemId in gameData.Names)
                    {
                        Dictionary <string, object> upData = new Dictionary <string, object>();
                        upData.Add("genTime", startTime);
                        upData.Add("gameId", gameId);
                        upData.Add("itemId", Convert.ToInt32(itemId));

                        BsonDocument itemData = (BsonDocument)gameData[itemId];

                        bool isAdd = false;
                        foreach (var ulkey in itemData.Names)
                        {
                            BsonDocument uldate = (BsonDocument)itemData[ulkey];
                            long         income = uldate["income"].ToInt64();
                            long         outlay = uldate["outlay"].ToInt64();
                            if (income > 0)
                            {
                                upData.Add(ulkey + "z", income);
                                isAdd = true;
                            }
                            if (outlay > 0)
                            {
                                upData.Add(ulkey + "f", outlay);
                                isAdd = true;
                            }
                        }

                        if (isAdd)
                        {
                            MongodbLog.Instance.ExecuteInsert(TableName.STAT_INCOME_EXPENSES_NEW, upData);
                        }
                    }
                }
            }

            endStat("StatPlayerTotalIncomeExpensesNew 结束写入数据");
        }

        IMongoQuery imq3 = Query.EQ("is_robot", false);

        MapReduceResult mapResult1 = MongodbPlayer.Instance.executeMapReduce(TableName.PLAYER_INFO,
                                                                             imq3,
                                                                             MapReduceTable.getMap("incomeExpensesRemain"),
                                                                             MapReduceTable.getReduce("incomeExpensesRemain"));

        if (mapResult1 != null)
        {
            IEnumerable <BsonDocument> bson = mapResult1.GetResults();
            StatIncomeExpensesItemBase item = new StatIncomeExpensesItemBase();
            foreach (BsonDocument d in bson)
            {
                BsonValue resValue = d["value"];

                item.m_goldRemain = resValue["goldRemain"].ToInt64();
                item.m_gemRemain  = resValue["gemRemain"].ToInt64();
                item.m_dbRemain   = resValue["dbRemain"].ToInt64();
                item.m_chipRemain = resValue["chipRemain"].ToInt64();

                Dictionary <int, IncomeExInfo> incomeInfo = calStartRemain(imq);

                addDataRemain(item, startTime, incomeInfo);
            }
        }
    }
 public async Task<MapReduceResult> AddToLocalDB(MapReduceResult mr)
 {
     var r = await BlobCache.UserAccount.InsertObject(mr.Key.ToString(), mr);
     return mr;
 }