Heron 单节点运行 —— 基本环境配置
一步步搭环境:
----------------------------------------------------
系统环境要求:
Mac OS X 或者 Ubuntu14.04>=
1. Java环境配置
Linux java环境配置。因为heron用到Bazel管理工具的要求必须是JDK1.8版本,所以可以直接下JDK1.8进行安装。
JDK安装下载解压到/usr/local目录下,然后进行环境变量配置,有两个地方可以配置(/etc/profile(全局配置) 或者 ~/.bashrc(只针对某个用户)),打开文件,shift+g定位到文件末尾,添加如下语句
exportJAVA_HOME=/usr/local/jdkexportCLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:exportPATH=$PATH:$HOME/bin:$JAVA_HOME/bin
为了使得更改立即生效,可以使用source命令
source/etc/profile#source~/.bashrc
2. 下载脚本
可以去github上下载Twitter提供的heron安装脚本(https://github.com/twitter/heron/releases),可以下载自己系统对应的文件。
注:如果是Mac,脚本文件是带有darwin的,即heron-client-install-0.14.3-darwin.sh、heron-tools-install-0.14.3-darwin.sh这样的文件。
heron的单节点运行主要用到2个脚本文件
heron-client-install-0.14.2-PLATFORM.sh
heron-tools-install-0.14.2-PLATFORM.sh
3. 安装
下载完成,可以使用 --user进行安装
若脚本没有执行权限,则先执行如下语句,其他脚本文件同理
$chmod+xheron-client-install-0.14.3-ubuntu.sh
安装client
$./heron-client-install-0.14.3-ubuntu.sh--userHeronclientinstaller----------------------Uncompressing......Heronisnowinstalled!Makesureyouhave"$/home/xxx/bin"inyourpath....
如果环境变量中没有 /home/xxx/bin 可以进行环境变量导入
$exportPATH=$PATH:~/bin
接下来安装 tool,依旧使用 --user
$./heron-tools-install-0.14.3-.sh--userHerontoolsinstaller---------------------Uncompressing......HeronToolsisnowinstalled!...
可以使用如下语句检查heron是否安装成功
heronversion
如果提示如下语句,提示JAVA_HOME没有设置:
root@vm-heron:~/bin#heronversionERROR:root:JAVA_HOMEnotset
可是明明环境变量已经设置,而且使用echo $PATH可以看到环境变量....
那就执行一次export将JAVA_HOME进行导入(终端关闭后,就不起作用了)
exportJAVA_HOME=/usr/local/jdk
然后再执行,就可以成功
root@vm-heron:~$heronversionheron.build.version:'0.14.3'heron.build.time:SatSep1001:04:00PDT2016heron.build.timestamp:1473494660000heron.build.host:tw-mbp-kramasamyheron.build.user:kramasamyheron.build.git.revision:71d5b256d779be73b37c50d2a58af8f00d618276heron.build.git.status:Clean
4. 部署运行
安装完成后,在~/.heron/example目录下会有一些Twitter的官方例子,可以使用heron的CLI工具在本地部署一个tolopogy。
$heronsubmitlocal\>~/.heron/examples/heron-examples.jar\>com.twitter.heron.examples.ExclamationTopology\>ExclamationTopology\>--deploy-deactivatedINFO:Usingconfigfileunder/home/${user}/.heron/conf/localINFO:Launchingtopology'ExclamationTopology'INFO:Topology'ExclamationTopology'launchedsuccessfullyINFO:Elapsedtime:6.915s.
这个运行之后就会在家目录下产生一个 ./herondata的目录,此目录存放了之前运行的数据。可以看看其内容
$ll~/.herondata/topologies/local/${user}/ExclamationTopology-rw-rw-r--1useruser23439月1816:14ExclamationTopology.defndrwxr-xr-x2useruser40961月11970heron-conf/drwxr-xr-x4useruser40961月11970heron-core/-rwxr-xr-x1useruser45862111月11970heron-examples.jar*-rw-rw-r--1useruser09月1816:14heron-executor-0.stderr-rw-rw-r--1useruser09月1816:14heron-executor-1.stderr-rw-rw-r--1useruser09月1816:14java-a4298b50-started.stderrdrwxrwxr-x2useruser40969月1816:14log-files/-r-xr-xr-x1useruser2811月11970release.yaml*
5. 启动Heron Tracker
Heron Tracker是用来收集heron集群信息的web服务,可以通过运行heron-tracker来部署它。
$heron-trackerINFO:09/18/201616:35:05+0000Connectingtofilestatewithrootpath:/home/${user}/.herondata/repository/state/localINFO:09/18/201616:35:05+0000TrackerhasstartedINFO:09/18/201616:35:05+0000Runningonport:8888INFO:09/18/201616:35:05+0000Usingconfigfile:/home/${user}/.herontools/conf/heron_tracker.yamlINFO:09/18/201616:35:05+0000Statewatchtriggeredfortopologies.INFO:09/18/201616:35:05+0000Addingnewtopology:ExclamationTopology,state_manager:localINFO:09/18/201616:35:05+0000Registeringawatchwithuid:53ccd3c3-f6d2-4d53-af11-c736a96986d3INFO:09/18/201616:35:05+0000Noexecutionstatefoundfor:ExclamationTopologyINFO:09/18/201616:35:05+0000Watchtriggeredfortopologyexecutionstate:ExclamationTopologyINFO:09/18/201616:35:05+0000Settingtopologyinfofortopology:ExclamationTopologyINFO:09/18/201616:35:05+0000Watchtriggeredfortopologypplan:ExclamationTopologyINFO:09/18/201616:35:05+0000Settingtopologyinfofortopology:ExclamationTopologyINFO:09/18/201616:35:05+0000Watchtriggeredfortopologytmaster:ExclamationTopologyINFO:09/18/201616:35:05+0000Settingtopologyinfofortopology:ExclamationTopologyINFO:09/18/201616:35:05+0000Watchtriggeredfortopologyschedulerlocation:ExclamationTopologyINFO:09/18/201616:35:05+0000Settingtopologyinfofortopology:ExclamationTopologyINFO:09/18/201616:36:31+0000302GET/(127.0.0.1)0.50msINFO:09/18/201616:36:31+0000200GET/topologies(127.0.0.1)0.71msWARNING:09/18/201616:36:32+0000404GET/favicon.ico(127.0.0.1)1.10msWARNING:09/18/201616:36:32+0000404GET/favicon.ico(127.0.0.1)0.49ms
执行中若是出现,没有权限错误,则把家目录下的 .pex目录权限改成当前用户
$sudochown-R${user}:${user}~/.pex/
然后在浏览器中输入http://localhost:8888/,即可看到如下内容
{"status":"success","executiontime":4.076957702636719e-05,"message":"","version":"1.0.0","result":{"local":{"${user}":{"default":["ExclamationTopology"]}}}}
6. Heron UI使用
Heron UI 就是直观的用户界面了,通过它可以看tolopogy的详细运行情况,通过 heron-ui来部署启动
$heron-uiINFO:09/18/201616:47:24+0000Listeningathttp://0.0.0.0:8889INFO:09/18/201616:47:24+0000Usingtrackerurl:http://localhost:8888
然后就可以在浏览器中输入http://localhost:8889/,就可以打开如下界面了。
注:上一步的heron-tracker也是必须在运行状态,长期运行可以使用守护进程启动,否则会出现[Errno 111] connected refused的异常。
7. tolopogy的几个常用命令
上面我们在本地环境提交了一个tolopogy,我们可以使用heron的CLI工具进行一些管理,如activate、deactivate、kill等。
$heronactivatelocalExclamationTopology$herondeactivatelocalExclamationTopology$heronkilllocalExclamationTopolog
若果上面的命令执行成功,会有类似下面这样的提示信息:
INFO:Successfullyactivatedtopology'ExclamationTopology'INFO:Elapsedtime:1.980s.
我们可以通过heron来查看有哪些命令可用
$heronusage:heron<command><options>...Availablecommands:activateActivateatopologydeactivateDeactivateatopologyhelpPrintshelpforcommandskillKillatopologyrestartRestartatopologysubmitSubmitatopologyversionPrintversionofheron-cliGettingmorehelp:heronhelp<command>Printshelpandoptionsfor<command>Fordetaileddocumentation,gotohttp://heronstreaming.io
利用help命令查看如何提交一个tolopogy
$heronhelpsubmitusage:heronsubmit[options]cluster/[role]/[env]topology-file-nametopology-class-name[topology-args]Requiredarguments:cluster/[role]/[env]Cluster,role,andenvironmenttoruntopologytopology-file-nameTopologyjar/tar/zipfiletopology-class-nameTopologyclassnameOptionalarguments:--config-path(astring;pathtoclusterconfig;default:"/home/${user}/.heron/conf")--config-property(key=value;aconfigkeyanditsvalue;default:[])--deploy-deactivated(aboolean;default:"false")--extra-launch-classpath(astring;additionalJVMclasspathforlaunchingtopology)--topology-main-jvm-property(property=value;JVMsystempropertyforexecutingtopologymain;default:[])--verbose(aboolean;default:"false")
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。