nf923gjzvb 发表于 2016-5-16 09:54:27

Mac OS上配置hadoop eclipse 调试环境

  1. 配置Hadoop
将下载的Hadoop压缩文件解压缩,找到conf目录,打开core-site.xml,修改代码如下所示:
Xml代码  


[*]<?xml version="1.0"?>  
[*]<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>  
[*]  
[*]<!-- Put site-specific property overrides in this file. -->  
[*]  
[*]<configuration>  
[*]    <property>  
[*]        <name>fs.default.name</name>  
[*]        <value>localhost:9000</value>  
[*]    </property>  
[*]</configuration>  

  

找到mapred-site.xml修改代码如下所示:
Xml代码  


[*]<?xml version="1.0"?>  
[*]<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>  
[*]  
[*]<!-- Put site-specific property overrides in this file. -->  
[*]  
[*]<configuration>  
[*]  <property>  
[*]    <name>mapred.job.tracker</name>  
[*]    <value>localhost:9001</value>  
[*]  </property>  
[*]</configuration>  

  

找到hdfs-site.xml修改代码如下所示:
Xml代码  


[*]<?xml version="1.0"?>  
[*]<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>  
[*]  
[*]<!-- Put site-specific property overrides in this file. -->  
[*]  
[*]<configuration>  
[*]  <property>  
[*]    <name>dfs.replication</name>  
[*]    <value>1</value>  
[*]  </property>  
[*]</configuration>  

  

找到hadoop-env.sh打开,加入以下配置
引用

export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home

export HADOOP_INSTALL=/Users/alex/Documents/DevRes/hadoop-version

export PATH=$PATH:$HADOOP_INSTALL/bin
  

其中,具体的目录根据你的实际情况配置。


2. 配置SSH
windows版本可安装openssh,本章主要介绍Mac OS,打开“系统偏好设置”,找到共享,勾选远程登录,如下图所示:

在terminal里面输入
  
  
  ssh localhost
  
  
  会有错误提示信息,表示当前用户没有权限。
  
  输入
  
  
  ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
  
  
  
  ssh-keygen表示生成秘钥;-t表示秘钥类型;-P用于提供密语;-f指定生成的秘钥文件。这个命令在”~/.ssh/“文件夹下创建两个文件id_dsa和id_dsa.pub,是ssh的一对儿私钥和公钥。接下来,将公钥追加到授权的key中去,输入:
  
  
  
  cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
  
  
  
  ssh免登陆设置完成。
  
  
  3. 运行Hadoop
打开终端,定位到Hadoop目录输入以下命令:
bin/hadoop namenode -format
  
  然后输入bin/start-all.sh
  
  4. 检查启动
  
  打开连接地址http://localhost:50070
如果找不到页面,请查看log日志(在hadoop目录中的log文件夹下),否则应当会看到以下页面:

然后再打开地址http://localhost:50030/
应当能看到以下页面(如果看不到,则证明你的jobtracker启动失败,请查看log):


至此,Hadoop配置成功。
  
  
  5. Mac下编译hadoop eclipse plugin
  进入%Hadoop_HOME%\src\contrib\
  编辑build-contrib.xml
  加入
  <property name="version" value="1.0.3"/>
  <property name="eclipse.home" location="D:/soft/eclipse-jee-indigo-SR1-win32/eclipse"/>
  
  将%Hadoop_HOME%下的jar包拷到eclipse所在目录的plugins目录下,比如hadoop-core-*.jar
  
  进入%Hadoop_HOME%\src\contrib\eclipse-plugin
  编辑build.xml
  在
  <path id="eclipse-sdk-jars">
  <fileset dir="${eclipse.home}/plugins/">
  </fileset>  
  </path>
  
  中加入
  <include name="hadoop*.jar"/>
  
  将compile模块中
  deprecation="${javac.deprecation}
  去掉。
  打开CMD在%Hadoop_HOME%\src\contrib\eclipse-plugin下使用ant
  
  这时开始编译。

[*]jar: 
[*]      version:1.0.3 
[*]      Copying 1 file to D:\hadoop-1.0.3\build\contrib\eclipse-plugin\lib 
[*]      Copying D:\hadoop-1.0.3\build\ivy\lib\Hadoop\common\commons-cli-1.2. 
[*]jar to D:\hadoop-1.0.3\build\contrib\eclipse-plugin\lib\commons-cli-1.2.jar 
[*]       Building jar: D:\hadoop-1.0.3\build\contrib\eclipse-plugin\hadoop-ec 
[*]lipse-plugin-1.0.3.jar 
[*] 
[*]BUILD SUCCESSFUL 
[*]Total time: 2 seconds
  注意,在编译的过程中可能会报错,主要出在jar时的copy问题上,把commons-cli-1.2.jar与拷到 %HADOOP_HOME%\build\ivy\lib\Hadoop\common\下,将hadoop-core-1.0.3.jar拷到%HADOOP_HOME%\build下即可。
  
  编译成功后,会在 %Hadoop_Home%\build\contrib\eclipse-plugin\下生成hadoop-eclipse-plugin-1.0.3.jar。将其拷到eclipse所在目录的plugins目录下。
  
  6. 配置Eclipse
将编译成功的eclipse-plugin复制到你的Eclipse的plugin文件夹中。


此时打开Eclipse,在Open Perspective中选择其它,找到Map/Reduce视图,打开它。
此时你会发现在Project Explorer和下面的视图中多了一个DFS Locations,右键新建Location如下图所示:


此时会打开一个窗口,对其进行配置,端口号就是我们刚才在core-site.xml中配置的端口好,既9000,如下图所示:

点击确定后即可在左边的Project Explorer面板中对DFS Location进行展开,如下图所示:


第六步:在Eclipse中写代码
在Map/Reduce视图中新建一个Map/Reduce项目(该项目与普通Java项目没什么区别),新建一个Java类,该类主要用于读取我们前面复制到HDFS中的那个文件内容:
Java代码  


[*]package cn.com.fri;  
[*]  
[*]import java.io.FileNotFoundException;  
[*]import java.io.IOException;  
[*]import java.net.URISyntaxException;  
[*]  
[*]import org.apache.hadoop.fs.FSDataInputStream;  
[*]import org.apache.hadoop.fs.FileContext;  
[*]import org.apache.hadoop.fs.Path;  
[*]import org.apache.hadoop.io.IOUtils;  
[*]import org.apache.hadoop.security.AccessControlException;  
[*]  
[*]public class Test {  
[*]    public static void main(String[] args) throws AccessControlException,  
[*]            FileNotFoundException, IOException, URISyntaxException {  
[*]        FileContext fc = FileContext  
[*]                .getFileContext();//如果运行在hadoop location中,不需要配置URI,否则需要给一个URI  
[*]        FSDataInputStream fsInput = fc.open(new Path(  
[*]                "/tmp/hadoop-alex/persons.rtf"));  
[*]        IOUtils.copyBytes(fsInput, System.out, 4090, false);  
[*]        fsInput.seek(0);  
[*]        IOUtils.copyBytes(fsInput, System.out, 4090, false);  
[*]    }  
[*]}  

  
然后右键->Run As->Run on hadoop,此时会让你选择一个location,就选中我们刚才新建的location即可。
  
  
  
  
  
  
  
  
页: [1]
查看完整版本: Mac OS上配置hadoop eclipse 调试环境