前一段时间,终于抽出了点时间,在自己本地机器上尝试搭建完全分布式Hadoop集群环境,也是借助网络上虾皮的Hadoop开发指南系列书籍一步步搭建起来的,在这里仅代表hadoop初学者向虾皮表示衷心的感谢,他总结的系列文档确实帮我们扫除了很多hadoop环境搭建过程中的障碍。
自己不班门弄斧,就自己在搭建和调试过程中遇到的问题给出方案,希望以后的伙伴少走一点弯路,下面就搭建过程中遇到的几个问题给出总结:
说明:本次搭建hadoop集群环境时,本人使用的是hadoop-2.2.0版本,目前Apache官网最新的版本是hadoop-2.6.2版本,服务器Linux环境是CentOS-6.4版本
1、首先说明下2.2版本的文件组成结构如下:
这个结构和1.0版本是存在差异的,不要为找不到conf目录而苦恼,都在etc目录下
2、中间1台Master和3台Slaver结点环境的构建和配置请参考:http://www.cnblogs.com/xia520pi/archive/2012/04/08/2437875.html,这里很详细。
3、环境搭建以后,通过./start-all.sh命令启动集群失败,很大一个原因就是服务器防火墙未关闭的原因,这时可以通过service iptables stop来关闭4台机器
上的防火墙。然后再重试启动
4、在本地windows环境下通过eclipse连接hadoop,需要注意2点:
第一点:下载或者自己编译hadoop-eclipse-plugin-1.0.0.jar文件,这一步很关键,是决定你本地eclipse能否连接hadoop的关键,这里网络上版本和方法
很多,我这里提供:http://pan.baidu.com/s/1qW279Fm可以下载。
第二点:在eclipse中指定本地hadoop的安装目录时,一定要指定到hadoop-core-1.*.jar所在的目录,而不是像虾皮文件中说的hadoop/下,主要原因是
不同hadoop版本中jar文件存放路径不同,如下:
请对照文章中第一张图的文字注释看,然后直接下一步就OK了。
5、按照虾皮文档运行第一个WordCount实例的时候,很多人在服务器上是成功的,但是在本地却一直在抛classNotFound的错误,我当初也很郁闷,
我本地的jar文件和类文件都在啊,为什么会找不到呢?
关于这个问题,网络上很多说法,但是都怎么靠谱,我找了很多资料,最后是通过下面的方式解决的,
下面这个是报错的时候我在main方法中的写法:
注意这里的写法,实际指定的是hdfs的主机地址,但是这里就是找不到类,改为下面的写法就OK了,至少不报classNotFound的错误了,
然后,可能有的伙伴又会遇到Exception in thread "main" java.io.IOException: Failed to set permissions of path: \tmp\hadoop-Administrator\mapred\staging\Administrator-4954228\.staging to 0700这样的错误,这个错误很简单,也很清楚,就是说没有操作文件的权限,这个是
windows环境下会出的一个问题,在linux上是不存在的,解决办法就是:修改/hadoop-1.0.2/src/core/org/apache/hadoop/fs/FileUtil.java里面的checkReturnValue方法,直接将该方法体注释掉,然后重新编译jar包,导入项目即可,这个地址可以直接下载到编译好的jar文件:http://download.csdn.net/detail/java2000_wl/4326323,
完成上面的所有步骤以后,应该就OK了。
正如虾皮博文所说的,这只是万里长征的第一步,搭建环境很简单,但也是最考验人的地方,希望有用到的伙伴参考。
Hadoop完全分布式搭建过程中遇到的问题小结的更多相关文章
-
hadoop集群搭建过程中遇到的问题
在安装配置Hadoop集群的过程中遇到了很多问题,有些是配置导致的,有些是linux系统本身的问题造成的,现在总结如下. 1. hdfs namenode -format出现错误:hdfs namen ...
-
CentOs6.8 hadoop集群搭建过程中的问题
1.Error: Java heap space 网上有很多说是java虚拟机内存不够的,我也试着修改内存大小,但是没起作用,后来发现是文件在传输过程中失真.文件在上传到HDFS后变成乱码,重新上传文 ...
-
Hadoop集群搭建过程中ssh免密码登录(二)
一.为什么设置ssh免密码登录 在集群中,Hadoop控制脚本依赖SSH来执行针对整个集群的操作.例如,某个脚本能够终止并重启集群中的所有守护进程.所以,需要安装SSH,但是,SSH远程登陆的时候,需 ...
-
超详细解说Hadoop伪分布式搭建--实战验证【转】
超详细解说Hadoop伪分布式搭建 原文http://www.tuicool.com/articles/NBvMv2原原文 http://wojiaobaoshanyinong.iteye.com/b ...
-
hadoop完全分布式搭建HA(高可用)
2018年03月25日 16:25:26 D调的Stanley 阅读数:2725 标签: hadoop HAssh免密登录hdfs HA配置hadoop完全分布式搭建zookeeper 配置 更多 个 ...
-
3.hadoop完全分布式搭建
3.Hadoop完全分布式搭建 1.完全分布式搭建 配置 #cd /soft/hadoop/etc/ #mv hadoop local #cp -r local full #ln -s full ha ...
-
ELK搭建过程中出现的问题与解决方法汇总
搭建过程中出现的问题 elasticsearch启动过程中报错[1] ERROR: [1] bootstrap checks failed [1]: the default discovery set ...
-
Hadoop2.2.0安装配置手册!完全分布式Hadoop集群搭建过程~(心血之作啊~~)
http://blog.csdn.net/licongcong_0224/article/details/12972889 历时一周多,终于搭建好最新版本hadoop2.2集群,期间遇到各种问题,作为 ...
-
Hadoop伪分布式搭建步骤
说明: 搭建环境是VMware10下用的是Linux CENTOS 32位,Hadoop:hadoop-2.4.1 JAVA :jdk7 32位:本文是本人在网络上收集的HADOOP系列视频所附带的 ...
随机推荐
-
关于mapreduce.map.java.opts
a) Update the property in relevant mapred-site.xml(from where client load the config). b) Import t ...
-
【Stage3D学习笔记续】真正的3D世界(五):粒子特效
先看效果,按下空格键添加粒子特效: 一般而言粒子特效的实现都是比较复杂的,且不说实现粒子特效的编码和设计,光是编写一个粒子编辑器就不是简单的一件事,但是作者使用了很取巧的方式来完成,我们接下来深入代码 ...
-
CodeForces 610C Harmony Analysis
构造 #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> us ...
-
Mysql数据库读写分离Amoeba
1.理解读写分离的原理 随着一个网站的业务不断扩展,数据不断增加,数据库的压力也会越来越大,对数据库或者SQL的基本优化可能达不到最终的效果,我们可以采用读写分离的策略来改变现状.读写分离现在被大量应 ...
-
将数据转成JSON
前言 前面我们在使用Strus2的时候,Struts2自带了组件能够让JavaBean对象.集合转成是JSON,不用我们自己拼接-这是非常方便的.但是,我们不一定使用Struts2框架来做开发呀.因此 ...
-
testng中使用reportng报告
1.pom.xml文件中添加依赖,重构一下项目(mvn compile) <dependency> <groupId>org.uncommons</groupId> ...
-
golang 缓冲区的终端输入
bufio包实现了有缓冲的I/O.它包装一个io.Reader或io.Writer接口对象,os.stdin就是实现了这个接口 package main import ( "bufio&qu ...
-
java 生成二维码、可带LOGO、可去白边
1.准备工作 所需jar包: JDK 1.6: commons-codec-1.11.jar core-2.2.jar javase-2.2.jar JDK 1.7: commons-codec- ...
-
pycharm + selenium + python 提示 Unresolved reference &#39;webdriver&#39; 解决办法
尝试使用python + selenium + pycharm 做自动化测试, 命令行pip install selenium 安装了selenium.但是使用pycharm 新建一个测试项目后并新建 ...
-
禁用quartz自动检查更新
禁用quartz自动检查更新的3种方法 1, <bean id="startQuertz" lazy-init="false" autowire=&quo ...