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

      

 4、下放tomcat默認的8080端口,並使其生效。Linux默認打開防火牆,端口對外不開放,所以只能本機訪問自身的端口,其他主機不能訪問該端口。

      

5、驗證tomcat是否啓動成功,在其他主機的瀏覽器裏輸入:http://192.168.88.133:8080/

      出現如下界面表示啓動成功:

      

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

       <Server port="8001" shutdown="SHUTDOWN">

2、修改Connector port HTTP/1.1  默認爲8080  =》修改爲18081

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

3、修改Connector port AJP/1.3 默認爲8009 =》 修改爲18011

    <Connector port="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發送的消息了。
 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章