- 浏览: 114878 次
- 性别:
- 来自: 北京
-
文章分类
- 全部博客 (109)
- hive (5)
- web (1)
- spring (7)
- struts2 (1)
- s2sh (2)
- mysql (3)
- hadoop (31)
- hbase (6)
- java (8)
- ubuntu (8)
- pig (2)
- Interview (2)
- zookeeper (1)
- system (1)
- 遥控 (1)
- linux (3)
- myeclipse (2)
- Oracle (1)
- redis (9)
- ibatis (2)
- 架构 (2)
- 解析xml (1)
- autoProxy (0)
- jedis (6)
- http://www.infoq.com/cn/articles/tq-redis-copy-build-scalable-cluster (1)
- xmemcached (1)
- 图片服务器 (1)
- 对象池 (0)
- netty (1)
最新评论
-
laoma102:
已经不好使了,能找到最新的吗
spring官方文档 -
di1984HIT:
不错,。不错~
pig安装
hadoop执行stop-all.sh的时候总是出现 “no namenode to stop”
这个原因其实是因为在执行stop-all.sh时,找不到pid文件了。
在 HADOOP_HOME/conf/ hadoop-env.sh 里面,修改配置如下:
export HADOOP_PID_DIR=/home/hadoop/pids
pid文件默认在/tmp目录下,而/tmp是会被系统定期清理的,所以Pid文件被删除后就no namenode to stop”
本人在搭建hadoop集群时折腾了好几天,过程中先后遇到了以下问题,记录下来和大家分享,以免后面再碰到
(1).当在格式化namenode时出现cannot create directory /usr/local/hadoop/hdfs/name/current的时候,请将hadoop的目录权限设为当前用户可写sudo chmod -R a+w /usr/local/hadoop,授予hadoop目录的写权限
(2).当碰到192.168.30.6:chown:changing ownership of 'usr/local/hadoop ../logs':operation not permitted时,可用sudo chown -R test:test /usr/local/hadoop来解决,即将hadoop主目录授权给当前test用户
(3).如果slaves机上通过jps只有TaskTracker进程,没有datanode进程,请查看日志,是不是有“could only be replicated to 0 nodes,instedas of 1”有这样的提示错误,如果有,可能就是没有关闭防火墙所致,服务器和客户机都关闭(sudo ufw disable)后,所有进程启动正常,浏览器查看状态也正常了(ubuntu防火墙关闭)
(4).要在服务器机上把masters和slavs机的IP地址加到/etc/hosts,当然这个不影响start-all.sh启动,只是浏览器jobtacker上找不到节slaves节点
(5).ssh免密码登陆时,注意文件authorized_keys和.ssh目录权限,如果从masters机上scp authorized_keys到slaves机上出现拒绝问题,那就在salves机上也ssh-keygen,这样目录和文件就不会有权限问题了,就可以实现ssh免密码登陆了,或直接将.ssh目录拷过去,在slaves机上新建.ssh目录权限好像和masters机的目录权限不一样
运行正常后,可以用wordcount例子来做一下测试:
bin/hadoop dfs –put /home/test-in input //将本地文件系统上的 /home/test-in 目录拷到 HDFS 的根目录上,目录名改为 input
bin/hadoop jar hadoop-examples-0.20.203.0.jar wordcount input output
#查看执行结果:
# 将文件从 HDFS 拷到本地文件系统中再查看:
$ bin/hadoop dfs -get output output
$ cat output/*
# 也可以直接查看
$ bin/hadoop dfs -cat output/*
如果在reduce过程中出现"Shuffle Error:Exceeded MAX_FAILED_UNIQUE_FETCHES;bailing-out"错误,原因有可能是/etc/hosts中没有将IP映射加进去,还有可能是关于打开文件数限制的问题,需要改vi /etc/security/limits.conf,详情请看:Hadoop常见问题及解决办法
如果hadoop启动时,slave机报连接拒绝错误,即连不上master9000端口,则namenode运行不起来时,可以先确保单机是不是可以正常运行伪分布式模式,可能是因为没有做ssh localhost,也可以查看是不是/etc/hosts文件IP映射有问题,一定注意该机的IP地址是不是唯一映射一个服务器名,不然可能也会出错
1.http://wiki.apache.org/hadoop/ConnectionRefused
2.http://ubuntuforums.org/showthread.php?t=1057604
3.http://www.hadoopor.com/thread-1056-1-1.html
如果是一个master机和一个slave机,做wordcount测试,是不会报上述错误的,不知道为什么两台slave机后,就报上述错误,解决方案如下(将masters机和其中一台slaves机中的/etc/hosts中masters机的IP映射地址改成服务器的名字,而不是IP地址):
1.http://hi.baidu.com/daodaowuhen/blog/item/b299b486f6c8aea86c811996.html
2.http://blog.sina.com.cn/s/blog_6e7e94bc0100pcjw.html
如果需要在Eclipse上运行MapReduce程序,需要将hadoop目录下的eclipse插件(hadoop/contrib/eclipse-plugin)拷到eclipse安装目录下的plugins下。此时可以把hadoop的测试例子wordcount从src/examples中拷到eclipse工程中,在open run dialog的arguments中设置好输入和输出参数,然后run as->java application就可以了
如果要run as->run on hadoop,即要在集群上运行MapReduce程序,则需要设置hadoop location,设置好master的namenode和jobtracker的IP及端口号,能正确连到DFS Locations就表明可以分布式运行MapReduce程序了,本人在此过程中,先后遇到以下问题:
1.Connecting to DFS test has encountered a problem
这个原因是因为直接采用hadoop0.20.203.0和相应包下的eclipse插件,此时MapReduce viewer是出现了,但根本连不上DFS,查了很多资料,很多说是因为hadoop下的eclipse插件和eclipse版本不匹配
参考资料1:http://lucene.472066.n3.nabble.com/about-eclipse-plugin-td3047557.html
参考资料2:自己动手编译对应hadoop版本的eclipse plugin
按照上面两条解决方案,我选择了第一种,虽然前一种hadoop是0.20.2的版本,但已经有编译好的可以用的eclipse插件,还有o.20.203这个版本是今年5月份出来的,还比较新,问题暴露的还少,而第二种解决方案需要自己配置编译,好像还要用ant命令,这个工具还没用过,所以免得麻烦
2.error:call to failed on local exception:java.io.EOFException
原因如下:eclipse-plugin和Hadoop版本对不上(因为刚开始不想换hadoop版本,就直接把那个插件(hadoop-plugin-0.20.3-snapshot.jar)拷到0.20.203版本里跑了一下,结果报上面的错,后来将hadoop版本换成hadoop0.20.2就好了)
参考资料:http://lucene.472066.n3.nabble.com/Call-to-namenode-fails-with-java-io-EOFException-td2933149.html
3.Plug-in org.apache.hadoop.eclipse was unable to load class
org.apache.hadoop.eclipse.launch.HadoopApplicationLaunchShortcut.
可以尝试将终端切到eclipse目录下用./eclipse clean来将以前载过的hadoop插件清除掉,我遇到这个错误后,这样操作后就好了。
参考资料:http://www.cloudobjects.de/2010/11/running-hadoop-jobs-using-eclipse.html
上述三种错误,是我在这个过程中遇到的错误,如果遇到类似错误,可以试着用上述方法来排除一下,因为hadoop在搭建的过程中遇到的问题实在千奇百怪,稍微一步有差池,说不准后面运行时就报错,就算报相同错误提示的, 也可能是其它原因导致的,上述只提供其中一种解决方案
参考资料:
1.ubuntu server上java安装
2.http://www.infoq.com/cn/articles/hadoop-config-tip
3.http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop3/
4.http://www.iteye.com/topic/891735
5.http://www.iteye.com/topic/284849
6.http://muxiaolin.iteye.com/blog/1075575
这个原因其实是因为在执行stop-all.sh时,找不到pid文件了。
在 HADOOP_HOME/conf/ hadoop-env.sh 里面,修改配置如下:
export HADOOP_PID_DIR=/home/hadoop/pids
pid文件默认在/tmp目录下,而/tmp是会被系统定期清理的,所以Pid文件被删除后就no namenode to stop”
本人在搭建hadoop集群时折腾了好几天,过程中先后遇到了以下问题,记录下来和大家分享,以免后面再碰到
(1).当在格式化namenode时出现cannot create directory /usr/local/hadoop/hdfs/name/current的时候,请将hadoop的目录权限设为当前用户可写sudo chmod -R a+w /usr/local/hadoop,授予hadoop目录的写权限
(2).当碰到192.168.30.6:chown:changing ownership of 'usr/local/hadoop ../logs':operation not permitted时,可用sudo chown -R test:test /usr/local/hadoop来解决,即将hadoop主目录授权给当前test用户
(3).如果slaves机上通过jps只有TaskTracker进程,没有datanode进程,请查看日志,是不是有“could only be replicated to 0 nodes,instedas of 1”有这样的提示错误,如果有,可能就是没有关闭防火墙所致,服务器和客户机都关闭(sudo ufw disable)后,所有进程启动正常,浏览器查看状态也正常了(ubuntu防火墙关闭)
(4).要在服务器机上把masters和slavs机的IP地址加到/etc/hosts,当然这个不影响start-all.sh启动,只是浏览器jobtacker上找不到节slaves节点
(5).ssh免密码登陆时,注意文件authorized_keys和.ssh目录权限,如果从masters机上scp authorized_keys到slaves机上出现拒绝问题,那就在salves机上也ssh-keygen,这样目录和文件就不会有权限问题了,就可以实现ssh免密码登陆了,或直接将.ssh目录拷过去,在slaves机上新建.ssh目录权限好像和masters机的目录权限不一样
运行正常后,可以用wordcount例子来做一下测试:
bin/hadoop dfs –put /home/test-in input //将本地文件系统上的 /home/test-in 目录拷到 HDFS 的根目录上,目录名改为 input
bin/hadoop jar hadoop-examples-0.20.203.0.jar wordcount input output
#查看执行结果:
# 将文件从 HDFS 拷到本地文件系统中再查看:
$ bin/hadoop dfs -get output output
$ cat output/*
# 也可以直接查看
$ bin/hadoop dfs -cat output/*
如果在reduce过程中出现"Shuffle Error:Exceeded MAX_FAILED_UNIQUE_FETCHES;bailing-out"错误,原因有可能是/etc/hosts中没有将IP映射加进去,还有可能是关于打开文件数限制的问题,需要改vi /etc/security/limits.conf,详情请看:Hadoop常见问题及解决办法
如果hadoop启动时,slave机报连接拒绝错误,即连不上master9000端口,则namenode运行不起来时,可以先确保单机是不是可以正常运行伪分布式模式,可能是因为没有做ssh localhost,也可以查看是不是/etc/hosts文件IP映射有问题,一定注意该机的IP地址是不是唯一映射一个服务器名,不然可能也会出错
1.http://wiki.apache.org/hadoop/ConnectionRefused
2.http://ubuntuforums.org/showthread.php?t=1057604
3.http://www.hadoopor.com/thread-1056-1-1.html
如果是一个master机和一个slave机,做wordcount测试,是不会报上述错误的,不知道为什么两台slave机后,就报上述错误,解决方案如下(将masters机和其中一台slaves机中的/etc/hosts中masters机的IP映射地址改成服务器的名字,而不是IP地址):
1.http://hi.baidu.com/daodaowuhen/blog/item/b299b486f6c8aea86c811996.html
2.http://blog.sina.com.cn/s/blog_6e7e94bc0100pcjw.html
如果需要在Eclipse上运行MapReduce程序,需要将hadoop目录下的eclipse插件(hadoop/contrib/eclipse-plugin)拷到eclipse安装目录下的plugins下。此时可以把hadoop的测试例子wordcount从src/examples中拷到eclipse工程中,在open run dialog的arguments中设置好输入和输出参数,然后run as->java application就可以了
如果要run as->run on hadoop,即要在集群上运行MapReduce程序,则需要设置hadoop location,设置好master的namenode和jobtracker的IP及端口号,能正确连到DFS Locations就表明可以分布式运行MapReduce程序了,本人在此过程中,先后遇到以下问题:
1.Connecting to DFS test has encountered a problem
这个原因是因为直接采用hadoop0.20.203.0和相应包下的eclipse插件,此时MapReduce viewer是出现了,但根本连不上DFS,查了很多资料,很多说是因为hadoop下的eclipse插件和eclipse版本不匹配
参考资料1:http://lucene.472066.n3.nabble.com/about-eclipse-plugin-td3047557.html
参考资料2:自己动手编译对应hadoop版本的eclipse plugin
按照上面两条解决方案,我选择了第一种,虽然前一种hadoop是0.20.2的版本,但已经有编译好的可以用的eclipse插件,还有o.20.203这个版本是今年5月份出来的,还比较新,问题暴露的还少,而第二种解决方案需要自己配置编译,好像还要用ant命令,这个工具还没用过,所以免得麻烦
2.error:call to failed on local exception:java.io.EOFException
原因如下:eclipse-plugin和Hadoop版本对不上(因为刚开始不想换hadoop版本,就直接把那个插件(hadoop-plugin-0.20.3-snapshot.jar)拷到0.20.203版本里跑了一下,结果报上面的错,后来将hadoop版本换成hadoop0.20.2就好了)
参考资料:http://lucene.472066.n3.nabble.com/Call-to-namenode-fails-with-java-io-EOFException-td2933149.html
3.Plug-in org.apache.hadoop.eclipse was unable to load class
org.apache.hadoop.eclipse.launch.HadoopApplicationLaunchShortcut.
可以尝试将终端切到eclipse目录下用./eclipse clean来将以前载过的hadoop插件清除掉,我遇到这个错误后,这样操作后就好了。
参考资料:http://www.cloudobjects.de/2010/11/running-hadoop-jobs-using-eclipse.html
上述三种错误,是我在这个过程中遇到的错误,如果遇到类似错误,可以试着用上述方法来排除一下,因为hadoop在搭建的过程中遇到的问题实在千奇百怪,稍微一步有差池,说不准后面运行时就报错,就算报相同错误提示的, 也可能是其它原因导致的,上述只提供其中一种解决方案
参考资料:
1.ubuntu server上java安装
2.http://www.infoq.com/cn/articles/hadoop-config-tip
3.http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop3/
4.http://www.iteye.com/topic/891735
5.http://www.iteye.com/topic/284849
6.http://muxiaolin.iteye.com/blog/1075575
发表评论
-
mapreduce Bet
2012-04-11 15:00 926import java.io.IOException; imp ... -
hadoop 输出格式
2012-04-05 17:18 731http://blog.csdn.net/dajuezhao/ ... -
hadoop mapreduce 原理
2012-03-31 16:14 700http://www.cnblogs.com/forfutur ... -
hadoop搭建问题
2012-03-30 13:23 811file:///E:/hadoop/搭建/hadoop集群搭建 ... -
hadoop输出文件格式
2012-03-26 10:09 659http://apps.hi.baidu.com/share/ ... -
hadoop 学习
2012-03-26 09:48 660http://hi.baidu.com/shuyan50/bl ... -
hadoop提高性能建议
2012-03-22 22:40 686http://langyu.iteye.com/blog/91 ... -
hadoop例子
2012-03-22 22:09 737http://www.hadoopor.com/thread- ... -
hadoop
2012-04-25 13:16 756精通HADOOP http://blog.csdn.net/ ... -
Hadoop Hive与Hbase整合
2012-03-07 15:02 362http://www.open-open.com/lib/vi ... -
hive hadoop 代码解析
2012-04-25 13:16 799http://www.tbdata.org/archives/ ... -
Hadoop MapReduce操作MySQL
2012-03-05 17:33 896http://www.javabloger.com/artic ... -
hadoop hdfs常用操作类
2012-03-05 10:03 1963import java.io.IOException; ... -
hdfs 操作类自己的
2012-03-02 17:57 563package operateFile; import ... -
hadoo 文件常用操作
2012-03-02 15:53 782http://www.360doc.com/content/1 ... -
Mapper,Reducer,Wrapper的Java模板
2012-03-02 08:24 1120http://www.easyigloo.org/?p=114 ... -
hadoop基础知识
2012-03-02 08:00 745http://www.blogjava.net/killme2 ... -
hadoop 自己封装的接口
2012-04-25 13:16 697http://www.360doc.com/content/1 ... -
HadoopFileUtil
2012-03-01 14:42 1841import java.io.File; import jav ... -
hadoop ExtendedFileUtil
2012-03-01 14:34 1057在Hadoop编写生产环境的任务时,定义以下任务,要求是相同的 ...
相关推荐
If you are a system or application developer interested in learning how to solve practical problems using the Hadoop framework, then this book is ideal for you. This book is also meant for Hadoop ...
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统( Distributed File ...
Hadoop 2.x is spreading its wings to cover a variety of application paradigms and solve a wider range of data problems. It is rapidly becoming a general-purpose cluster platform for all data ...
It explains how MapReduce works, and shows you how to reformulate specific business problems in MapReduce. Throughout the pages, you'll find in-depth Java code examples that you can use, derived from...
You will see how the parallel programming paradigm, such as MapReduce, can solve many complex data processing problems. The book also covers the important aspects of the big data software development...
To resolve problems of globalization, random-write and duration in Hadoop, a data indexing approach on Hadoop using the Java Persistence API (JPA) is elaborated in the implementation of a KD-tree ...
Knowing the problems Solution approaches Approach 1 – Preaggregate the results Approach 2 – Aggregate the results at query-time Writing the NetworkLogsMapper job Writing the mapper class ...
Later, the technology was adopted into an open-source framework called Hadoop, and then Spark emerged as a new big data framework which addressed some problems with MapReduce. In this book we will ...
【标题解析】:“Big_problems_with_big_data_-_Hadoop_interfaces_security.pdf”这个标题指出文档主要讨论的是大数据(Big Data)领域中的重大问题,特别是与Hadoop接口相关的安全性问题。Hadoop是一个开源框架,...
You’ll find illuminating case studies that demonstrate how Hadoop is used to solve specific problems. This third edition covers recent changes to Hadoop, including material on the new MapReduce API, ...
It also provides illuminating case studies that illustrate how Hadoop is used to solve specific problems. Looking to get the most out of your data? This is your book. Use the Hadoop Distributed File...
Learn to solve big-data problems the MapReduce way, by breaking a big problem into chunks and creating small-scale solutions that can be flung across thousands upon thousands of nodes to analyze ...