Storm精华问答 | Storm如何连接MySQL?

Storm是Twitter开源的分布式实时大数据处理框架,被业界称为实时版Hadoop。随着越来越多的场景对Hadoop的MapReduce高延迟无法容忍,大数据实时处理解决方案的应用日趋广泛,目前已是分布式技术领域最新爆发点,而Storm更是流计算技术中的佼佼者和主流。

1

Q:遇到java.lang.NoClassDefFoundError: clojure.core.protocols$错误提示,这是什么原因

A:这是因为JDK的版本不匹配,安装虚拟机时系统自带了一个jdk.1.5.0。解决的办法是检查JDK版本,卸载系统自带的JDK,使用自己安装的JDK版本。

重新执行一遍,就可以解决问题了。

2

Q:Storm如何连接MySQL?

A:连接远程MySQL报如下错误:

message from server:"Host FILTER" is not allowed to connect tothis MySQL server

解决方案:

很可能是没有给其他IP访问你数据库的权限,可以试试在MySql数据库的主机上,在MySQL命令行中输入以下命令:

这样,给任何IP都赋予了访问的权限,任何IP都能以用户名:root ,密码:111111,来进行局域网的访问!

(命令中*.*是通配任何IP,你也可以指定IP)

3

Q:metaq启动是,总出现服务拒绝连接,请问如何解决?

A:解决的方法是在metaq安装目录下,删掉之前的日志文件,测试网络是否正常连接。将之前服务的metaq进程kill掉,然后重启。

4

Q:一个topology中可不可以有多个spout?

A关于这个问题,我是这样考虑的:实际应用中,如果我们每一条应用都创建一个topology的话,未免也太夸张了。如果是同一个应用,同一个数据来源,但是想分几种方式对这个数据做处理的话,这时候就应该是建多个spout了,让这些spout并行去读数据,然后交给订阅这个spout的bolt去处理就行,没必要一种处理方式建一个topology。

5

Q:在写启动storm集群的shell脚本时遇到的一个实际问题。shell脚本运行时报错误:/bin/bash^M: badinterpreter,这是怎么回事?

A:出现原因:Windows上写的脚本,直接拷贝到Linux系统上运行,这是由于格式不兼容所导致的。

解决方案(一):

1. 比如文件名为myshell.sh,vim myshell.sh

2. 执行vim中的命令 : set ff?查看文件格式,如果显示fileformat=dos,证明文件格式有问题。

3. 执行vim中的命令 :set fileformat=unix将文件格式改过来就可以了,然后:wq保存退出就可以了。

解决方案(二):

或者使用最笨的方法:将Windows下编辑好的脚本通过txt文本格式转换,然后在拷贝到Linux下。如果是使用Notepad编辑器进行编辑的话,可以在菜单栏上选择“编辑”—“档案格式转换”—“转换为 UNIX 格式”。

福利

扫描添加小编微信,备注“姓名+公司职位”,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!


发表评论
留言与评论(共有 0 条评论)
   
验证码:

相关文章

推荐文章

'); })();