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

Hadoop开发环境配置(伪分布模式)

2011-08-14 10:53 423 查看

Hadoop开发环境

安装插件

0.20.0下原始的eclispe插件无法使用,需要下载网上改造过的:

hadoop-eclipse-plugin-0.20.3-SNAPSHOT.jar

copy到eclispe插件目录,然后重启eclispe。

PS:这里出现一个问题,发现在eclispe3.7下插件不会加载,最终删除旧的eclispe,使用新解压的文件解决,可以将旧eclispe插件目录下的文件COPY到新目录。同样可以使用之前的插件。

配置插件环境

配置Map/Reduce Master和DFS Master。里面的Host、Port分别为你在mapred-site.xml、core-site.xml中配置的地址及端口

Hadoop配置更改

之前配置的伪分布模式上,采用的localhost的配置,为使eclispe可以访问,需要更改为IP的配置方式,这里需要注意的是:

需要更改以下的内容:

1、 修改 /etc/hosts,删除 127.0.0.1 ,添加本机ip的解析。

[root@localhost~]# cat /etc/hosts

# Do notremove the following line, or various programs

# thatrequire network functionality will fail.

#127.0.0.1 localhost.localdomain localhost

::1 localhost6.localdomain6 localhost6

192.168.128.133 localhost.localdomain localhost

2、 修改相关配置文件

[hadoop@localhostconf]$ cat core-site.xml

<?xmlversion="1.0"?>

<?xml-stylesheettype="text/xsl" href="configuration.xsl"?>

<!--Put site-specific property overrides in this file. -->

<configuration>

<property>

<name>fs.default.name</name>

<value>hdfs://192.168.128.133:9000/</value>

</property>

</configuration>

[hadoop@localhostconf]$ cat mapred-site.xml

<?xmlversion="1.0"?>

<?xml-stylesheettype="text/xsl" href="configuration.xsl"?>

<!--Put site-specific property overrides in this file. -->

<configuration>

<property>

<name>mapred.job.tracker</name>

<value>192.168.128.133:8021</value>

</property>

</configuration>

3、 另外SSH也需要查看Knowshosts里面是否有IP,否则会出现错误二,可以执行如下,则自动添加

ssh 192.168.128.133

4、 删除原临时目录,重新格式化

hadoop namenode –format

如果不按如上操作,可能会出现下面的错误:

错误一:

2011-08-14 09:44:28,206 INFOorg.apache.hadoop.ipc.Server: IPC Server handler 7 on 9000, calladdBlock(/user/hadoop/test.txt, DFSClient_1170937058) from192.168.128.133:37785: error: java.io.IOException: File /user/hadoop/test.txt could onlybe replicated to
0 nodes, instead of 1

java.io.IOException: File /user/hadoop/test.txt couldonly be replicated to 0 nodes, instead of 1

at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:1271)

atorg.apache.hadoop.hdfs.server.namenode.NameNode.addBlock(NameNode.java:422)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

atsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:508)

at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:959)

at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:955)

at java.security.AccessController.doPrivileged(Native Method)

at javax.security.auth.Subject.doAs(Subject.java:396)

at org.apache.hadoop.ipc.Server$Handler.run(Server.java:953)

错误二:

This does not map back to the address - POSSIBLE BREAK-INATTEMPT

Eclispe调试Hadoop配置过程中问题

遇到如下问题:

Cannot run program "chmod": CreateProcess error=2

注意:需要安装Cygwin,并设置环境变量。就算不用本地的环境也必须。

安装Cygwin,并设置Cygwin_HOME/bin到windows Path变量

Cygwin下安装SSH

复制Hadoop文件

拷贝Hadoop项目中的eclipse plugin jar文件到eclipse plugin下

eclipse 在选项设置hadoop home路径,添加hadoop location(主要设置namenode 机器名端口和jobtracker端口即可)

新建map reduce project

从hadoop项目拷贝WordCount.java文件到新的项目

右键WordCount.java,设置运行参数

右键WordCount.java=> run on hadoop

注意:

windows下跑Hadoop Eclipse plugin,无论是连接本地还是远程,Cygwin是必须的安装的,调试远程不需要配置ssh。

每个hadoop版本必须和Hadoop Eclipse plugin一直否则无法进行连接和执行程序

--------------------------------------------------------------------------------------------------------------------

作者:CNZQS|JesseZhang
个人博客:CNZQS(http://www.cnzqs.com)

版权声明:除非注明,文章均为原创,可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明

--------------------------------------------------------------------------------------------------------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: