Mongodb Sharding无法正常工作

时间:2014-03-21 15:32:44

标签: mongodb pentaho sharding

我正在尝试使用两个节点设置mongodb分片。我启用了3个配置过程和一个路由器进程。我从SQL服务器提取数据(有50列 - 650 MB - _id作为密钥)并放入mongodb。在pentaho配置中,我已启用" 使用所有副本集" 并输入主节点的主机名和端口。当我运行转换时,所有数据都进入主节点而另一个节点没有获取数据。当我输入db.table.getShardDistribution()时,我收到以下消息" 收藏未分片"。

is.BalancerRunning()的状态也会给我false状态。我非常确定后台进程平衡器在这里不起作用。

当我尝试插入样本测试记录10,000条记录,其中名称为关键字时,分片设置工作正常,每个分片都分发了数据。

所以,当我运行pentaho转换来填充mongodb中的数据时,我遗漏了一些东西或做错了什么。任何帮助表示赞赏。

我的设置


C:\ Mongodb \ bin \ mongod.exe --shardsvr --port 10001 --dbpath C:\ Mongodb \ shard1> C:\ MongoDB的\登录\ shard1.log C:\ Mongodb \ bin \ mongod.exe --shardsvr --port 10002 --dbpath C:\ Mongodb \ shard2> C:\ MongoDB的\登录\ shard2.log C:\ Mongodb \ bin \ mongod.exe --configsvr --port 20000 --dbpath C:\ Mongodb \ configdb> C:\ MongoDB的\登录\的config.log C:\ Mongodb \ bin \ mongos.exe --configdb 10.231.34.105:  --chunkSize 1> C:\ MongoDB的\ LOG \ mongos.log

mongos>使用管理员 切换到dbadmin

mongos> db.runCommand({addshard:" 10.231.34.105:40001"}); {" shardAdded" :" shard0000"," ok" :1}

mongos> db.runCommand({addshard:" 10.231.34.106:40002"}); {" shardAdded" :" shard0001"," ok" :1}

mongos> db.runCommand({enableharding:" dbTest"}); {" ok" :1}

mongos> db.runCommand({shardcollection:" dbTest.cTest",key:{Date_ID:1}}); {" collectionssharded" :" dbTest.cTest"," ok" :1}

mongos>使用dbTest;

db.cTest.ensureIndex({Date_D:1});

1 个答案:

答案 0 :(得分:0)

如果您对数据库和集合进行分片,我不确定您的帖子。

设置分片后,您是否为数据库启用了分片。如下所示

db.runCommand({
    enablesharding : "dbname"
});

执行db.stats()确认。

为集合启用分片后。如下。

db.runCommand({
        shardcollection : "collection_name",
        key : {
            shardKey : "hashed"
        }
    });

然后确认db.collections.stats()