如何重新启用centOS7.2服务器中的服务

第一个服务是zookeeper

什么是zookeeper?

ZooKeeper 是一个开源的分布式协调服务,由雅虎创建,是 Google Chubby 的开源实现。 分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协 调/通知、集群管理、Master 选举、配置维护,名字服务、分布式同步、分布式锁和分布式队列等功能。

如何启动zookeeper集群?

ZooKeeper服务的启动方式分为三种,即单机模式、伪分布式模式、分布式模式。调试过程建议尽量使用分布式模式,单机模式不推荐在生产环境下使用,伪分布式模式实质上是在一个进程内派生多个线程模拟分布式形态,由于操作系统的内部结构设计,容易造成一些问题,建议与其解决问题不如切换到分布式模式。生产环境下建议一定采用分布式模式,如果机器不够,推荐采用虚拟机方式。所以这里只写分布式的启动方式。

首先得找到zookeeper放在哪里

进入服务器的根目录,输入:

$ find -name zookeeper

就能看到一系列的文件夹目录,找到其中带有bin/,应该就是zookeeper的放置位置了。

因为是分布式,我这里有两台服务器,都执行下面操作:

$ cd /usr/local/zookeeper/bin
$ ./zkServer.sh start

出现STARTED后,说明ZooKeeper启动成功,如下图所示。

停止某个节点的ZooKeeper执行如下指令:

$ cd /usr/local/zookeeper/bin
$ ./zkServer.sh stop

然后,查看ZooKeeper的2181端口是否启动:netstat -tnpl|grep 2181
出现如下图所示后,说明ZooKeeper端口号启动成功,如下:

tcp        0      0 0.0.0.0:2181            0.0.0.0:*               LISTEN      2288/java 

ps:保证各服务器的防火墙打开

CentOS7执行如下指令可以开放端口号:
firewall-cmd --permanent --add-port=2181/tcp
firewall-cmd --permanent --add-port=2888/tcp
firewall-cmd --permanent --add-port=3888/tcp
添加端口号:
重新载入防火墙配置:
firewall-cmd --reload
查看配置是否生效:
firewall-cmd --list-ports

firewalld的基本使用

启动: systemctl start firewalld

关闭: systemctl stop firewalld

查看状态: systemctl status firewalld 

开机禁用  : systemctl disable firewalld

开机启用  : systemctl enable firewalld

这里我碰到了问题:FirewallD is not running

原因应该是防火墙没打开。

如何打开防火墙?

①通过systemctl status firewalld查看firewalld状态,发现当前是dead状态,即防火墙未开启。

● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)

②通过systemctl start firewalld开启防火墙,没有任何提示即开启成功。

③再次通过systemctl status firewalld查看firewalld状态,显示running即已开启了。

firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: active (running) since Wed 2018-10-10 13:41:38 CST; 28s ago
 Main PID: 2341 (firewalld)
   CGroup: /system.slice/firewalld.service
           └─2341 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

Oct 10 13:41:37 izbp18d3jgsseseh1yxjfiz systemd[1]: Starting firewalld - dynamic firewall daemon...
Oct 10 13:41:38 izbp18d3jgsseseh1yxjfiz systemd[1]: Started firewalld - dynamic firewall daemon.
④如果要关闭防火墙设置,可能通过systemctl stop firewalld这条指令来关闭该功能。

ok,防火墙开启,回到前面设置开放端口

输入后会返回success,说明执行成功

这里又碰到一个问题

firewall-cmd --permanent --add-port=2181/tcp显示成功了,但是

重新载入防火墙配置:
firewall-cmd --reload
查看配置是否生效:
firewall-cmd --list-ports

之后,该端头并没有显示出来。说明添加实际上是失败了。

检查一下端口

netstat -nap #会列出所有正在使用的端口及关联的进程/应用

结果返回了:-bash: netstat: command not found

看来是这个工具没有装,输入:

yum install net-tools

安装该工具。

输入:firewall-cmd --list-ports

还是没有,查了一番之后,我添加的语句中带有--add-rich-rule=

所以应该用下面这个命令

firewall-cmd --list-all  //查看防火墙所有信息

可以看到有几行是:

rich rules: 

      xxxxxxxxxxxxxxxx

      xxxxxxxxxxxxxxxx

接着,两台服务器都执行如下指令,查看本机zookeeper的状态:会有一台服务器的zookeeper状态显示为follower(跟随者状态),有一台服务器zookeeper状态显示为leader(领导者状态):

# echo stat|nc localhost 2181

Zookeeper version: 3.4.9-1757313, built on 08/23/2016 06:50 GMT
Clients:
 /127.0.0.1:36666[0](queued=0,recved=1,sent=0)

Latency min/avg/max: 0/0/0
Received: 1
Sent: 0
Connections: 1
Outstanding: 0
Zxid: 0x600000007
Mode: follower
Node count: 327
这里值得一提的是leader和follew谁主谁次没有关系,是zookeeper自动选举的。

还可以执行如下指令,查看本机zookeeper的状态:

/zookeeper/bin

./zkServer.sh status

ZooKeeper JMX enabled by default
Using config: /home/zookeeper/bin/../conf/zoo.cfg
Mode: leader

-------------------------------------------------------------------------------------------------
ZooKeeper JMX enabled by default
Using config: /home/zookeeper/bin/../conf/zoo.cfg
Mode: follower
 

2.kafka集群查看

什么是kafka集群?

它是一个分布式消息系统,由linkedin使用scala编写,用作LinkedIn的活动流(Activity Stream)和运营数据处理管道(Pipeline)的基础。具有高水平扩展和高吞吐量。

前台启动kafka:

./kafka-server-start.sh ../config/server.properties

后台启动kafka:

./kafka-server-start.sh ../config/server.properties 1>/dev/null 2>&1 &

当然,命令实在有些长,可以写启动和关闭脚本

在$KAFKA_HOME/bin下新建如下脚本文件

start-kafka.sh

    #!/bin/bash
    BROKERS="mini41 mini42 mini43"
    APPHOME="/home/hadoop/apps/kafka"
    APP_NAME="kafka_2.10-0.10.1.0"



    for i in $BROKERS
    do
        echo "Starting ${APP_NAME} on ${i} "
        ssh ${i} "source /etc/profile; nohup sh ${APPHOME}/bin/kafka-server-start.sh ${APPHOME}/config/server.properties > /dev/null 2>&1 &"
        if [[ $? -ne 0 ]]; then
            echo "Starting ${APP_NAME} on ${i} is  ok"
        fi
    done
    echo All $APP_NAME are started
    exit 0

stop-kafka.sh

    #!/bin/bash
    BROKERS="mini41 mini42 mini43"
    APPHOME="/home/hadoop/apps/kafka"
    APP_NAME="kafka_2.10-0.10.1.0"

    for i in $BROKERS
    do
        echo "Stopping ${APP_NAME} on ${i} "
        ssh ${i} "source /etc/profile;bash ${APPHOME}/bin/kafka-server-stop.sh"
        if [[ $? -ne 0 ]]; then
            echo "Stopping ${APP_NAME} on ${i} is down"
        fi
    done

    echo All $APP_NAME are stopped
    exit 0

注意修改权限

chmod a+x start-kafka.sh

chmod a+x stop-kafka.sh

启动后,输入jps

显示有进程号代表成功

好了,未完待续~

你可能感兴趣的:(centOS,kafka,zookeeper,zookeeper启动,kafka启动,centOS7.2服务器,防火墙端口添加)