1. 总结一些概念:
安装zookeeper3.4.6
cp zoo_sample.cfg zoo.cfg vim zoo.cfg
tickTime=2000
initLimit=10syncLimit=5dataDir=/opt/software/zookeeper-3.4.6/datadataLogDir=/opt/software/zookeeper-3.4.6/logsclientPort=2181server.1=pc.apache:2888:3888将zookeeper加入环境变量; 在mkdir data目录, vim myid 插入1, mkdir logs zkServer.sh start
安装kafka 0.10.2
vim server.propertiesbroker.id=0port=9092host.name=pc.apachelog.dirs=/opt/software/kafka_2.11-0.10.2.0/datanum.network.threads=3num.io.threads=8socket.send.buffer.bytes=102400socket.receive.buffer.bytes=102400socket.request.max.bytes=104857600zookeeper.connect=pc.apache:2181num.partitions=3num.recovery.threads.per.data.dir=1log.retention.hours=168log.segment.bytes=1073741824log.retention.check.interval.ms=300000zookeeper.connection.timeout.ms=6000将kafka添加进环境变量, 启动服务:nohup kafka-server-start.sh /opt/software/kafka_2.11-0.10.2.0/config/server.properties> /opt/software/kfk.out &创建分区kafka-topics.sh --create --zookeeper pc.apache:2181 --replication-factor 1 --partitions 3 --topic k1设置测试用生产者:vim producer.propertiesbootstrap.servers=pc.apache:9092设置测试用消费者:vim consumer.propertieszookeeper.connect=pc.apache:2181kafka-console-producer.sh --broker-list pc.apache:9092 --topic k1kafka-console-consumer.sh --bootstrap-server pc.apache:9092 --topic k1 --from-beginning
IDEA作为生产者, 向kafka发送数据;
添加依赖:public class Productor implements Runnable { private final KafkaProducer org.apache.kafka kafka_2.11 0.10.2.0 producer; private final String topic; private final Properties props = new Properties(); public static void main(String[] args) { Thread t = new Thread(new Productor("k1")); t.start(); } public Productor(String topic) { props.put("metadata.broker.list", "pc.apache:9092"); props.put("bootstrap.servers", "pc.apache:9092"); props.put("acks", "all"); props.put("retries", 0); props.put("batch.size", 16384); props.put("linger.ms", 1); props.put("buffer.memory", 33554432); props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer"); props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer"); producer = new KafkaProducer (props); this.topic = topic; } @Override public void run() { int messageNo = 1; while (true){ String messageStr = "Message_" + messageNo; producer.send(new ProducerRecord (topic, messageStr)); messageNo++; try { sleep(3000); }catch (Exception e){ System.out.println(e.toString()); } } }}
3. 安装HBase
为了解除HBase与Zookeeper的耦合性, 使用HBase自带的Zookeeper;配置好hbase-site.xml后, 直接启动start-hbase.sh即可;hbase.rootdir hdfs://pc.apache:8020/hbase hbase.cluster.distributed true hbase.zookeeper.quorum pc.apache hbase.master hdfs://pc.apache:60000 hbase.tmp.dir /opt/software/hbase-1.2.5/tmp hbase.zookeeper.property.dataDir /opt/software/hbase-1.2.5/zooData
使用IDEA连HBase将hbase-site.xml 放入classpath 放入classpath添加依赖:org.apache.hbase hbase-client ${hbase.version} org.apache.hbase hbase-server ${hbase.version} private static Configuration config; static { config = HBaseConfiguration.create(); } org.apache.hbase hbase ${hbase.version} pom
即可创建连接;