用Mongodb自带的Mongoexport,通过shell脚本的方式进行增量备份到HDFS上
1.思路介绍:
Mongodb安装目录下bin目录里有两个工具:mongoexport和mongodump这两个工具可以实现备份mongodb的数据。用法也类似,区别这里不做说明,自行搜索。mongoexport可以导出数据到外部文件中,mongoexport通过指定参数的方式来索要备份的mongodb数据库、集合、以及备份的条件、和导出到外部文件的路径。如:
mongoexport -o /home/result.csv
就是通过-o指定导出的路径。
其中有一个参数:-q 它的作用是指定备份的条件,通过这个参数,就可以对mongodb里的数据做一个筛选,通过筛选出增量数据,然后把它们备份导出。从而实现增量数据备份。
2.需求:
我的需求如下:网页产生的数据一直在往Mongodb里存储,我需要每小时从Mongodb里拉取一次数据,存储到hdfs上。
其中:hdfs的三个节点:node1,node2,node3
Mongodb在另一台机器上。不在集群节点上。
Mongodb存储的数据是Bson类型如下:
{ "_id" : "ad22be19473548248c84feceaf8334f0"
"_class" : "com.cdv.nsite.authc.model.Session"
"userId" : "admin"
"userName" : "admin"
"logonTime" : ISODate("2017-05-10T09:44:34.881Z")
"logonHost" : "11.9.234.85"
"logonIp" : "11.9.234.85"
"lastBang" : NumberLong("1494409485264")
"extraData" : { }
"appName" : "web console"