目錄
Install MongoDB
wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-1.5.5.tgz debian:/srv# tar zxf mongodb-linux-x86_64-1.5.5.tgz debian:/srv# ln -s mongodb-linux-x86_64-1.5.5 mongodb
Create a data directory
By default MongoDB will store data in /data/db, but it won't automatically create that directory. To create it, do:
$ sudo mkdir -p /data/db/ $ sudo chown `id -u` /data/db
You can also tell MongoDB to use a different data directory, with the --dbpath option.
Run and connect to the server
First, start the MongoDB server in one terminal:
$ ./mongodb/bin/mongod
In a separate terminal, start the shell, which will connect to localhost by default:
$ ./mongodb/bin/mongo > db.foo.save( { a : 1 } ) > db.foo.find()
Congratulations, you've just saved and retrieved your first document with MongoDB!
例 11.1. MongoDB Test
debian:/srv/mongodb/bin# ./mongo MongoDB shell version: 1.5.5 connecting to: test [initandlisten] Thu Jul 22 16:42:07 connection accepted from 127.0.0.1:42876 #1 > db.foo.save({a:1}) Thu Jul 22 16:42:23 allocating new datafile /data/db/test.ns, filling with zeroes... Thu Jul 22 16:42:23 done allocating datafile /data/db/test.ns, size: 16MB, took 0.025 secs Thu Jul 22 16:42:23 allocating new datafile /data/db/test.0, filling with zeroes... Thu Jul 22 16:42:23 done allocating datafile /data/db/test.0, size: 64MB, took 0.105 secs [conn1] Thu Jul 22 16:42:23 building new index on { _id: 1 } for test.foo [conn1] Thu Jul 22 16:42:23 Buildindex test.foo idxNo:0 { name: "_id_", ns: "test.foo", key: { _id: 1 } } [conn1] Thu Jul 22 16:42:23 done for 0 records 0secs [conn1] Thu Jul 22 16:42:23 insert test.foo 136ms > Thu Jul 22 16:42:23 allocating new datafile /data/db/test.1, filling with zeroes... Thu Jul 22 16:42:24 done allocating datafile /data/db/test.1, size: 128MB, took 0.228 secs > db.foo.find() { "_id" : ObjectId("4c48046f74050cbf6c9a0ef6"), "a" : 1 } > use neo switched to db neo > db.foo.save({a:1}) Thu Jul 22 16:54:50 allocating new datafile /data/db/neo.ns, filling with zeroes... Thu Jul 22 16:54:50 done allocating datafile /data/db/neo.ns, size: 16MB, took 0.026 secs Thu Jul 22 16:54:50 allocating new datafile /data/db/neo.0, filling with zeroes... Thu Jul 22 16:54:50 done allocating datafile /data/db/neo.0, size: 64MB, took 0.122 secs [conn1] Thu Jul 22 16:54:50 building new index on { _id: 1 } for neo.foo [conn1] Thu Jul 22 16:54:50 Buildindex neo.foo idxNo:0 { name: "_id_", ns: "neo.foo", key: { _id: 1 } } Thu Jul 22 16:54:50 allocating new datafile /data/db/neo.1, filling with zeroes... [conn1] Thu Jul 22 16:54:50 done for 0 records 0.01secs [conn1] Thu Jul 22 16:54:50 insert neo.foo 164ms > Thu Jul 22 16:54:50 done allocating datafile /data/db/neo.1, size: 128MB, took 0.217 secs > db.foo.find() { "_id" : ObjectId("4c48075a74050cbf6c9a0ef7"), "a" : 1 } > > db.neo.save({a:1}) [conn1] Thu Jul 22 16:58:32 building new index on { _id: 1 } for neo.neo [conn1] Thu Jul 22 16:58:32 Buildindex neo.neo idxNo:0 { name: "_id_", ns: "neo.neo", key: { _id: 1 } } [conn1] Thu Jul 22 16:58:32 done for 0 records 0.024secs > db.neo.find() { "_id" : ObjectId("4c48083874050cbf6c9a0ef8"), "a" : 1 }
Starting Mongo
Running as a Daemon
$ ./mongod --fork --logpath /var/log/mongodb.log --logappend
$ sudo apt-get install mongodb-server mongodb-clients
$ /etc/init.d/mongodb Usage: /etc/init.d/mongodb {start|stop|force-stop|restart|force-reload|status}
CentOS 預設 MongoDB 是 2.6.12
[root@iZ623h9icu8Z ~]# yum info mongodb Loaded plugins: langpacks Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast Available Packages Name : mongodb Arch : x86_64 Version : 2.6.12 Release : 3.el7 Size : 43 M Repo : epel/x86_64 Summary : High-performance, schema-free document-oriented database URL : http://www.mongodb.org License : AGPLv3 and zlib and ASL 2.0 Description : Mongo (from "humongous") is a high-performance, open source, schema-free : document-oriented database. MongoDB is written in C++ and offers the following : features: : * Collection oriented storage: easy storage of object/JSON-style data : * Dynamic queries : * Full index support, including on inner objects and embedded arrays : * Query profiling : * Replication and fail-over support : * Efficient storage of binary data including large objects (e.g. photos : and videos) : * Auto-sharding for cloud-level scalability (currently in early alpha) : * Commercial Support Available : : A key goal of MongoDB is to bridge the gap between key/value stores (which are : fast and highly scalable) and traditional RDBMS systems (which are deep in : functionality).
# yum install mongodb-server # chkconfig mongod on # service mongod start
單獨安裝客戶端
# yum install mongodb
官網的rpm包是如下
[root@netkiller ~]# yum search mongodb | grep "\-org" mongodb-org.x86_64 : MongoDB open source document-oriented database system mongodb-org-mongos.x86_64 : MongoDB sharded cluster query router mongodb-org-server.x86_64 : MongoDB database server mongodb-org-shell.x86_64 : MongoDB shell client mongodb-org-tools.x86_64 : MongoDB tools
#!/bin/sh cat << 'EOF' >> /etc/yum.repos.d/mongodb-org-3.4.repo [mongodb-org-3.4] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc EOF
yum install -y mongodb-org-server cp /etc/mongod.conf{,.original} systemctl is-enabled mongod systemctl start mongod
yum install -y mongodb-org-shell
[root@netkiller ~]# mongo MongoDB shell version v3.4.0 connecting to: mongodb://127.0.0.1:27017 MongoDB server version: 3.4.0 Welcome to the MongoDB shell. For interactive help, type "help". For more comprehensive documentation, see http://docs.mongodb.org/ Questions? Try the support group http://groups.google.com/group/mongodb-user Server has startup warnings: 2016-11-30T11:34:36.493+0800 I STORAGE [initandlisten] 2016-11-30T11:34:36.560+0800 I CONTROL [initandlisten] 2016-11-30T11:34:36.560+0800 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database. 2016-11-30T11:34:36.560+0800 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted. 2016-11-30T11:34:36.560+0800 I CONTROL [initandlisten] 2016-11-30T11:34:36.560+0800 I CONTROL [initandlisten] 2016-11-30T11:34:36.560+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. 2016-11-30T11:34:36.560+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never' 2016-11-30T11:34:36.560+0800 I CONTROL [initandlisten] 2016-11-30T11:34:36.560+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'. 2016-11-30T11:34:36.560+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never' 2016-11-30T11:34:36.560+0800 I CONTROL [initandlisten] > show dbs admin 0.000GB local 0.000GB > exit bye
# yum install mongodb-org-tools # rpm -ql mongodb-org-tools.x86_64 0:3.4.1-1.el7 /usr/bin/bsondump /usr/bin/mongodump /usr/bin/mongoexport /usr/bin/mongofiles /usr/bin/mongoimport /usr/bin/mongooplog /usr/bin/mongoperf /usr/bin/mongorestore /usr/bin/mongostat /usr/bin/mongotop /usr/share/man/man1/bsondump.1 /usr/share/man/man1/mongodump.1 /usr/share/man/man1/mongoexport.1 /usr/share/man/man1/mongofiles.1 /usr/share/man/man1/mongoimport.1 /usr/share/man/man1/mongooplog.1 /usr/share/man/man1/mongoperf.1 /usr/share/man/man1/mongorestore.1 /usr/share/man/man1/mongostat.1 /usr/share/man/man1/mongotop.1
Hadoop Connector
http://docs.mongodb.org/ecosystem/tutorial/getting-started-with-hadoop/
git clone https://github.com/mongodb/mongo-hadoop.git git checkout release-1.0
# vim build.sbt hadoopRelease in ThisBuild := "cdh4"
./sbt package
wget --no-check-certificate https://github.com/downloads/mongodb/mongo-java-driver/mongo-2.7.3.jar cp mongo-2.7.3.jar /usr/lib/hadoop/lib/ cp core/target/mongo-hadoop-core_cdh3u3-1.0.0.jar /usr/lib/hadoop/lib/
待續......