1.如何在Windows下的Eclipse中直接运行Storm的WordCountTopology
在过去,在windows下跑storm是一个极大的挑战。通常,这种方式会涉及到Storm的源码编程方式,storm的生态依赖以及如何让windows伪装成UNIX/POSIX。就是因为这个原因,导致了很大一部分Storm的潜在用户放弃了将storm整合的到大数据处理框架中。
非常感谢Storm的开发者David Lao以及 来自Yahoo!的贡献(making-storm-fly-with-netty),下一个storm版本 (0.9.1-incubating) 将会更容易地部署到windows环境中。
下面,我将列出几个步骤,讲述如何将storm部署到windows环境中,并且将会跑一个简单的拓扑在这个环境中。这是一个简单的创建单节点以及跑一个"word count"简单拓扑的过程。
先附上UI图:
安装JAVA:
下载JDK(Storm 需要的环境是JDK6/7),在这个步骤中,我使用JDK 7,大家可以自行到Oracle官网下载。
我将它安装在:
C:\Java\jdk1.7.0_45\
2.如何在Windows下搭建Storm
安装JAVA:
下载JDK(Storm 需要的环境是JDK6/7),在这个步骤中,我使用JDK 7,大家可以自行到Oracle官网下载。
我将它安装在:
C:\Java\jdk1.7.0_45\
安装Python:
为了测试python的安装,我将部署"word count"来自storm-starter project 的例子,一个用python写的multi-lang bolt。我使用的python2.7.6可以从这里下载。
我将python安装在这里:
C:\Python27\
安装以及执行Zookeeper:
下载 Apache Zookeeper 3.3.6并且解压它。按照如下命令进行配置以及执行:
> cd zookeeper-3.3.6
> copy conf\zoo_sample.cfg conf\zoo.cfg
> .\bin\zkServer.cmd
安装Storm
允许storm部署到windows下的官方正式版本现在还没有发布,但是你可以下载并且编译包含了这个功能的版本,点击这里下载。
(源码分支参考这里)。
解压压缩包到你想要的位置。我选择 C盘。
配置环境变量
在windows下需要配置两个环境变量: STORM_HOME 以及 JAVA_HOME ,并且同样要将安装路径配置到PATH中。
JAVA_HOME
C:\Java\jdk1.7.0_45\
STORM_HOME
C:\storm-0.9.1-incubating-SNAPSHOT-12182013\
PATH Add:
%STORM_HOME%\bin;%JAVA_HOME%\bin;C:\Python27;C:\Python27\Lib\site-packages\;C:\Python27\Scripts\;
PATHEXT Add:
.PY
Start Nimbus, Supervisor, and Storm UI Daemons
为每一个运行实例打开一个命令行:
Nimbus
> cd %STORM_HOME%
> storm nimbus
Supervisor
> cd %STORM_HOME%
> storm supervisor
Storm UI
> cd %STORM_HOME%
> storm ui
通过浏览器 ty),下一个storm版本 (0.9.1-incubating) 将会更容易地部署到windows环境中。下面,我将列出几个步骤,讲述如何将storm部署到windows环境中,并且将会跑一个简单的拓扑在这个环境中。
这是一个简单的创建单节点以及跑一个"word count"简单拓扑的过程。先附上UI图:安装JAVA:下载JDK(Storm 需要的环境是JDK6/7),在这个步骤中,我使用JDK 7,大家可以自行到Oracle官网下载。
我将它安装在:C:\Java\jdk1.7.0_45\安装Python:为了测试python的安装,我将部署"word count"来自storm-starter project 的例子,一个用python写的multi-lang bolt。我使用的python2.7.6可以从这里下载。
我将python安装在这里:C:\Python27\安装以及执行Zookeeper:下载 Apache Zookeeper 3.3.6并且解压它。按照如下命令进行配置以及执行:> cd zookeeper-3.3.6> copy conf\zoo_sample.cfg conf\zoo.cfg> .\bin\zkServer.cmd安装Storm允许storm部署到windows下的官方正式版本现在还没有发布,但是你可以下载并且编译包含了这个功能的版本,点击这里下载。
(源码分支参考这里)。解压压缩包到你想要的位置。
我选择 C盘。配置环境变量在windows下需要配置两个环境变量: STORM_HOME 以及 JAVA_HOME ,并且同样要将安装路径配置到PATH中。
JAVA_HOMEC:\Java\jdk1.7.0_45\STORM_HOMEC:\storm-0.9.1-incubating-SNAPSHOT-12182013\PATH Add:%STORM_HOME%\bin;%JAVA_HOME%\bin;C:\Python27;C:\Python27\Lib\site-packages\;C:\Python27\Scripts\;PATHEXT Add:.PYStart Nimbus, Supervisor, and Storm UI Daemons为每一个运行实例打开一个命令行:Nimbus> cd %STORM_HOME%> storm nimbusSupervisor> cd %STORM_HOME%> storm supervisorStorm UI> cd %STORM_HOME%> storm ui通过浏览器 http://localhost:8080/ 验证一下Storm是否已经跑起来了。部署“Word Count” 拓扑:编译 storm-starter 项目。
部署 Word Count 拓扑到你的本地集群中:> storm jar storm-starter-0.0.1-SNAPSHOT-jar-with-dependencies.jar storm.starter.WordCountTopology WordCount -c nimbus.host=localhost刷新UI页面,就可以看到任务已经跑起来了。
4.如何判断storm正确启动 jps
1、正常安装JDK,测试JKD是否安装正常。
$ java -version2、正常安装Python,测试Python是否安装正常。$ python3、正常安装Zookeeper。
$ cd apache/$ tar -xvf zookeeper-3.4.5.tar.gz$ cd zookeeper-3.4.5/$ mkdir data$ mkdir logs$ cd conf/$ cp zoo_sample.cfg zoo.cfg$ vim zoo.cfg tickTime=2000 initLimit=10 syncLimit=5 dataDir=/home/wcbdd/apache/zookeeper-3.4.5/data dataLogDir=/home/wcbdd/apache/zookeeper-3.4.5/logs clientPort=2181 server.1=localhost:2888:3888$ cd ..$ echo "1" > data/myid$ cd ~$ vim .bashrc exportZOOKEEPER_HOME=/home/wcbdd/apache/zookeeper-3.4.5 exportPATH=$PATH:$ZOOKEEPER_ HOME/bin$ su – wcbdd$ cd apache/zookeeper-3.4.5/bin/$ vim zkEnv.sh if ["x${ZOO_LOG_DIR}" = "x" ] then ZOO_LOG_DIR="$ZOOKEEPER_HOME/logs" fi if ["x${ZOO_LOG4J_PROP}" = "x" ] then ZOO_LOG4J_PROP="INFO,ROLLINGFILE" fi4、启动Zookeeper,并检查其工作状态。$ zkServer.sh start$ jps$ zkServer.sh status 备注:标红的是刚才开启的Zookeeper进程,HQuorumPeer是Hbase内置的Zookeeper进程,因为以前配置的Hbase是由内置Zookeeper托管的,其实工作环境中一般都是把Hbase交给外部Zookeeper集群来托管。
5、安装Storm。$ cd apache/$ tar -xvf apache-storm-0.9.6.tar.gz$ cd apache-storm-0.9.6/$ mkdir data$ vim conf/storm.yaml storm.zookeeper.servers: - "localhost" storm.zookeeper.port: 2181 nimbus.host: "localhost" storm.local.dir:"/home/wcbdd/apache/apache-storm-0.9.6/data" supervisor.slots.ports: - 6700 - 6701 - 6702 - 6703 备注:设置了从节点slots有4个端口,即最多一个节点能开启4个worder,每个worker是一个进程,一个进程又可开启很多个线程task。
这个值可根据节点资源配置情况和业务需求进行设置。$ cd ~$ vim .bashrc exportSTORM_HOME=/home/wcbdd/apache/apache-storm-0.9.6 exportPATH=$PATH:$STORM_HOME/bin$ su - wcbdd6、启动Storm。
$ storm nimbus >/dev/null 2>&1 & //启动主节点$ storm supervisor >/dev/null 2>&1& //启动从节点$ storm ui >/dev/null 2>&1 & //启动后台UI管理界面7、查看Storm是否正常启动。$ jps 备注:上图的nimbus为storm主节点进程,supervisor为从节点进程,core为后台管理界面进程。
8、通过浏览器查看Storm后台管理界面。备注:第一个红框显示了storm的版本号、主节点运行时间、从节点数量、slots使用情况、任务数量等;第二个红框显示当前没有拓扑任务;第三个红框显示从节点信息,由图可知,这个storm集群只有一个从节点,运行在wcbdd主机上,有4个slots,当前使用的slots数量为0。
9、执行Storm的示例程序WordCountTopology。$ cd apache/apache-storm-0.9.6/examples/ storm-starter/$ storm jar storm-starter-topologies-0.9.6.jarstorm.starter.WordCountTopology wordcount 备注:此命令的作用是用storm将这个jar包发送给storm去执行,后面的wordcount是定义的topology名称。
10、停止拓扑任务wordcount。$ storm deactivate wordcount。
5.如何运行自带wordcount
1.找到examples例子我们需要找打这个例子的位置:首先需要找到你的hadoop文件夹,然后依照下面路径:/hadoop/share/hadoop/mapreduce会看到如下图:hadoop-mapreduce-examples-2.2.0.jar第二步:我们需要需要做一下运行需要的工作,比如输入输出路径,上传什么文件等。
1.先在HDFS创建几个数据目录:hadoop fs -mkdir -p /data/wordcounthadoop fs -mkdir -p /output/2.目录/data/wordcount用来存放Hadoop自带的WordCount例子的数据文件,运行这个MapReduce任务的结果输出到/output/wordcount目录中。首先新建文件inputWord:vi /usr/inputWord新建完毕,查看内容:cat /usr/inputWord将本地文件上传到HDFS中:hadoop fs -put /usr/inputWord /data/wordcount/可以查看上传后的文件情况,执行如下命令:hadoop fs -ls /data/wordcount可以看到上传到HDFS中的文件。
通过命令hadoop fs -text /data/wordcount/inputWord看到如下内容:下面,运行WordCount例子,执行如下命令:hadoop jar /usr/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar wordcount /data/wordcount /output/wordcount可以看到控制台输出程序运行的信息查看结果,执行如下命令:hadoop fs -text /output/wordcount/part-r-00000结果数据示例如下:登录到Web控制台,访问链接http.//master:8088/可以看到任务记录情况。
6.如何运行自带wordcount
1.找到examples例子
我们需要找打这个例子的位置:首先需要找到你的hadoop文件夹,然后依照下面路径:
/hadoop/share/hadoop/mapreduce会看到如下图:
hadoop-mapreduce-examples-2.2.0.jar
第二步:
我们需要需要做一下运行需要的工作,比如输入输出路径,上传什么文件等。
1.先在HDFS创建几个数据目录:
hadoop fs -mkdir -p /data/wordcount
hadoop fs -mkdir -p /output/
2.目录/data/wordcount用来存放Hadoop自带的WordCount例子的数据文件,运行这个MapReduce任务的结果输出到/output/wordcount目录中。
首先新建文件inputWord:
vi /usr/inputWord
新建完毕,查看内容:
cat /usr/inputWord
将本地文件上传到HDFS中:
hadoop fs -put /usr/inputWord /data/wordcount/
可以查看上传后的文件情况,执行如下命令:
hadoop fs -ls /data/wordcount
可以看到上传到HDFS中的文件。
通过命令
hadoop fs -text /data/wordcount/inputWord
看到如下内容:
下面,运行WordCount例子,执行如下命令:
hadoop jar /usr/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar wordcount /data/wordcount /output/wordcount
可以看到控制台输出程序运行的信息
查看结果,执行如下命令:
hadoop fs -text /output/wordcount/part-r-00000
结果数据示例如下:
登录到Web控制台,访问链接http.//master:8088/可以看到任务记录情况。
7.word count是什么意思
word count 英[w?:d kaunt] 美[w?d ka?nt]
n. 字数; 字计数;
[例句]Wc is an acronym for word count; wc can count characters, words, and lines.
wc为word count的首字母缩写,wc可统计字符、单词和行数。
根据你的描述,这是文字计数的意思,表面你这篇文字共打了多少个字。
转载请注明出处51数据库 » stormwordcount讲解
哥布拉Plus