我的Linux命令行艺术

命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#临时http服务器
python -m SimpleHTTPServer 7777 #python2
python -m http.server 7777 #python3
mtr --report ip #检查网络路由情况
uniq -u #(只显示不重复的行 -d(只显示重复的行)
rpm -qf <文件名> #查看命令在哪个rpm包
rpm -qa #查看所有安装的包
netstat -lntp #检查端口监听情况
#通过使用 <(some command) 可以将输出视为文件。例如
diff /etc/hosts <(ssh somehost cat /etc/hosts)
if [[ ]], 中>, <, =, >=, <=会把两边当会字符串处理
而-gt, -lt, -eq, -ge, -le则把两边当数字。
Read more »

Hadoop环境配置

环境配置

安装比较简单,从官网下载下来,解压好,配置好在.bashrc中配置好JAVA_HOME并添加执行目录。以下是测试环境参数

1
2
export JAVA_HOME=/usr/lib/jvm/java-1.8.0
export PATH=$PATH:/data/servers/hadoop/hadoop-2.8.0/bin

建一个目录作为Hadoop数据的主目录, 并添加几个目录,并确保目录可写可读

1
2
3
4
mkdir hadoop
mkdir hadoop/hdfs
mkdir hadoop/tmp
mkdir hadoop/hdfs/name hadoop/hdfs/data
Read more »

ELK安装配置

安装

安装很简单,从官网下载解压即可使用
地址: https://www.elastic.co/downloads
主要安装 Elasticsearch、Kibana、Logstash
安装x-pack

1
2
3
4
#在elasticsearch目录下运行
./bin/elasticsearch-plugin install x-park
#在Kibana目录下运行
./bin/kibana-plugin install x-pack

Read more »

VirtualBox NAT 端口映射

VirtualBox NAT 端口映射

虚拟机网络配置下方有Port Forwarding, 加入(vb的nat默认都是2.15)

name protocol Host IP Host Port Guest IP Guest Port
ssh tcp 127.0.0.1 2222 10.0.2.15 22
web tcp 127.0.0.1 2080 10.0.2.15 80
es tcp 127.0.0.1 9200 10.0.2.15 9200
kiban tcp 127.0.0.1 5601 10.0.2.15 80
Read more »

QQ邮箱操作模拟

在此输入正文
项目需要一用程序操作QQ邮箱执行一些操作,现用python实现一套QQ邮箱的操作接口。

登录

通过模拟mail.qq.com登录的http请求,来实现登录操作,主要是获取登录操作所需要的SID,也就是session id. 这个步骤是最关键的,过程也比较复杂, 下面一一道来。

Read more »

Mongodb插入及更新速度优化

继续之前的数据导入流程的优化,最后的Mongodb导入部分成为了最大的瓶颈。在我们的测试机中upsert操作有2-3k/s的更新速度,而到线上,访问机器和服务机器不是同一台时,速度只剩下1.5k/s,完全不能满足更新的要求。只好再研究研究Mongo的性能及优化。

Read more »

Use Mongo C Driver To Upsert Data.

https://github.com/astraylinux/study/tree/master/tools/mongo_c

Recently, I have tried to optimize a python module which accepts json string from redis-server and update-insert to Mongodb. The performance of pymongo is terrible, and because of the GIL, I even can’t improve the performance through multi thread. So, I try to figure out by use C language.

The Mongodb development library of ‘C’ is mongo-c-driver. Install it.

In ‘mongo-c-driver’, the main data structure is not ‘json’, It uses ‘Bson’(libbson) to instead. If you want to study libbson through the doc, you could use the command ‘yelp’ to open it(If you are using a Linux with GUI) or covert the Mallard to Html.

Read more »

数据导入流程优化

这两天在优化我们一套数据导入流程, 记录下优化过程中的问题和解决办法.
这套导入流程结构是这样的
流程说明:

  1. 首先用户通过提供的接口,将数据处理,加密,base64编码,urlencode,最后向服务端Post数据.
  2. 服务端使用PHP接收用户数据,解密.
  3. PHP将json数据插入指定的redis队列.
  4. 最后单项目数据导入程序,将redis队列数据取出并导入mongodb.
    Read more »