我们主要使用Apache Storm进行流处理,并使用Apache HBase作为NoSQL宽列数据库。
即使Apache Cassandra是一个出色的NoSQL数据库,由于Cloudera的分布以及与Cassandra相比更加一致 (请检查CAP定理 ),我们还是更喜欢HBase。
HBase基于HDFS,但出于测试目的,可以轻松将其独立安装。 您只需要下载最新版本,解压缩文件,启动独立节点,然后启动HBase Shell即可播放。
$> tar zxvf hbase-1.1.2-bin.tar.gz
$> cd hbase-1.1.2/bin/
$> ./start-hbase.sh
$> ./hbase shell
hbase(main):001:0> create 'DummyTable', 'cf'
hbase(main):001:0> scan 'DummyTable'
在独立模式下启动HBase时,它也会自动启动本地Zookeeper节点(在默认端口2181中运行)。
$> netstat -anp|grep 2181
HBase和Storm将Zookeeper用作分布式协调器机制。 现在,由于您已经在运行本地Zookeeper节点,因此可以配置并运行本地Storm集群。
- 下载最新的 Storm
- 提取
- 配置“ STORM_HOME / conf / storm.yaml”(检查以下内容)
- 启动本地集群:
$> cd STORM_HOME/bin
- 日志位于“ STORM_HOME / logs /”目录中
- 在以下位置检查本地Storm UI: localhost:8080
新的“ storm.yaml ”配置文件的内容:
storm.zookeeper.servers:
- "localhost"nimbus.host: "localhost"supervisor.slots.ports:
- 6701
- 6702
您还可以设置参数“ worker.childopts ”来为每个Worker (处理节点)设置JVM选项。 这是本地JVM的一个简单示例,其中设置了最小/最大堆大小,垃圾回收策略,启用JXM和GC日志。
worker.childopts: "-server -Xms512m -Xmx2560m -XX:PermSize=128m -XX:MaxPermSize=512m -XX:+UseParallelOldGC -XX:ParallelGCThreads=3 -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -verbose:gc -Xloggc:/tmp/gc-storm-worker-%ID%.log -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=1%ID% -XX:+PrintFlagsFinal -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true"
所有Worker JVM节点均加载参数“ worker.childopts ”。 变量“%ID%”对应于分配给每个工作程序的端口(6701或6702)。 如您所见,我已经使用它为每个工作程序和不同的GC日志文件启用了不同的JMX端口。
我们使用的是使用JDK 7的Storm,但JDK 8似乎也兼容。 最新的Storm已从Logback切换到Log4j2( 在此处和此处查看完整的发行说明)。
按照上述说明,您将能够在笔记本电脑上运行HBase和Storm迷你群集,而不会出现任何问题。
翻译自: https://www.javacodegeeks.com/2015/12/local-installation-standalone-hbase-apache-storm-simple-cluster.html