一、首先在win系统下C:\Windows\System32\drivers\etc文件夹中hosts文件加入例如以下内容:

10.61.6.167 slaves1

10.61.6.168 slaves2

10.61.6.169 slaves3

二、启动kafka集群类

package com.conn.server.start;





import java.io.IOException;





import ch.ethz.ssh2.Connection;

import ch.ethz.ssh2.Session;









public class StartKafka {  

 

    public static void main(String[] args) {

    StartKafka startzk=new StartKafka();

    //启动kafka自带zookeeper集群

    startzk.startZk1();

    startzk.startZk2();

    startzk.startZk3();

    //启动kafka

    startzk.startKafka1();

    startzk.startKafka2();

    startzk.startKafka3();

    }

          

    public static void startZk1(){

        String hostname = "10.61.6.166";  

        String username = "root";  

        String password = "pass@word2";  

        //指明连接主机的IP地址  

        Connection conn = new Connection (hostname);  

        Session ssh = null;  

        try {  

            //连接到主机  

            conn.connect();  

            //使用username和password校验  

            boolean isconn = conn.authenticateWithPassword(username, password);  

            if(!isconn){  

                System.out.println("username称或者是password不对");  

            }else{  

                System.out.println("已经连接OK");  

                ssh = conn.openSession();  

                //使用多个命令用分号隔开  



                ssh.execCommand("cd /home/lee/kafka/kafka;bin/zookeeper-server-start.sh config/zookeeper.properties&");  

              

                //仅仅同意使用一行命令,即ssh对象仅仅能使用一次execCommand这种方法,多次使用则会出现异常  

            }  

            //连接的Session和Connection对象都须要关闭  

            ssh.close();  

            conn.close();  

              

        } catch (IOException e) {  

            e.printStackTrace();  

        }  

          

    }  

  

    public static void startZk2(){

        String hostname = "10.61.6.168";  

        String username = "root";  

        String password = "pass@word2";  

        //指明连接主机的IP地址  

        Connection conn = new Connection (hostname);  

        Session ssh = null;  

        try {  

            //连接到主机  

            conn.connect();  

            //使用username和password校验  

            boolean isconn = conn.authenticateWithPassword(username, password);  

            if(!isconn){  

                System.out.println("username称或者是password不对");  

            }else{  

                System.out.println("已经连接OK");  

                ssh = conn.openSession();  

               ssh.execCommand("cd /home/lee/kafka/kafka;bin/zookeeper-server-start.sh config/zookeeper.properties&");  

              

            }  

            ssh.close();  

            conn.close();  

              

        } catch (IOException e) {  

            e.printStackTrace();  

        }  

    }  

    

    public static void startZk3(){

        String hostname = "10.61.6.169";  

        String username = "root";  

        String password = "pass@word2";  

        //指明连接主机的IP地址  

        Connection conn = new Connection (hostname);  

        Session ssh = null;  

        try {  

            //连接到主机  

            conn.connect();  

            //使用username和password校验  

            boolean isconn = conn.authenticateWithPassword(username, password);  

            if(!isconn){  

                System.out.println("username称或者是password不对");  

            }else{  

                System.out.println("已经连接OK");  

                ssh = conn.openSession();  

               ssh.execCommand("cd /home/lee/kafka/kafka;bin/zookeeper-server-start.sh config/zookeeper.properties&");  

               }  

            ssh.close();  

            conn.close();  

              

        } catch (IOException e) {  

            e.printStackTrace();  

        }  

    }  

    

    public static void startKafka1(){

        String hostname = "10.61.6.167";  

        String username = "root";  

        String password = "pass@word2";  

        //指明连接主机的IP地址  

        Connection conn = new Connection (hostname);  

        Session ssh = null;  

        try {  

            //连接到主机  

            conn.connect();  

            //使用username和password校验  

            boolean isconn = conn.authenticateWithPassword(username, password);  

            if(!isconn){  

                System.out.println("username称或者是password不对");  

            }else{  

                System.out.println("已经连接OK");  

                ssh = conn.openSession();  

                ssh.execCommand("cd /home/lee/kafka/kafka;bin/kafka-server-start.sh config/server.properties&");  

            }  

            ssh.close();  

            conn.close();  

              

        } catch (IOException e) {  

            e.printStackTrace();  

        }  

    }  

    

    public static void startKafka2(){

        String hostname = "10.61.6.168";  

        String username = "root";  

        String password = "pass@word2";  

        //指明连接主机的IP地址  

        Connection conn = new Connection (hostname);  

        Session ssh = null;  

        try {  

            //连接到主机  

            conn.connect();  

            //使用username和password校验  

            boolean isconn = conn.authenticateWithPassword(username, password);  

            if(!isconn){  

                System.out.println("username称或者是password不对");  

            }else{  

                System.out.println("已经连接OK");  

                ssh = conn.openSession();  

                ssh.execCommand("cd /home/lee/kafka/kafka;bin/kafka-server-start.sh config/server.properties&");  

            }  

            ssh.close();  

            conn.close();  

              

        } catch (IOException e) {  

            e.printStackTrace();  

        }  

    }  

    

    public static void startKafka3(){

        String hostname = "10.61.6.169";  

        String username = "root";  

        String password = "pass@word2";  

        //指明连接主机的IP地址  

        Connection conn = new Connection (hostname);  

        Session ssh = null;  

        try {  

            //连接到主机  

            conn.connect();  

            //使用username和password校验  

            boolean isconn = conn.authenticateWithPassword(username, password);  

            if(!isconn){  

                System.out.println("username称或者是password不对");  

            }else{  

                System.out.println("已经连接OK");  

                ssh = conn.openSession();  

                ssh.execCommand("cd /home/lee/kafka/kafka;bin/kafka-server-start.sh config/server.properties&");  

            }  

            ssh.close();  

            conn.close();  

              

        } catch (IOException e) {  

            e.printStackTrace();  

        }  

    }  

    

}

三、生产者类

package com.performanceTest;



import java.io.BufferedReader;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.IOException;

import java.util.Properties;



import kafka.javaapi.producer.Producer;

import kafka.producer.KeyedMessage;

import kafka.producer.ProducerConfig;





public class ProducerSample {

public static void main(String[] args) throws FileNotFoundException {  

        //ProducerSample ps = new ProducerSample();  

  

        Properties props = new Properties();  

        props.put("zookeeper.connect", "slaves1:2182,slaves2:2182,slaves3:2182");    //这里也能够改为集群各节点的ip地址

        props.put("serializer.class", "kafka.serializer.StringEncoder");  

        props.put("metadata.broker.list","slaves1:9092,slaves2:9092,slaves3:9092");

        props.put("request.required.acks", "1");

        props.put("batch.num.messages","200");

        ProducerConfig config = new ProducerConfig(props);  

        Producer<String, String> producer = new Producer<String, String>(config);

File file=new File("E:/test","110-140_1.txt");

        BufferedReader readtxt=new BufferedReader(new FileReader(file));

        String line=null;

        byte[] item=null;

try {

while((line=readtxt.readLine())!=null){

line = line.replaceAll("\\t", ",");

item=line.getBytes();

String str = new String(item);

producer.send(new KeyedMessage<String, String>("mykafka",str));

}

} catch (IOException e) {

e.printStackTrace();

}

     

    }  

}

四、消费者类

package com.performanceTest;





import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import java.util.Properties;





import kafka.consumer.ConsumerConfig;

import kafka.consumer.ConsumerIterator;

import kafka.consumer.KafkaStream;

import kafka.javaapi.consumer.ConsumerConnector;





public class ConsumerTest extends Thread {

private final ConsumerConnector consumer;  

    private final String topic;  

    private  final List<String> messages = new ArrayList<String>();

      

    public static void main(String[] args) {  

        ConsumerTest consumerThread = new ConsumerTest("mykafka");  

        consumerThread.start();  

    }  

      

    public ConsumerTest(String topic) {  

    System.out.println(topic);

        consumer = kafka.consumer.Consumer  

                .createJavaConsumerConnector(createConsumerConfig());  

        this.topic = topic;  

    }  

      

    private static ConsumerConfig createConsumerConfig() {  

        Properties props = new Properties();  

       props.put("zookeeper.connect", "slaves1:2182,slaves2:2182,slaves3:2182"); 

        props.put("group.id", "0");  

        props.put("zookeeper.session.timeout.ms", "400000");  

        props.put("zookeeper.sync.time.ms", "200");  

        props.put("auto.commit.interval.ms", "1000");  

      

        return new ConsumerConfig(props);  

      

    }

win系统下启动linux上的kafka集群及使用的更多相关文章

  1. Linux上安装Hadoop集群(CentOS7+hadoop-2.8.0)--------hadoop环境的搭建

    Linux上安装Hadoop集群(CentOS7+hadoop-2.8.0)------https://blog.csdn.net/pucao_cug/article/details/71698903 ...

  2. win系统下的eclipse连接和使用linux上的hadoop集群

    准备工作 先在win系统的hosts文件中加入下面内容 10.61.6.164master     //hadoop集群的master节点 一.首先在eclipse上安装hadoop插件 下载hado ...

  3. 在linux上搭建nacos集群(步骤详细,linux小白也搞得定)

    (1)nacos官网:https://github.com/alibaba/nacos/releases/tag/1.2.1下载nacos安装包到window本地(后缀为tar.zip) (2)在li ...

  4. Linux上搭建Hadoop集群

    本文将为初学者的搭建简单的伪分布式集群,将搭建一台虚拟机,用于学习Hadoop 工具:vm虚拟机,centOS7,jdk-8,Hadoop2.7,xftp,xshell 用户:在虚拟机中创建一个had ...

  5. 在Linux上安装Zookeeper集群

    xl_echo编辑整理,欢迎转载,转载请声明文章来源.欢迎添加echo微信(微信号:t2421499075)交流学习. 百战不败,依不自称常胜,百败不颓,依能奋力前行.——这才是真正的堪称强大!! - ...

  6. linux上配置spark集群

    环境: linux spark1.6.0 hadoop2.2.0 一.安装scala(每台机器)   1.下载scala-2.11.0.tgz   放在目录: /opt下,tar -zxvf scal ...

  7. Linux上安装Hadoop集群(CentOS7+hadoop-2.8.0)

    1下载hadoop 2安装3个虚拟机并实现ssh免密码登录 2.1安装3个机器 2.2检查机器名称 2.3修改/etc/hosts文件 2.4 给3个机器生成秘钥文件 2.5 在hserver1上创建 ...

  8. Linux上安装Hadoop集群(CentOS7+hadoop-2.8.3)

    https://blog.csdn.net/pucao_cug/article/details/71698903 1下载hadoop 2安装3个虚拟机并实现ssh免密码登录 2.1安装3个机器 2.2 ...

  9. Kafka集群安装部署、Kafka生产者、Kafka消费者

    Storm上游数据源之Kakfa 目标: 理解Storm消费的数据来源.理解JMS规范.理解Kafka核心组件.掌握Kakfa生产者API.掌握Kafka消费者API.对流式计算的生态环境有深入的了解 ...

随机推荐

  1. python基础知识03-格式化输出和深浅复制

    VIM中HJKL可以上下左右移动光标. 格式化输出和深浅复制 1.字符串的拼接和格式化 sudo pip3 install ipython 安装 ipython 进入 字符串相加 str1 + str ...

  2. SQL练习题笔记

    查找最晚入职员工的所有信息 select * from employees order by hire_date desc limit 1 查找入职员工时间排名倒数第三的员工所有信息 select * ...

  3. 牛客网暑期ACM多校训练营(第四场) J 贪心

    链接: https://www.nowcoder.com/acm/contest/143/J #include<bits/stdc++.h> using namespace std; lo ...

  4. C#基于引用创建单链表

    在C语言,单链表的实现依赖指针,指针用来指向节点,那么,用C#实现,自然就想到引用,节点的引用不就类似于指向Node的指针嘛

  5. [luoguP1360] [USACO07MAR]黄金阵容均衡Gold Balanced L…

    传送门 真的骚的一个题,看了半天只会个前缀和+暴力.. 纯考思维.. 良心题解 #include <cstdio> #include <cstring> #include &l ...

  6. 洛谷P1771 方程的解_NOI导刊2010提高(01)

    题目描述 佳佳碰到了一个难题,请你来帮忙解决. 对于不定方程a1+a2+…+ak-1+ak=g(x),其中k≥2且k∈N,x是正整数,g(x)=x^x mod 1000(即x^x除以1000的余数), ...

  7. Java SSH框架系列:用户登录模块的设计与实现思路

    1.简介用户登录模块,指的是根据用户输入的用户名和密码,对用户的身份进行验证等.如果用户没有登录,用户就无法访问其他的一些jsp页面,甚至是action都不能访问.二.简单设计及实现本程序是基于Jav ...

  8. 使用Windows系统远程连接Windows server服务器

    点击开始菜单->运行 (或者 windows+R) ,输入"mstsc"命令,  打开远程桌面连接对话框,输入你要连接的Windows server服务器的公网IP.  点击 ...

  9. SpringData JPA进阶查询—JPQL/原生SQL查询、分页处理、部分字段映射查询

    上一篇介绍了入门基础篇SpringDataJPA访问数据库.本篇介绍SpringDataJPA进一步的定制化查询,使用JPQL或者SQL进行查询.部分字段映射.分页等.本文尽量以简单的建模与代码进行展 ...

  10. 那些“不务正业”的IT培训公司

    Before First 大四下期了,现在准备找一份Java开发的实习工作,于是在各大网站上投递简历-智联招聘.51job.拉勾网,慧眼识真金的我必然会把培训机构给过滤掉,对于重庆来说招聘实习的公司少 ...