这篇文章主要记录一下CentOS 7.1下安装配置Elasticsearch和Storm。
安装Oracle JDK,这个可以参照我之前写的文章。
安装Elasticsearch
到https://www.elastic.co/downloads/elasticsearch下载Elasticsearch,最新版本是2.3.1。解压之后放到/opt目录下面。命令为:
现在,可在elasticsearch的bin目录下运行elasticsearch。我的目录为/opt/elasticsearch-2.3.1/bin;不要使用root用户启动elasticsearch。
对于elasticsearch的配置,可以在/opt/elasticsearch-2.3.1/config下修改elasticsearch.yml文件。
接下来安装elasticsearch-head,这个是elasticsearch集群的管理工具。在elasticsearch的目录下运行如下命令即可:
安装Marvel
因为众所周知的原因,在这里只能采用离线安装Marvel等相关插件。
首先,下载相关的安装文件,命令如下:
因为后面要用到kibana,所以先在这里安装kibana,官网上有相关安装教程:https://www.elastic.co/guide/en/kibana/current/setup.html。我还是把kibana安装在/opt目录下面,具体安装步骤就不说了。
接下来开始安装Marvel。
运行elasticsearch,再运行kibana,可以再看一下elasticsearch的状态,有一些变化了。
接下来安装Storm,这个比较复杂,容易遇到各种问题,要有耐心。
安装zookeeper
我选择的版本是zookeeper-3.4.8。解压放到/opt目录下:命令如下:
定位到conf目录下,将zoo_sample.cfg文件更名为zoo.cfg文件,然后进行配置。我在Documents文件夹下,建了一个zookeeper文件夹,再分别建了data和logs文件夹。后面配置要用到。在zoo.cfg配置文件中配置一下dataDir和dataLogDir的位置。我的如下所示:
运行zookeeper进程的命令如下:./zkServer.sh start
可用客户端连接服务器:./zkCli.sh -server zookeeper:2181
停止zookeeper进程的命令如下:./zkServer.sh stop
安装zeromq
在/home/hiccup/Downloads/zeromq-4.1.4目录下编译安装:
首先运行autogen.sh这个脚本,第一次./configure的时候,会出现如下的问题:
在configure之前,要编译安装libsodium,这是一个加密库。可在https://download.libsodium.org/libsodium/releases/下载该库文件,然后进行编译安装。
安装完成之后,在zeromq目录下执行如下命令,注意其中的参数:
其中的PKG_CONFIG_PATH中的路径是libsodium的路径。可以用whereis libsodium查看一下。
然后接着
安装JZMQ
下载:
定位到jzmq/jzmq-jni目录下。然后执行如下命令:
可能会出现如下错误:
解决方法如下:
找到安装的jdk所在目录,我本地jdk所在位置为/opt/jdk1.8.0_77。输入如下几个命令:
再次运行如下命令即可:
安装lein
将https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein链接下的内容保存为lein文件,将lein文件移到/usr/bin/目录下。
安装Storm
我这里安装的是最新版apache-storm-1.0.0
解压缩之后,移到到/opt目录下面。在/opt/apache-storm-1.0.0/conf下配置storm.yaml文件。因为暂时在单机伪storm集群运行,所有配置如下:(集群配置后续补充上来)
######### These MUST be filled in for a storm configuration
storm.zookeeper.servers:
- "localhost"
# - "server2"
#
nimbus.host: "localhost"
# nimbus.seeds: ["host1", "host2", "host3"]
#
#
storm.local.dir: "/home/smurf/storm"
接下来运行storm的一些命令:
通过http://localhost:8080/可以直接访问Storm UI。如下图所示:
干掉nimbus相关进程:
kill `ps aux | egrep '(daemon\.nimbus)|(storm\.ui\.core)' | fgrep -v egrep | awk '{print $2}'`
干掉supervisor上所有storm进程:
kill `ps aux | fgrep storm | fgrep -v 'fgrep' | awk '{print $2}'`
这样,基本是就安装好了。
注意,在这里启动elasticsearch之后,会发现本机可以访问,局域网中的其他机器没法访问。因为是CentOS,所有可以在终端执行iptables –F。然后就可以在局域网中其他机器访问elasticsearch所在的机器了。