服务器环境(自学)
- - 内存 – 2GB (推荐4GB+)
- - 硬盘 – 100GB
- - 操作系统 – ubuntu 16.x.x LTS
软件:
- JDK 1.8+ - www.oracle.com/technetwork…
- Python (操作系统自带)
- Zookeeper 3.4.12 - www.apache.org/dyn/closer.…
- Storm 1.2.2 - storm.apache.org/downloads.h…
命令行:
- 文件操作: cp, mv, rm, mkdir,tar, cd, ls
- 文件权限: chown, chgrp, chmod
- 文本编辑: vi
- 网络操作: wget,curl
- 其他: sudo,apt-get,kill,jobs,nohup,ps,ifconfig
安装说明:
一、JDK安装
安装之前我计划把所有的相关软件都装入/opt目录下,当然这里有人会质疑为什么不用OpenJDK 或者用apt-get install直接。我的想法很简单,就是想把这些软件统一管理起来,用apt-get install经常让我摸不清它装在哪里,变更的什么东西。当然用apt-get install也有好处,例如JDK应该是所有用户共享的。当然我们通过手动方式也能实现。还有装在/opt不一定是个好主意,推荐装在/usr/share. 言归正传, 下面简单介绍安装过程
1. sudo cp JDK压缩文件到目标文件夹/opt下,如果你是root超级管理员,去掉sudo,里面类同。
2. sudo tar -xzvf JDK压缩文件
3. 重命名解压缩后JDK文件夹为java – sudo mv JDK压缩文件 java
4. 检查所属文件用户和用户组 – ll
5. 如果java文件夹所属目录为root并且当前你所使用账号为非root,请使用如下命令变更用户和用户组- sudo chown -R 用户 java/ 和 sudo chgrp -R 用户组 java/
之所以这么做,是因为storm,zookeeper, java 需要在相同用户权限下工作,不然例如系统环境变量无法共享,导致例如zookeeper或者storm启动时,经常报java:command not found 这样的错误
6. 设置读写执行权限 – sudo chmod -R 775 java/
7. 配置环境变量
- cd /etc
- sudo vi profile
- source ./profile
8. 检查JDK是否安装成功 – java
一、Zookeeper 安装
在这里我模拟真实的集群环境,通过设置不同的端口,构建了伪的三节点集群。但是发现storm只支持相同端口的zookeeper集群,实际也只是用到其中一个节点而已。目前没有找到解决方法。这里我还是会按照集群构建来介绍
1. 在/opt下新建目录zookeeper – sudo mkdir zookeeper
2. 拷贝zookeeper压缩文件到/opt目录下
3. 解压缩zookeeper文件
4. 拷贝解压缩的所有文件,并复制到zookeeper下1, 2, 3三个目录
5. 如果zookeeper文件夹所属目录为root并且当前你所使用账号为非root,请使用如下命令变更用户和用户组- sudo chown -R 用户 zookeeper/ 和 sudo chgrp -R 用户组 zookeeper/
之所以这么做,是因为storm,zookeeper, java 需要在相同用户权限下工作,不然例如系统环境变量无法共享,导致例如zookeeper或者storm启动时,经常报java:command not found 这样的错误。细心的朋友发现我在上面并没有给zookeeper修改用户和用户组,那么另外的方法是zkEnv.sh 头上添加’JAVA_HOME=”/opt/java”’. ZkEnv.sh可以在zookeeper的bin目录下找到
6. 设置读写执行权限 – sudo chmod -R 775 zookeeper/
7. 为zookeeper 新建数据存储目录,这里我把它放置在/data目录下并分别在data目录下的zookeeper目录中新建了1,2,3 三个文件目录对应zookeeper三个节点。在这三个目录里新建myid文件并分别赋予1, 2,3 数字文本
8. 打开zookeeper的conf目录下的zoo.cfg 文件,安装时候没有,请拷贝zoo.cfg.sample 文件并重命名为zoo.cfg. 然后用vi打开编辑
- 设置数据存储目录
- 设置zookeeper 服务端口, 对应节点1为2181,那么节点二就应该是2182,以此类推。真实的服务集群必须统一端口,因为伪集群在同一台服务器上,故只能错开端口设置来实现
- 设置node 地址跟端口 , 如果是真实集群,请使用真实公网ip,不然zookeeper会互相找不到节点
9. 启动zookeeper节点 - ./bin/zkServer.sh start
一、Storm 安装
正常情况下,我们需要安装Storm UI, Numbis 跟 Supervisor 节点, Storm UI 和 Numbis 需要在同一个服务器上,而Supervisor正常应给在其他服务器上部署。 这里都搭建在同一台服务器。
1. 拷贝storm压缩文件到/opt目录下
2. 解压缩storm文件
3. 如果storm文件夹所属目录为root并且当前你所使用账号为非root,请使用如下命令变更用户和用户组- sudo chown -R 用户 storm/ 和 sudo chgrp -R 用户组 storm /
如果你在启动时候发现storm 报 Failed to create file or directory: /opt/xxx/logs, 那么就说明你工作目录权限没有设对
4. 在/data目录下新建storm 临时数据存储目录 /storm
5. 打开storm的配置文件conf/storm.yaml,修改配置文件
- 指定zookeeper server
, 真实应该使用公网ip地址。
- 如果有端口需要,修改storm.zookeeper.port选项,默认为2181
- 指定UI 站点端口,默认8888
- 指定数据存储目录,
, 记住数据存储目录需要有storm相同的目录访问权限
- 指定日志存储目录,如果有需要的话
- 设置work节点
6. 设置系统环境变量
7. 启动UI
nohup storm ui >/dev/null 2>&1 &复制代码
8. 启动 Numbis
nohup storm nimbus >/dev/null 2>&1 &复制代码
9. 启动 Supervisor
nohup storm supervisor >/dev/null 2>&1 &复制代码
博客引用声明(大神之作):