mongodb 数据库操作–备份 还原 导出 导入

mongodb数据备份和还原主要分为二种,一种是针对于库的mongodump和mongorestore,一种是针对库中表的mongoexport和mongoimport。 一,mongodump备份数据库 1,常用命令格 mongodump -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -o 文件存在路径 如果没有用户谁,可以去掉-u和-p。 如果导出本机的数据库,可以去掉-h。 如果是默认端口,可以去掉–port。 如果想导出所有数据库,可以去掉-d。 2,导出所有数据库 [root@localhost mongodb]# mongodump -h 127.0.0.1 -o /home/zhangy/mongodb/ connected to: 127.0.0.1 Tue Dec 3 06:15:55.448 all dbs Tue Dec 3 06:15:55.449 DATABASE: test to /home/zhangy/mongodb/test Tue Dec 3 06:15:55.449 test.system.indexes to /home/zhangy/mongodb/test/system.indexes.bson Tue Dec 3 … Continue reading "mongodb 数据库操作–备份 还原 导出 导入"

搭建 Docker 环境

安装 Docker Docker 软件包已经包括在默认的 CentOS-Extras 软件源里。因此想要安装 docker,只需要运行下面的 yum 命令: yum install docker-io -y 直接yum安装,安装成功后查看版本 docker -v 启动docker service docker start 设置开机启动 chkconfig docker on 配置 Docker 因为国内访问 Docker Hub 较慢, 可以使用腾讯云提供的国内镜像源, 加速访问 Docker Hub 依次执行以下命令 echo "OPTIONS='--registry-mirror=https://mirror.ccs.tencentyun.com'" >> /etc/sysconfig/docker systemctl daemon-reload service docker restart Docker 的简单操作 任务时间:10min ~ 20min 下载镜像 下载一个官方的 CentOS 镜像到本地 docker pull … Continue reading "搭建 Docker 环境"

搭建微信订阅号后台服务

搭建微信订阅号后台服务 准备域名 任务时间:20min ~ 40min 微信公众平台需要配置服务器地址 URL 访问,在实验开始之前,我们要准备域名。 域名注册 如果您还没有域名,可以在腾讯云上选购,过程可以参考下面的视频。 视频 – 在腾讯云上购买域名 域名解析 域名购买完成后, 需要将域名解析到实验云主机上,实验云主机的 IP 为: <您的 CVM IP 地址> 在腾讯云购买的域名,可以到控制台添加解析记录,过程可参考下面的视频: 视频 – 如何在腾讯云上解析域名 域名设置解析后需要过一段时间才会生效,通过 ping 命令检查域名是否生效 [?],如: ping www.yourmpdomain.com 如果 ping 命令返回的信息中含有你设置的解析的 IP 地址,说明解析成功。 注意替换下面命令中的 www.yourmpdomain.com 为您自己的注册的域名 申请微信个人订阅号 任务时间:5min ~ 10min 在开始搭建我们的订阅号服务器之前,需要先拿到订阅号相关信息。 注册开发者账号 如果你还不是微信订阅号开发者,请先在微信公众平台注册: https://mp.weixin.qq.com 具体注册流程可参考如下视频: 视频 – 注册开发者账号 若您已注册,请点击下一步。 获取微信订阅号公众平台认证字段信息 我们需要获取3个字段:AppID Token EncodingAESKey。 登录微信公众平台,依次进入 开发 – 基本配置 可以拿到 AppID。 在基本配置 – 服务器配置 – 修改配置 表单中: … Continue reading "搭建微信订阅号后台服务"

ElasticSearch 简单入门

简介 ElasticSearch是一个开源的分布式搜索引擎,具备高可靠性,支持非常多的企业级搜索用例。像Solr4一样,是基于Lucene构建的。支持时间时间索引和全文检索。官网:http://www.elasticsearch.org 它对外提供一系列基于java和http的api,用于索引、检索、修改大多数配置。 写这篇博客的的主要原因是ElasticSearch的网站只有一些简单的介绍,质量不高,缺少完整的教程。我费了好大劲才把它启动起来,做了一些比hello world更复杂一些的工作。我希望通过分享我的一些经验来帮助对ElasticSearch(很强大的哦)感兴趣的人在初次使用它的时候能够节省些时间。学完这篇教程,你就掌握了它的基本操作——启动、运行。我将从我的电脑上分享这个链接。 这么着就开始了。 作者假设读者拥有安装后的Java。 下载来自http://www.elasticsearch.org/download/的ElasticSearch。再一次,关于在Linux与其他非视窗系统环境里操作它的谈论有许多,但是作者更加关心着视窗7版桌面环境。请对应选择安装包裹。对视窗系统 – 一Zip文件 – 用户可解压缩到C:\elasticsearch-0.90.3\. 牢记,这十分的不同于安装Eclipse IDE。 作者不熟悉curl跟cygwin,而且作者打算节省掌握时间(此多数在官网ElasticSearch.org应用的命令面对非视窗平台)(译者:大可以安装一虚拟机、便携版Linux或者MinGW)。读者可以在http://curl.haxx.se/download.html和http://cygwin.com/install.html安装Curl和cygwin。 于是测试下目前作者和读者所做到的。 视窗7版桌面环境,运行命令行,进入 cd C:\elasticsearch-0.90.3\bin 目录。 这时运行 elasticsearch.bat 上面在本机启动了一个ElasticSearch节点。 读者会看到下面的记录提示。 (如果您家情况明显不一样,请读者们不要忧愁,因那作者有些个Elastic Search的插件程序,而且作者家节点命名和其它会不同读者家的) 4. 现在在浏览器里测试一下 如果你得到的status是200那它意味着所有的事情都ok啦…是不是很简单? 让我们看看JSON的每个字段代表的含义: Ok:当为true时,意味着请求成功。 Status:发出请求后的HTTP的错误代码。200表示一切正常。 Name:我们Elasticsearch实例的名字。在默认情况下,它将从一个巨长的名字列表中随机选择一个。 Version:这个对象有一个number字段,代表了当前运行的Elasticsearch版本号,和一个Snapshot_build字段,代表了你当前运行的版本是否是从源代码构建而来。 Tagline:包含了Elasticsearch的第一个tagline: “You Know, for Search.” 5. 现在让我们从http://mobz.github.io/elasticsearch-head/ 安装ElasticSearch Head插件 安装方法非常简单 1 cd C:\elasticsearch-0.90.3\bin 2 plugin -install mobz/elasticsearch-head 上面的命令会把 elasticsearch-head插件装到你的环境里 教程样例 我们将要部署一个非常简单的应用–在一个部门里的雇员–这样我们可以把注意力放在功能而不是氧立得复杂性上。总而言之,这篇博文是为了帮助人们开始ElasticSearch入门。 1)现在打开你的cygwin窗口并且键入命令 1 curl -XPUT 'http://localhost:9200/dept/employee/32' -d '{ "empname": "emp32"}' dept是一个索引并且索引类型是雇员,此时我们正在输入这个索引类型的第31个id。 你应该能在cygwin的窗口看到这样的信息: 让我们看一下这个输出: … Continue reading "ElasticSearch 简单入门"

优化了du性能的hadoop 2.8.1

性能提升1000+倍。 原理是使用df 代替du, wget https://www.strongd.net/dl/hadoop-common-2.8.1.jar -C /usr/local/hadoop-2.8.1/share/hadoop/common/   wget https://www.strongd.net/dl/mydu -C /usr/bin/ chmod a+x /usr/bin/mydu   然后重启hadoop就可以了。

搭建 Hadoop 伪分布式环境

软硬件环境 CentOS 7.2 64位 OpenJDK-1.7 Hadoop-2.7 关于本教程的说明 云实验室云主机自动使用root账户登录系统,因此本教程中所有的操作都是以root用户来执行的。若要在自己的云主机上进行本教程的实验,为了系统安全,建议新建一个账户登录后再进行后续操作。 安装 SSH 客户端 任务时间:1min ~ 5min 安装SSH 安装SSH: sudo yum install openssh-clients openssh-server 安装完成后,可以使用下面命令进行测试: ssh localhost 输入root账户的密码,如果可以正常登录,则说明SSH安装没有问题。测试正常后使用exit命令退出ssh。 安装 JAVA 环境 任务时间:5min ~ 10min 安装 JDK 使用yum来安装1.7版本OpenJDK: sudo yum install java-1.7.0-openjdk java-1.7.0-openjdk-devel 安装完成后,输入java和javac命令,如果能输出对应的命令帮助,则表明jdk已正确安装。 配置 JAVA 环境变量 执行命令: 编辑 ~/.bashrc,在结尾追加: export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk 保存文件后执行下面命令使JAVA_HOME环境变量生效: source ~/.bashrc 为了检测系统中JAVA环境是否已经正确配置并生效,可以分别执行下面命令: java -version $JAVA_HOME/bin/java … Continue reading "搭建 Hadoop 伪分布式环境"

Facebook针对hbase的优化方案分析

使用hbase的目的是为了海量数据的随机读写,但是在实际使用中却发现针对随机读的优化和gc是一个很大的问题,而且hbase的数据是存储在Hdfs,而Hdfs是面向流失数据访问进行设计的,就难免带来效率的下降。下面介绍一下Facebook Message系统在HBase online storage场景下的一个案例(《Apache Hadoop Goes Realtime at Facebook》, SIGMOD 2011),最近他们在存储领域顶级会议FAST2014上发表了一篇论文《Analysis of HDFS Under HBase: A Facebook Messages Case Study》分析了他们在使用HBase中遇到的一些问题和解决方案。该论文首先讲了Facebook的分析方法包括tracing/analysis/simulation,FM系统的架构和文件与数据构成等,接下来开始分析FM系统在性能方面的一些问题,并提出了解决方案。 FM系统的主要读写I/O负载 Figure 2描述了每一层的I/O构成,解释了在FM系统对外请求中读占主导,但是由于logging/compaction/replication/caching导致写被严重放大。 HBase的设计是分层结构的,依次是DB逻辑层、FS逻辑层、底层系统逻辑层。DB逻辑层提供的对外使用的接口主要操作是put()和get()请求,这两个操作的数据都要写到HDFS上,其中读写比99/1(Figure 2中第一条)。 由于DB逻辑层内部为了保证数据的持久性会做logging,为了读取的高效率会做compaction,而且这两个操作都是写占主导的,所以把这两个操作(overheads)加上之后读写比为79/21(Figure 2中第二条)。 相当于调用put()操作向HBase写入的数据都是写入了两份:一份写入内存Memstore然后flush到HFile/HDFS,另一份通过logging直接写HLog/HDFS。Memstore中积累一定量的数据才会写HFile,这使得压缩比会比较高,而写HLog要求实时append record导致压缩比(HBASE-8155)相对较低,导致写被放大4倍以上。    Compaction操作就是读取小的HFile到内存merge-sorting成大的HFile然后输出,加速HBase读操作。Compaction操作导致写被放大17倍以上,说明每部分数据平均被重复读写了17次,所以对于内容不变的大附件是不适合存储在HBase中的。由于读操作在FM业务中占主要比例,所以加速读操作对业务非常有帮助,所以compaction策略会比较激进。 HBase的数据reliable是靠HDFS层保证的,即HDFS的三备份策略。那么也就是上述对HDFS的写操作都会被转化成三倍的local file I/O和两倍的网络I/O。这样使得在本地磁盘I/O中衡量读写比变成了55/45。 然而由于对本地磁盘的读操作请求的数据会被本地OS的cache缓存,那么真正的读操作是由于cache miss引起的读操作的I/O量,这样使得读写比变成了36/64,写被进一步放大。    另外Figure 3从I/O数据传输中真正业务需求的数据大小来看各个层次、各个操作引起的I/O变化。除了上面说的,还发现了整个系统最终存储在磁盘上有大量的cold data(占2/3),所以需要支持hot/cold数据分开存储。 总的来说,HBase stack的logging/compaction/replication/caching会放大写I/O,导致业务逻辑上读为主导的HBase系统在地层实际磁盘I/O中写占据了主导。 FM系统的主要文件类型和大小   FM系统的几种文件类型如Table 2所示,这个是纯业务的逻辑描述。在HBase的每个RegionServer上的每个column family对应一个或者多个HFile文件。FM系统中有8个column family,由于每个column family存储的数据的类型和大小不一样,使得每个column family的读写比是不一样的。而且很少数据是读写都会请求的,所以cache all writes可能作用不大(Figure 4)。 对于每个column family的文件,90%是小于15M的。但是少量的特别大的文件会拉高column family的平均文件大小。例如MessageMeta这个column family的平均文件大小是293M。从这些文件的生命周期来看,大部分FM的数据存储在large,long-lived files,然而大部分文件却是small, … Continue reading "Facebook针对hbase的优化方案分析"

Face Recognition

Recognize and manipulate faces from Python or from the command line with the world’s simplest face recognition library. Built using dlib‘s state-of-the-art face recognition built with deep learning. The model has an accuracy of 99.38% on theLabeled Faces in the Wild benchmark. This also provides a simple face_recognition command line tool that lets you do face recognition on a … Continue reading "Face Recognition"