您的位置:首页 > 运维架构

近期学习hadoop遇到的问题以及解决方法

2012-07-25 23:40 447 查看
1.避免每次启动hadoop都要执行-format:

在配置文件hdfs-site.xml改变hadoop.tmp.dir即可.

2.关于guide上的wordcount不能编译的问题:

结合另外一个文件夹的cli(具体名字记不清楚了),hadoop-core-${HADOOP_VERSION}.jar:(增加的cli库)这样编译.

3.虚拟机virtualbox使用时无法让共享文件夹开机时自动挂载:

比如在vb上设置共享文件夹名称为gongxiang, 网上大多数介绍的是做一下几步:

创建共享文件夹:mkdir /mnt/share

挂载共享文件夹:mount -t vboxsf gongxiang /mnt/share

卸载:umount -f /mnt/share

开机自动挂载:在/etc/fstab末尾加入 gongxiang
/mnt/share vboxsf defualts 0 0

以上是网上的方法,
其实还要在/ectc/rc.local追加如下命令:

mount
-t vboxsf gongxiang /mnt/share

4.主机可以ping通虚拟机,但是虚拟机无法ping通主机:

在VirtualBox管理=>全局设定里面,选择网络,增加一个host-only网卡即可,然后在设置里面选择混杂模式,并不用建个桥那么麻烦,之前一直想建一个桥但是由于网上的版本太多再加上VirtualBox的版本不同,所以一直没建成功,所以在这里选择了这个方法.

5.VirtualBox在ubuntu下启动一个虚拟机都提示VERR_FILE_NOT_FOUND:

现在还没找到根本的解决办法,换了版本还是不行啊蛋疼...现在的做法是在设置里面把原来的镜像(VDI)删除然后再添加回那个镜像,就能启动虚拟机了!

6.HBASE里面其他命令诸如:List,status能用,但是就是不能create:

在单机里面,把hosts文件里面的127.0.1.1改成127.0.0.1就行了(貌似删除也行),但是在集群里面我就不知道了,我建立的是2个节点的集群,虚拟机s1作为regionserver但是就是一直启动不了,不知道是不是因为zookeeper必须为3个节点.使用的是hbase自带的zookeeper.http://www.hadoopor.com/thread-4421-1-1.html这是我在hadoopor发的帖子,一直咩有有效的解决方法,哎...

7.在使用sqoop的时候,无法将mysql数据导入(import)到hdfs中:

后来才发现原来是远程连接的问题,GRANT使用错误了,应该是@master,@s1,分别是我主机和虚拟机的别名!而且是匿名用户.如果要设置密码访问则要加上IDENTIFIED
BY "(密码)".此外,还要将JDBC的jar文件放在sqoop文件夹的lib文件夹下

8.在学习hadoop的datajoin(事实上datajoin用现在的hive已经能非常方便地实现了)的时候,运行jar包的时候发现无法找到一些函数:

这时候应该在命令行后打入主函数后加上:
-libjars lib/hadoop-datajoin-1.0.3.jar (之后跟输入输出文件夹).

9.由于刚学J***A不久,编译J***A的时候,抛出异常,cantfindmathod:...<init>():

其实是定义的类少了0参数数目的结构函数,在类的定义的时候加上得了.

10.hadoop的1.0.3API与旧的API的问题:

编译J***A文件的时候,遇到KeyValueInputFormat.class无法作为FieldInputFormat的参数,原因是程序前面导入包的时候出现的问题,事实长,hadoop
API里有两个FieldInputFormat,如果这个不行,换另外一个路径的FieldInputFormat即可(其他情况下如果出现参数类型匹配错误也可以看看API里面是不是有两个此类文件)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: