用户登录
用户注册

分享至

stormwordcount讲解

  • 作者: 哥布拉Plus
  • 来源: 51数据库
  • 2020-04-21

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讲解

软件
前端设计
程序设计
Java相关