前一段时间,终于抽出了点时间,在自己本地机器上尝试搭建完全分布式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完全分布式搭建过程中遇到的问题小结的更多相关文章

  1. hadoop集群搭建过程中遇到的问题

    在安装配置Hadoop集群的过程中遇到了很多问题,有些是配置导致的,有些是linux系统本身的问题造成的,现在总结如下. 1. hdfs namenode -format出现错误:hdfs namen ...

  2. CentOs6.8 hadoop集群搭建过程中的问题

    1.Error: Java heap space 网上有很多说是java虚拟机内存不够的,我也试着修改内存大小,但是没起作用,后来发现是文件在传输过程中失真.文件在上传到HDFS后变成乱码,重新上传文 ...

  3. Hadoop集群搭建过程中ssh免密码登录(二)

    一.为什么设置ssh免密码登录 在集群中,Hadoop控制脚本依赖SSH来执行针对整个集群的操作.例如,某个脚本能够终止并重启集群中的所有守护进程.所以,需要安装SSH,但是,SSH远程登陆的时候,需 ...

  4. 超详细解说Hadoop伪分布式搭建--实战验证【转】

    超详细解说Hadoop伪分布式搭建 原文http://www.tuicool.com/articles/NBvMv2原原文 http://wojiaobaoshanyinong.iteye.com/b ...

  5. hadoop完全分布式搭建HA(高可用)

    2018年03月25日 16:25:26 D调的Stanley 阅读数:2725 标签: hadoop HAssh免密登录hdfs HA配置hadoop完全分布式搭建zookeeper 配置 更多 个 ...

  6. 3.hadoop完全分布式搭建

    3.Hadoop完全分布式搭建 1.完全分布式搭建 配置 #cd /soft/hadoop/etc/ #mv hadoop local #cp -r local full #ln -s full ha ...

  7. ELK搭建过程中出现的问题与解决方法汇总

    搭建过程中出现的问题 elasticsearch启动过程中报错[1] ERROR: [1] bootstrap checks failed [1]: the default discovery set ...

  8. Hadoop2.2.0安装配置手册!完全分布式Hadoop集群搭建过程~(心血之作啊~~)

    http://blog.csdn.net/licongcong_0224/article/details/12972889 历时一周多,终于搭建好最新版本hadoop2.2集群,期间遇到各种问题,作为 ...

  9. Hadoop伪分布式搭建步骤

    说明: 搭建环境是VMware10下用的是Linux CENTOS 32位,Hadoop:hadoop-2.4.1  JAVA :jdk7 32位:本文是本人在网络上收集的HADOOP系列视频所附带的 ...

随机推荐

  1. sql注入工具sqlmap使用参数说明

    Options(选项):--version 显示程序的版本号并退出-h, --help 显示此帮助消息并退出-v VERBOSE 详细级别:0-6(默认为1)Target(目标):以下至少需要设置其中 ...

  2. OpenGL+VS2013+WIN7(64)组态

    1.下载windows在下面glut安装文件:http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip 2. 拆开发现五个文件 ...

  3. PHP 12 :字符串的操作

    原文:PHP 12 :字符串的操作 本章介绍字符串的操作.之所以要把字符串单独拿出来讲,是因为字符串在每种语言里都是非常重要的.并且也是大家关心的.我们从以下几个方面介绍字符串: 字符串的表现形式. ...

  4. MVC 使用jQuery上传文件

    在ASP.NET MVC Framework中,上传文件真是超级简单,看代码: View <formaction="<%=Url.Action("Process&quo ...

  5. Microsoft .NET Pet Shop 简介

    最初研究 .NET Pet Shop 的目的是用 Microsoft .NET 实现 Sun 主要的 J2EE 蓝图应用程序 Sun Java Pet Store 同样的应用程序功能. 根据用 .NE ...

  6. 常见ActiveX控件下载大全

    ActiveX是微软对于一系列策略性面向对象程序技术和工具的称呼,ActiveX控件可以在Windows窗体和Web程序上使用,所以不管是什么语 言开发的应用程序只要在windows窗体和html页面 ...

  7. .net操作PDF的一些资源(downmoon收集)

    因为业务需要,搜集了一些.net操作pdf的一些资源,特在此分享. 1.如何从 Adobe 可移植文档格式 (PDF) 文件中复制文本和图形 http://support.microsoft.com/ ...

  8. 网页头一定要加的代码段(加注版)一行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10

      网页头部常见的一段代码 <!--[if lt IE 7 ]><html class="ie6"><![endif]--> <!--[i ...

  9. Asp.Net Web Api 接口

    如何让你的 Asp.Net Web Api 接口,拥抱支持跨域访问.   由于 web api 项目通常是被做成了一个独立站点,来提供数据,在做web api 项目的时候,不免前端会遇到跨域访问接口的 ...

  10. idea执行go

    因为经常在不同的地方调代码,每次都调整环境很麻烦,于是在犯懒的时候发现了更直接简便的办法,关于idea集成go环境的,不需要按部就班的部署. 首先下代码,比如https://github.com/sa ...