Linux下安装jdk、tomcat、zookeeper、kafka

1 linux环境下jdk安装步骤

1、下载jdk     官网下载地址:jdk-8u201-linux-x64-demos.tar.gz 

2 、检查当前系统是否已经安装了openJDK,如果已经安装,则将其卸载。

      检查openJDK是否安装命令:rpm -qa|grep jdk

      

      卸载命令(上面红方框中的四项均被卸载):

  •     yum -y remove  java-1.7.0-openjdk-headless-1.7.0.191-2.6.15.5.el7.x86_64
  •     yum -y remove java-1.8.0-openjdk-headless-1.8.0.181-7.b13.el7.x86_64

3、进入目录 :  cd /usr/local   ,创建java安装目录:mkdir  java

4、解压安装包到 /usr/local/java目录: tar -zxvf  jdk-8u201-linux-x64.tar.gz

5、配置jdk环境变量:

    退出到根目录,编辑/etc/下的profile文件: vim /etc/profile

    在文件末尾添加如下配置(标红色路径为jdk解压路径,根据实际情况配置):

       export JAVA_HOME=/usr/local/java/jdk1.8.0_201
       export JRE_HOME=${JAVA_HOME}/jre
       export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
       export PATH=${JAVA_HOME}/bin:$PATH

   保存配置文件退出(vi编辑器使用自备),按esc返回键停止输入,输入退出命令::wq!

6、使/etc/profile生效  :source /etc/profile

7、测试jdk安装是否成功,命令:  java -version

      

 

2 Linux环境下安装Tomcat

2.1 安装tomcat

Tomcat是用java语言开发的经典产品,所以要在JVM的基础上运行, 前提是 安装好 jdk【linux环境下jdk安装步骤

1、下载tomcat包,官网选择tar.gz(https://tomcat.apache.org/download-80.cgi)包下载即可。

2、将tar包放入linux指定目录下:/opt/

      解压tar包:tar zxvf apache-tomcat-8.5.47.tar

3、启动tomcat,执行tomcat的bin目录下startup.sh中的启动命令 :  ./opt/apache-tomcat-8.5.47/bin/startup.sh

      Linux下安装jdk、tomcat、zookeeper、kafka_第1张图片

 4、下放tomcat默认的8080端口,并使其生效。Linux默认打开防火墙,端口对外不开放,所以只能本机访问自身的端口,其他主机不能访问该端口。

      

5、验证tomcat是否启动成功,在其他主机的浏览器里输入:http://192.168.88.133:8080/

      出现如下界面表示启动成功:

      Linux下安装jdk、tomcat、zookeeper、kafka_第2张图片

7、部署项目:将多个项目放入正在运行的tomcat的webapps目录下,项目war包可自动解压并启动运行。

8、访问项目:ip:8080/项目1/        ip:8080/项目2/

     以上是仅仅在linux下部署一个tomcat,使用的都是默认的端口配置,当同一个linux环境下部署多个tomcat时,肯定会发生冲突,只能启动某一个tomcat,即使修改了其他tomcat的默认端口号,其他的tomcat仍旧启动不了,应该如何修改配置。

2.2 一个linux同时运行多个tomcat

    在上面安装的基础上,在opt目录下再复制一个tomcat包,两个包分别命名为tomcat1和tomcat2,并修改两个tomcat的配置。

修改tomcat1的server.xml配置

1、修改Server prot 默认为8005  =》 修改为8001

       "8001" shutdown="SHUTDOWN">

2、修改Connector port HTTP/1.1  默认为8080  =》修改为18081

     "18081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

3、修改Connector port AJP/1.3 默认为8009 =》 修改为18011

    "18011" protocol="AJP/1.3" redirectPort="8443" />

 同理修改tomcat1的server.xml配置,将端口分别改为:8002、18082、18012

按照上面的方法分别启动tomcat,并用防火墙下发对应的18081、18082访问端口。

用其他主机浏览器访问这两个tomcat: http://ip:18081   http://ip:18082 

到这里,我的linux系统就可以同时成功运行多个tomcat了,如果访问不成功运行失败,可参考更全的配置修改方法

 

3.Linux环境下zookeeper安装步骤

3.1 安装条件

安装zookeeper(后面简称zk),必须先在linux中安装好jdk,可参考: linux环境下jdk安装步骤

下载zookeeper安装包:http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.14/

或csdn下载:https://download.csdn.net/download/csdn_terence/11037454

3.2 安装步骤

3.2.1 安装到指定目录

1. linux环境中进入/usr/local/目录: cd /usr/local

2.将zk安装包移动此目录下,并解压: tar -zxvf zookeeper-3.4.14.tar.gz

3.2.2 编辑配置文件

1.进入conf目录:cd zookeeper-3.4.14/conf

2. 将zoo_sample.cfg这个文件复制为zoo.cfg (必须是这个文件名):cp zoo_sample.cfg zoo.cfg

3. 编辑zoo.cfg:vim zoo.cfg ,修改以下内容:

  • dataDir=/tmp/zookeeper/data
    dataLogDir=/tmp/zookeeper/log

   注意:如果想配置集群的话,请在clientPort下面添加服务器的ip。如:

  1.         server.1=192.168.174.130:2888:3888

            server.2=192.168.174.152:2888:3888

    如果电脑内存比较小,zookeeper还可以设置成伪集群。也就是全部服务器采用同一个ip,但是使用不同的端口。

4. 在tmp目录创建目录:mkdir /tmp/zookeeper

    创建数据data目录:mkdir /tmp/zookeeper/data

    创建日志目录: mkdir /tmp/zookeeper/log

5.如果是配置集群,还需要在前面配置过的dataDir路径下新增myid文件 

  • [root@localhost conf]# cd /tmp/zookeeper/data
    [root@localhost data]# touch myid
    [root@localhost data]# vim myid
    

   在data目录下创建文件,文件名为“myid”, 编辑该“myid”文件,并在对应的IP的机器上输入对应的编号。

   如在192.168.180.132上,“myid”文件内容就是1。在192.168.180.132上,内容就是2。

3.2.3 配置环境变量

配置环境变量的命令如下:

  •     [root@localhost zookeeper-3.4.14]# export ZOOKEEPER_INSTALL=/usr/local/zookeeper-3.4.14/
  •     [root@localhost zookeeper-3.4.14]# export PATH=$PATH:$ZOOKEEPER_INSTALL/bin
     

3.3 启动zookeeper

1.进入bin目录,并启动zookeep:

  •      [root@localhost local]# cd /usr/local/zookeeper-3.4.14/bin
  •      [root@localhost bin]# ./zkServer.sh start

如果不是在bin目录下执行,启动zookeeper时会报错: bash: ./zkServer.sh:  No such file or directory

注意:  ./zkServer.sh start前面的 .  不可忽略。

2.启动成功效果如下:

  • ZooKeeper JMX enabled by default
    Using config: /usr/local/zookeeper-3.4.14/bin/../conf/zoo.cfg
    Starting zookeeper ... STARTED
    

3.zookeeper的服务端启动后,还需要启动zookeeper的客户端:./zkCli.sh

如果是连接多个不同的主机节点,可以使用如下命令:./zkCli.sh -server 192.168.174.130:2888

启动成功效果如下:

  1. Connecting to localhost:2181
    ..........
    Welcome to ZooKeeper!
    2018-10-25 21:04:54,407 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1029] - Opening socket connection to server localhost/0:0:0:0:0:0:0:1:2181. Will not attempt to authenticate using SASL (unknown error)
    JLine support is enabled
    2018-10-25 21:04:54,471 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@879] - Socket connection established to localhost/0:0:0:0:0:0:0:1:2181, initiating session
    [zk: localhost:2181(CONNECTING) 0] 2018-10-25 21:04:54,501 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1303] - Session establishment complete on server localhost/0:0:0:0:0:0:0:1:2181, sessionid = 0x10000712e6f0000, negotiated timeout = 30000
    WATCHER::
    WatchedEvent state:SyncConnected type:None path:null4.查看状态:[root@localhost bin]# ./zkServer.sh status
    ZooKeeper JMX enabled by default
    Using config: /usr/local/zookeeper-3.4.14/bin/../conf/zoo.cfg
    Mode: standalone
    

3.4 zookeeper日志

   zookeeper的出错日志会记录在 zookeeper.out。

    当前处于哪个目录,执行完zkServer.sh start命令, zookeeper.out就会写在哪个目录。

    vim zookeeper.out 可以查看报错信息。然后再搜索解决。

 

4. Linux环境下kafka安装步骤

4.1 安装条件

   1.Kafka依赖于zookeeper存活,所以要确保zk已经安装成功,可以正常启动,参考:linux环境下zookeeper安装步骤

   2.kafka安装包下载:Apache官网 http://kafka.apache.org/downloads.html ,选择Binary downloads,选择版本进行下载。也可以直接用以下命令下载: wget http://apache.01link.hk/kafka/2.0.0/kafka_2.11-2.0.0.tgz

 4.2 安装kafka

1.   进入指定安装目录:cd  /usr/local

      解压安装包:tar -xzf kafka_2.11-2.0.0.tgz

      进入解压后的目录:cd kafka_2.11-2.0.0

2. 启动kafka, 启动kafka首先要启动zk,启动zk有两种方式:

   第一种使用kafka带的zk:  bin/zookeeper-server-start.sh  config/zookeeper.properties(不推荐)

   第二种使用其他zookeeper(可以是本机zk,也可以位于其它地址的zk),这种情况需要修改/config/sercer.properties里面的zookeeper地址。

#########################参数解释##############################
broker.id=0  #当前机器在集群中的唯一标识,和zookeeper的myid性质一样
port=9092 #当前kafka对外提供服务的端口默认是9092
host.name=192.168.7.100 #这个参数默认是关闭的,在0.8.1有个bug,DNS解析问题,失败率的问题。
num.network.threads=3 #这个是borker进行网络处理的线程数
num.io.threads=8 #这个是borker进行I/O处理的线程数
log.dirs=/opt/kafka/kafkalogs/ #消息存放的目录,这个目录可以配置为“,”逗号分割的表达式,上面的num.io.threads要大于这个目录的个数这个目录,如果配置多个目录,新创建的topic他把消息持久化的地方是,当前以逗号分割的目录中,那个分区数最少就放那一个
socket.send.buffer.bytes=102400 #发送缓冲区buffer大小,数据不是一下子就发送的,先回存储到缓冲区了到达一定的大小后在发送,能提高性能
socket.receive.buffer.bytes=102400 #kafka接收缓冲区大小,当数据到达一定大小后在序列化到磁盘
socket.request.max.bytes=104857600 #这个参数是向kafka请求消息或者向kafka发送消息的请请求的最大数,这个值不能超过java的堆栈大小
num.partitions=1 #默认的分区数,一个topic默认1个分区数
log.retention.hours=168 #默认消息的最大持久化时间,168小时,7天
message.max.byte=5242880  #消息保存的最大值5M
default.replication.factor=2  #kafka保存消息的副本数,如果一个副本失效了,另一个还可以继续提供服务
replica.fetch.max.bytes=5242880  #取消息的最大直接数
log.segment.bytes=1073741824 #这个参数是:因为kafka的消息是以追加的形式落地到文件,当超过这个值的时候,kafka会新起一个文件
log.retention.check.interval.ms=300000 #每隔300000毫秒去检查上面配置的log失效时间(log.retention.hours=168 ),到目录查看是否有过期的消息如果有,删除
log.cleaner.enable=false #是否启用log压缩,一般不用启用,启用的话可以提高性能
zookeeper.connect=192.168.7.100:12181,192.168.7.101:12181,192.168.7.107:1218 #设置zookeeper的连接端口
 
#########################参数修改############################## 
 
broker.id=0  #每台服务器的broker.id都不能相同
host.name=192.168.7.100 #hostname
#在log.retention.hours=169下面新增下面三项
message.max.byte=5242880
default.replication.factor=2
replica.fetch.max.bytes=5242880
#设置zookeeper的连接端口
zookeeper.connect=192.168.7.100:12181,192.168.7.101:12181,192.168.7.107:12181

  (推荐)启动 kafka,启动kafka和对应的zk集群,进入bin目录下: ./kafka-server-start.sh  -daemon ../config/server.properties

2.检查kafka是否启动成功: jps

             

3.创建topic,创建一个名为test的topic(一个副本,一个分区)

   [root@bogon kafka_2.11-2.0.0]# ./kafka-topics.sh --zookeeper localhost:2181 --create --topic test --partitions 1  --replication-factor 1

4.查看topic:   ./kafka-topics.sh  --zookeeper localhost:2181 --list

5.查看topic状态:[root@localhost bin]# ./kafka-topics.sh  --zookeeper localhost:2181 --topic test --describe

             
6.启动producer并发送消息

   [root@bogon kafka_2.11-2.0.0]# bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
启动之后就可以发送消息了,比如test:hello boy
7.启动consumer(另一个终端)

    bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

启动consumer之后就可以在console中看到producer发送的消息了。
 

 

 

你可能感兴趣的:(【Linux】)