1.环境依赖
storm需要java和Python
部署依赖环境 --- 要求Java 6+ 、Python 2.6.6+
java,python安装配置完成
2.zookeeper安装配置
1. 解压 tar -zxvf
2.创建目录 zk根目录创建
mkdir zkdatalog --日志
mkdir zkdata ---快照文件
3.修改配置文件:cp zoo_sample.cfg zoo.cfg
添加如下内容
dataDir=/app/zookeeper-3.4.6/zkdata
dataLogDir=app/zookeeper-3.4.6/zkdatalog
server.1=192.168.3.91:12888:13888
server.2=192.168.3.92:12888:13888
server.3=192.168.3.93:12888:13888
4.zkdata目录创建文件
echo "1" >> myid
复制到其他机器上:scp -r /app/zookeeper-3.4.6 root@192.168.3.93:/app/
修改myid文件和server. 保持一致
5.启动 所有 ./zkServer.sh start
带日志的启动---- ./zkServer.sh start-foreground
6.启动zk客户端bin
./zkCli.sh -server localhost:12181
错误如下:你就要换一个端口了 lsof -i:2181
java.net.BindException: Address already in use
----查看端口是否被占用
#关闭防火墙
service iptables stop
chkconfig iptables off
启动客户端测试
启动命令:
bin/zkCli.sh -server 127.0.0.1:12181
显示根目录下、文件:
ls /
创建文件,并设置初始内容:
create /shenjian hello
获取文件内容:
get /shenjian
修改文件内容:
set /shenjian world
删除文件:
delete /shenjian
退出客户端:
quit
3.flume安装
1. 解压 tar -zxvf
2.配置
拷贝配置文件 :cp flume-conf.properties.template flume-conf.properties
cp flume-env.sh.template flume-env.sh
2.1:配置:vi flume-env.sh
export JAVA_HOME=/app/jdk1.7.0_67
2.2 配置:vim flume-conf.properties
CTRL+V 多行注释 然后粘贴 如下内容
# example.conf: A single-node Flume configuration
# Name the components on this agent
a1.sources = r1
a1.sinks = k1
a1.channels = c1
# Describe/configure the source
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444
# Describe the sink
a1.sinks.k1.type = logger
# Use a channel which buffers events in memory
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
# Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
2.3.启动
$ bin/flume-ng agent --conf conf --conf-file conf/flume-conf.properties --name a1 -Dflume.root.logger=INFO,console
4.测试
$ telnet localhost 44444
查看端口接收到的数据
tcpdump -i em1 -nn -X 'port 52399'
4.kafka安装
1. 解压 tar -zxvf
2.配置/app/kafka_2.9.2-0.8.1.1/config/server.properties
#标识--
broker.id=0
#地址--
host.name=192.168.3.1
#持久化--(多个用逗号分开)多个路径代表多个分区
log.dirs=/app/kafka_2.9.2-0.8.1.1/kafkaLogs
#线程--
num.io.threads=8(要大于日志目录数)
#每个topic数据持久化分区数--
num.partitions=2
#zk地址--zookeeper.connect=192.168.3.91:12181,192.168.3.92:12181,192.168.3.92:12181
#zookeeper连接超时时间
zookeeper.connection.timeout.ms=1000000
#下面是缓存的设置,多大发送
socket.send.buffer.bytes=1048576
socket.receive.buffer.bytes=1048576
socket.request.max.bytes=104857600
#kafka消息失效期。小时
log.retention.hours=168
#消息最大byte
message.max.byte=1048576
#默认的消息副本
default.replication.factor=2
#取消息的最大字节数
replica.fetch.max.bytes=1048576
#持久化文件的最大byte,超过新起一个文件
log.segment.bytes=536870912
#消息失效时间
log.retention.check.interval.ms=60000
#日志压缩,,,听说很傻,不用开启
log.cleaner.enable=false
3.启动 在/app/kafka_2.9.2-0.8.1.1/bin
./kafka-server-start.sh -daemon ../config/server.properties
jps 有kafka进程
4验证bin目录
#创建topic。。。
--replication-factor 2(备份)
--partitions 1(分区)
> ./kafka-topics.sh --create --zookeeper localhost:12181 --replication-factor 1 --partitions 1 --topic test
#查看topic
./kafka-topics.sh --list --zookeeper localhost:12181
./kafka-topics.sh --describe --zookeeper localhost:12181 --topic test
#模拟生产者
./kafka-console-producer.sh --broker-list 192.168.3.91:19092 --topic test
#模拟消费者
> ./kafka-console-consumer.sh --zookeeper localhost:12181 --topic test --from-beginning
--如下错误
Failed to send messages after 3 tries
vim /etc/hosts
192.168.3.91 wchb01
192.168.3.92 wchb02
192.168.3.93 wchb03
立刻生效,运行source /etc/hosts
5.storm安装
1.解压
apache-storm-0.9.3.tar.gz
2.修改配置文件
conf/storm.yaml
--zk地址
storm.zookeeper.servers:
- "wchb01"
- "wchb02"
- "wchb03"
--配置zk端口
storm.zookeeper.port: 12181
--nimbus配置
nimbus.host: "wchb01"
--storm状态目录
storm.local.dir: "/usr/wchb/storm/status"
--工作节点上的进程端口,每多配置一个端口,工作节点上就可以多启动一个worker
supervisor.slots.ports:
- 6700
- 6701
- 6702
- 6703
3.storm的环境变量配置
命令:vim /etc/profile
export STORM_HOME=/app/apache-storm-0.9.3
exprot PATH=$STORM_HOME/bin:$PATH
--使配置生效
. /etc/profile
4.启动
--启动ui
storm ui >/dev/null 2>&1 &
--启动nimbus
storm nimbus >/dev/null 2>&1 &
--启动从节点
storm supervisor >/dev/null 2>&1 &