ElasticSearch单机双实例的配置方法

从ElasticSearch官方的多份文档中可以看到,官方并不建议部署ES时为实例指定超过32GB的内存,但是现在内存的价格非常便宜,一台实体机服务器仅用32G内存显然是非常浪费的。所以我们要尝试在一个服务器上开多个ES实例,以便达到充分利用资源的目的。本文提供了一些ES单机双实例的配置要点,可扩展至单机多实例,供大家来实际参考。

Kibana 3无法连接到elasticsearch

最近准备升级下使用了很久的ELK组合,将kibana从3代升级到4代,将elasticsearch从1.3升级到1.5。升级完了一看,Kibana 4现在问题真的很多啊,功能是强大了,但是易用性也下降了,而且也不兼容Kibana 3的配置数据。没辙,只能把Kibana 4给降级回去。但是一降级,却发现Kibana不好使了,页面一直显示

“Error Could not contact Elasticsearch at http://elasticsearch.host:9200. Please ensure that Elasticsearch is reachable from your system.”

Kibana不明原因地连接不到elasticsearch了。

pg_dump命令不输入密码

最近需要写个简单的脚本进行Postgresql数据库的定时备份,这才发现pg_dump命令必须交互式地输入密码。于是开始在网上找下解决方案,找到了以下两种方案:

1.使用export命令设置环境变量,将数据库密码赋值给PGPASSWORD

export PGPASSWORD="$put_here_the_password"

2.在用户主目录下创建一个.pgpass文件,将数据库用户名密码信息配置写入其中

localhost:5432:mydbname:postgres:mypass

随后将该文件设置权限为600即可(否则可能不会生效)。

使用以上两种方法,都可以让需要使用密码的命令不再需要交互式地输入密码。

参考:

http://www.postgresql.org/docs/current/static/libpq-pgpass.html

Cloudera Manager配置hiveserver2使用udf

hiveserver2为hive的调用提供了很多的便利,但遗憾的是hiveserver2并没有提供什么便利的方法来直接使用我们编写的udf,对此如果使用hiveserver2来调用udf前,我们需要先进行一些配置。本文中的配置方法适合于使用CDH4的用户。

Powershell:简单实现并行任务的脚本

近期需要向上千台服务器安装程序,发送命令,虽然已经将这些服务器分了几十个组,并在每一组中选择一台安装批量部署程序作为中心节点,向该组内服务器发送文件或命令,但我在本地用传统的方式串行地向各组的中心节点发送命令并等待返回结果,仍然浪费了不少时间。看起来,部署规模大了,使用串行实在是有些忙不过来了。于是我开始尝试powershell的并行任务实现方法。

Docker使用dnsmasq替代/etc/hosts解析

docker目前没有办法直接修改容器中的/etc/hosts文件,如果要修改就会报出权限不足的警告,对此引发了很多的讨论。目前来看,要想彻底解决这个问题,只有等官方未来的解决方案了,但是目前我们可以用dnsmasq来解决本地的解析问题。

搭建自己的docker registry

平时我们使用的docker镜像都来自官方的docker index,由于国内连接docker官网速度太慢,而且有些包含自己代码的镜像也不好直接放到docker官网上,这个时候就需要考虑自己搭建一个docker index的源了。docker官方提供了docker registry这个工具,用于自建docker index,可在本地网络环境中保存和分享docker image,非常适合于公司内部进行docker的推广和使用。本文记录了安装docker registry的过程,作为一个笔记供大家参考吧。

docker随手记

试用了两天docker,感觉真的不错,顿时就有把自己的所有程序都容器化了的想法。现在docker火的不得了,网上的讨论非常多,但docker毕竟是个新事物,想要PK vm多年的历史经验还有很长的路。以下是一些最近使用docker时遇到的问题的总结,当一个cheat sheet放着吧。

gpg使用外部密钥解密(不导入私钥和公钥)

使用gpg解密文件的常规做法是先导入自己的私钥和公钥,然后再用以下命令来解密:

gpg -o outputfile -d encryptfile

这种做法其实不很安全,当你在别人的机器上需要解密时怎么做?如果解密完成后忘记使用 gpg —delete-secret-keys 来删除密钥的话就可能会带来麻烦了。如果你习惯于在自己的U盘中或其他介质中携带自己的密钥,那么当你在其他电脑上需要解密的时候就需要用到以下的方法了: (windows下)如果你将自己的私钥secring.skr和公钥pubring.pkr放置于U盘根目录下,U盘插入电脑后盘符为F:,则可以这样来解密:

gpg --secret-keyring F:\secring.skr --keyring F:\pubring.pkr -o outputfile -d encryptfile

参数—secret-keyring和—keyring分别对应外部的私钥和公钥,这样就可以不必导入私钥和公钥就可以来解密文件了。

Lftp put: Access failed: 521 Data connections must be encrypted的解决方案

最近使用lftp工具通过ftps协议来传输数据,可以成功登录但传输文件时却会爆出如下的错误:

Lftp put: Access failed: 521 Data connections must be encrypted.

出现这样的问题是由于lftp需要通过配置才能用于传输ftps的数据。解决这个问题的方法很简单,在当前用户的主目录下的.lftp目录中创建rc文件,如:

/root/.lftp/rc

在该文件中写入以下配置项即可:

set ftp:ssl-protect-data true

当然也可以修改使用lftp的脚本,加上这条命令,如:

lftp -u user ftp.test.com -e “set ftp:ssl-protect-data true;put -a file;exit”