- 安装依赖的java环境
安装包版本:jdk-8u25-linux-x64.tar.gz
安装步骤:
#tar -zxvf jdk-8u25-linux-x64.tar.gz # cd jdk1.8.0_25/ # ll total 28812 drwxr-xr-x 2 10 143 4096 Sep 18 2014 bin -r--r--r-- 1 10 143 3244 Sep 18 2014 COPYRIGHT drwxr-xr-x 4 10 143 115 Sep 18 2014 db drwxr-xr-x 3 10 143 125 Sep 18 2014 include -rw-r--r-- 1 10 143 5025522 Sep 17 2014 javafx-src.zip drwxr-xr-x 5 10 143 4096 Sep 18 2014 jre drwxr-xr-x 5 10 143 4096 Sep 18 2014 lib -r--r--r-- 1 10 143 40 Sep 18 2014 LICENSE drwxr-xr-x 4 10 143 44 Sep 18 2014 man -r--r--r-- 1 10 143 159 Sep 18 2014 README.html -rw-r--r-- 1 10 143 525 Sep 18 2014 release -rw-r--r-- 1 10 143 21057306 Sep 18 2014 src.zip -rw-r--r-- 1 10 143 110114 Sep 17 2014 THIRDPARTYLICENSEREADME-JAVAFX.txt -r--r--r-- 1 10 143 178400 Sep 18 2014 THIRDPARTYLICENSEREADME.txt #mkdir –p /app/jdk #cp -r ../jdk1.8.0_25 /app/jdk #vim /etc/profile 在最后插入如下几行: export JAVA_HOME=/app/jdk/jdk1.8.0_25 export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/jre/lib/tools.jar # java -version java version "1.8.0_25" Java(TM) SE Runtime Environment (build 1.8.0_25-b17) Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode) #javac Usage: javac <options> <source files> where possible options include: -g Generate all debugging info -g:none Generate no debugging info -g:{lines,vars,source} Generate only some debugging info -nowarn Generate no warnings -verbose Output messages about what the compiler is doing -deprecation Output source locations where deprecated APIs are used -classpath <path> Specify where to find user class files and annotation processors -cp <path> Specify where to find user class files and annotation processors -sourcepath <path> Specify where to find input source files -bootclasspath <path> Override location of bootstrap class files -extdirs <dirs> Override location of installed extensions -endorseddirs <dirs> Override location of endorsed standards path -proc:{none,only} Control whether annotation processing and/or compilation is done. -processor <class1>[,<class2>,<class3>...] Names of the annotation processors to run; bypasses default discovery process -processorpath <path> Specify where to find annotation processors -parameters Generate metadata for reflection on method parameters -d <directory> Specify where to place generated class files -s <directory> Specify where to place generated source files -h <directory> Specify where to place generated native header files -implicit:{none,class} Specify whether or not to generate class files for implicitly referenced files -encoding <encoding> Specify character encoding used by source files -source <release> Provide source compatibility with specified release -target <release> Generate class files for specific VM version -profile <profile> Check that API used is available in the specified profile -version Version information -help Print a synopsis of standard options -Akey[=value] Options to pass to annotation processors -X Print a synopsis of nonstandard options -J<flag> Pass <flag> directly to the runtime system -Werror Terminate compilation if warnings occur @<filename> Read options and filenames from file |
配置成功。
- zookeeper安装配置
集群部署要求:至少三个节点以上且必须为奇数,每个节点必须部署在不同的机器;
集群环境安装:在三台server上搭建zookeeper集群
当前稳定版本:zookeeper-3.4.6.tar.gz
安装步骤:
# tar -zxvf zookeeper-3.4.6.tar.gz # cd zookeeper-3.4.6/ # ll total 1532 drwxr-xr-x 2 1000 1000 141 Feb 20 2014 bin -rw-rw-r-- 1 1000 1000 82446 Feb 20 2014 build.xml -rw-rw-r-- 1 1000 1000 80776 Feb 20 2014 CHANGES.txt drwxr-xr-x 2 1000 1000 74 Feb 20 2014 conf drwxr-xr-x 10 1000 1000 122 Feb 20 2014 contrib drwxr-xr-x 2 1000 1000 4096 Feb 20 2014 dist-maven drwxr-xr-x 6 1000 1000 4096 Feb 20 2014 docs -rw-rw-r-- 1 1000 1000 1953 Feb 20 2014 ivysettings.xml -rw-rw-r-- 1 1000 1000 3375 Feb 20 2014 ivy.xml drwxr-xr-x 4 1000 1000 4096 Feb 20 2014 lib -rw-rw-r-- 1 1000 1000 11358 Feb 20 2014 LICENSE.txt -rw-rw-r-- 1 1000 1000 170 Feb 20 2014 NOTICE.txt -rw-rw-r-- 1 1000 1000 1770 Feb 20 2014 README_packaging.txt -rw-rw-r-- 1 1000 1000 1585 Feb 20 2014 README.txt drwxr-xr-x 5 1000 1000 44 Feb 20 2014 recipes drwxr-xr-x 8 1000 1000 145 Feb 20 2014 src -rw-rw-r-- 1 1000 1000 1340305 Feb 20 2014 zookeeper-3.4.6.jar -rw-rw-r-- 1 1000 1000 836 Feb 20 2014 zookeeper-3.4.6.jar.asc -rw-rw-r-- 1 1000 1000 33 Feb 20 2014 zookeeper-3.4.6.jar.md5 -rw-rw-r-- 1 1000 1000 41 Feb 20 2014 zookeeper-3.4.6.jar.sha1
#mkdir -p /app/zookeeper/ #cp -r * /app/zookeeper/ #mkdir -p /app/zookeeper/data #mkdir -p /app/zookeeper/logs #cd /app/zookeeper/conf/ #cp zoo_sample.cfg zoo.cfg 修改配置参数,没有就添加: tickTime=2000 dataDir=/app/zookeeper/data logDir=/app/zookeeper/logs maxClientCnxns=60 clientPort=2181 maxClientCnxns=60 syncLimit=5 initLimit=10 autopurge.snapRetainCount=3 autopurge.purgeInterval=1 server.1=192.168.233.83:2888:3888 server.2=192.168.233.84:2888:3888 server.3=192.168.233.85:2888:3888 |
参数说明:
l clientPort zookeeper 监听端口
l dataDir 数据目录
l server.X=A:B:C 其中X是代表第几号Server,A为该Server 所在IP地址,B为Server间数据交换端口,C为leader 选举端口
l autopurge.snapRetainCount 保存快照或日志文件数
l autopurge.purgeInterval 清除数据时间间隔 单位小时
l maxClientCnxns单个客户端与单台服务器之间的连接数的限制,是ip级别的,默认是60,如果设置为0,
l initLimit Follower在启动过程中,会从Leader同步所有最新数据,然后确定自己能够对外服务的起始状态。Leader允许F在 initLimit时间内完成这个工作。通常情况下,我们不用太在意这个参数的设置。如果ZK集群的数据量确实很大了,F在启动的时候,从Leader上同步数据的时间也会相应变长,因此在这种情况下,有必要适当调大这个参数了。
l syncLimit在运行过程中,Leader负责与ZK集群中所有机器进行通信,例如通过一些心跳检测机制,来检测机器的存活状态。如果L发出心跳包在syncLimit之后,还没有从F那里收到响应,那么就认为这个F已经不在线了。注意:不要把这个参数设置得过大,否则可能会掩盖一些问题。
在该Server 的data 目录新增myid文件,文件内容为相应ID,该ID 就是在zoo.cfg 中配置的X值,如按当前zoo.cfg 配置,设置myid 分别在zoo1、zoo2和zoo3执行
echo "1" > /app/zookeeper/data/myid echo "2" >/app/zookeeper/data/myid echo "3" > /app/zookeeper/data/myid |
启动停止Server
不使用monit 监控启动bin/zkServer.sh start
不使用monit 监控停止bin/zkServer.sh stop
见monit 监控说明,建议通过monit 监控启动与停止
目录说明:
目录 |
功能 |
/app/zookeeper |
zookeeper程序的安装与运行目录 |
/app/tmp |
临时目录,用于存放上传到服务器的安装程序等 |
/app/ zookeeper/conf |
zookeeper配置文件存放目录 |
/app/ zookeeper/lib |
zookeeper依赖的lib包存放目录 |
/app/ zookeeper/contrib |
zookeeper |
/app/ zookeeper/bin |
zookeeper命令安装目录 |
/app/zookeeper/data |
Zookeeper存储快照文件snapshot的目录 |
/app/zookeeper/logs |
Zookeeper运行日志存放目录 |
ZooKeeper服务命令
•1. 启动ZK服务: sh bin/zkServer.sh start
•2. 查看ZK服务状态: sh bin/zkServer.sh status
•3. 停止ZK服务: sh bin/zkServer.sh stop
•4. 重启ZK服务: sh bin/zkServer.sh restart
zk客户端命令
•1. 显示根目录下、文件: ls / 使用 ls 命令来查看当前 ZooKeeper 中所包含的内容
•2. 显示根目录下、文件: ls2 / 查看当前节点数据并能看到更新次数等数据
•3. 创建文件,并设置初始内容: create /zk "test" 创建一个新的 znode节点“ zk ”以及与它关联的字符串
•4. 获取文件内容: get /zk 确认 znode 是否包含我们所创建的字符串
•5. 修改文件内容: set /zk "zkbak" 对 zk 所关联的字符串进行设置
•6. 删除文件: delete /zk 将刚才创建的 znode 删除
•7. 退出客户端: quit
•8. 帮助命令: help
- kafka集群安装配置
集群部署要求:3个节点,每个节点必须部署在不同机器.
下载当前kafka 最新稳定版本kafka_2.9.2-0.8.1.1.tgz
#tar -zxvf kafka_2.9.2-0.8.1.1.tgz # cd kafka_2.9.2-0.8.1.1/ # mkdir -p /app/kafka # cp -r * /app/kafka/ # cd /app/kafka/config/ #mkdir –p /app/kafka/logs # vim server.properties 修改配置参数: broker.id=0 listeners=PLAINTEXT://192.168.233.10:9092 num.network.threads=2 num.io.threads=8 socket.send.buffer.bytes=1048576 socket.receive.buffer.bytes=1048576 socket.request.max.bytes=104857600 log.dirs=/app/kafka/logs num.partitions=2 log.retention.hours=168 log.retention.bytes=1073741824 log.segment.bytes=536870912 log.retention.check.interval.ms=60000 log.cleaner.enable=false auto.leader.rebalance.enable=true auto.create.topics.enable=false zookeeper.connect=192.168.233.83:2181, 192.168.233.84:2181, 192.168.233.85:2181 zookeeper.connection.timeout.ms=1000000 |
参数说明:
l broker.id 唯一ID 为非负数字,用于区分broker节点
l port kafka Server监听端口
l host.name 服务器IP
l log.dirs kafka 数据文件存储路径
l zookeeper.connect zookeeper 地址,尾部/kafka/ta用于多kafka 集群共享zookeeper,用该路径区分不同kafka 集群
l auto.leader.rebalance.enable true自动平衡主节点
l auto.create.topics.enable false 不允许在未创建topic 之前写入消息
启动停止server
1) 不使用monit 监控启动:
./bin/kafka-server-start.sh -daemon config/server.properties
不使用monit 监控启动:./bin/kafka-server-stop.sh
monit 监控说明,建议通过monit 监控启动与停止kafka
目录结构说明
目录 |
功能 |
/app/kafka |
kafka程序的安装与运行目录 |
/app/tmp |
临时目录,用于存放上传到服务器的安装程序等 |
/app/kafka/conf |
Kafka配置文件存放目录 |
/app/kafka/libs |
Kafka 依赖的lib包存放目录 |
/app/kafka/logs |
kafka日志文件存放目录 |
/app/kafka/bin |
Kafka命令安装目录 |
/app/kafka/data_logs |
Kafka数据文件存放目录 |
创建和查看主题命令
bin/kafka-topics.sh --create --zookeeper zoo1:2181 --replication-factor 3 --partitions 1 --topic mytest
>bin/kafka-topics.sh --list --zookeeper zoo1:2181
>bin/kafka-topics.sh --describe --zookeeper zoo1:2181 --topic page_ mytest
注意,按照上面的方法搭建完成后,zookeeper的日志都会保存在zookeeper.out这个文件中,这个文件会很大且不得于日志查阅和分析,于是参照网上的方法将日志重定向,方法如下:
1. 修改conf/log4j.properties
zookeeper.root.logger=INFO, ROLLINGFILE
zookeeper.console.threshold=INFO
zookeeper.log.dir=.
zookeeper.log.file=zookeeper.log
zookeeper.log.threshold=DEBUG
zookeeper.tracelog.dir=.
zookeeper.tracelog.file=zookeeper_trace.log
log4j.rootLogger=${zookeeper.root.logger}
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=${zookeeper.console.threshold}
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} [myid:%X{myid}] - %-5p [%t:%C{1}@%L] - %m%n
log4j.appender.ROLLINGFILE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.ROLLINGFILE.Threshold=${zookeeper.log.threshold}
log4j.appender.ROLLINGFILE.File=${zookeeper.log.dir}/${zookeeper.log.file}
log4j.appender.ROLLINGFILE.MaxFileSize=10MB
log4j.appender.ROLLINGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.ROLLINGFILE.layout.ConversionPattern=%d{ISO8601} [myid:%X{myid}] - %-5p [%t:%C{1}@%L] - %m%n
log4j.appender.TRACEFILE=org.apache.log4j.FileAppender
log4j.appender.TRACEFILE.Threshold=TRACE
log4j.appender.TRACEFILE.File=${zookeeper.tracelog.dir}/${zookeeper.tracelog.file}
log4j.appender.TRACEFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.TRACEFILE.layout.ConversionPattern=%d{ISO8601} [myid:%X{myid}] - %-5p [%t:%C{1}@%L][%x] - %m%n
2. 还需要改${zkhome}/bin/zkEnv.sh, 请留意红色加粗处, 这时日志已经可以成功按照你设置的目录进行输出了
if [ "x${ZOO_LOG_DIR}" = "x" ]
then
ZOO_LOG_DIR="/app/zookeeper/logs"
fi
if [ "x${ZOO_LOG4J_PROP}" = "x" ]
then
ZOO_LOG4J_PROP="INFO,ROLLINGFILE"
fi