Eclipse安装Hadoop插件

本人需要用到Eclipse安装Hadoop插件,但是对于一个从没用过的Eclipse的我来说也是找了很多东西,下面我就介绍一下怎么安装。

JDK安装配置

  如果还没有安装Eclipse的朋友们需要先安装并配置好JDK,再下载安装Eclipse,这些我相信大家走到这一步的时候肯定都会了,就不赘述了。接下来,进入Hadoop环境搭建。

2.Hadoop插件安装和配置

  在Eclipse配置Hadoop环境之前应该是没有对应插件的(进入Eclipse —> Windows —> Preferences),如下图所示。

  要安装Hadoop插件的话我们得先知道所安装的Hadoop版本,这样才能对症下药安装对应插件。这需要在我们的虚拟机(或Xshell等远程连接工具)中进行查看,操作如下图所示。

  如图所示,博主安装的Hadoop版本为2.2.0,所以需要安装对应的插件,插件下载地址为:32位版JDK下载 hadoop2.2 32位版Windows运行包,64位版JDK下载 hadoop2.2 64位版Windows运行包

  下载完成之后,将其放到你所安装的Eclipse目录下的dropins文件下。

  

 

  然后,我们重启一下,然后再次进入Windows —> Preferences可看到我们已经成功安装好了Hadoop插件(如下图所示),接下来我们要对其进行配置。

  点击Hadoop Map/Reduce选项,进入配置页面,点击Browse,选择Hadoop安装路径(能够看到bin文件夹的路径)填入其中。是的,配置就是这么简单。

  

3. 配置环境变量

  从桌面电脑图标右键进入“属性”界面,选择“高级系统配置”,选择“环境变量”,然后选择“系统变量”下的新建,添加一个HADOOP_HOME的变量,变量值为HADOOP安装路径(能够看到bin文件夹的路径),博主的为:D:\Software\Hadoop2.2\hadoop-2.2.0-x64

                                                                             

 

  接下来,往系统变量Path里追加“;HADOOP_HOME\bin”,注意:win10系统按照以下格式添加,win7应该是字符串格式,如果没有分号一定要自己补上!

4. 配置Map/Reduce Locations

  

打开 Windows—> show view —> Other,选择MapReduce Tools下的Map/Reduce Locations。

  点击下图右上角位置的小象,进入配置页面。

  

   其中,Location name自定义一个名字就行,配置Map/Reduce Master和DFS Mastrer,Host和Port配置成与core-site.xml的设置一致即可(Host为hadoop节点的hostname,DFS Mastrer下的port为HDFS端口号,User name为安装Hadoop节点用户名称,如下图)。

  配置好上面的hostname后,需要添加一条hostname 的解析。 在Windows下,以管理员的身份打开C:\Windows\System32\drivers\etc\hosts文件,并追加以下字段(hostname对应个人的配置)。

                                                          

 

5. 测试

  在虚拟机中启动集群

  点击Eclipse右上角的小象图标,然后就可以看到Hadoop节点的信息了。

  此时,在虚拟机中用Shell命令的形式可以对Hadoop进行管理,比如新建目录、文件、上传和下载等操作和在Eclipse下的可视化操作都是同步的了(如果没有同步请先右键点击refresh刷新一下),也就是说可以同步对Hadoop进行管理和开发。在这种情况下当然是在Eclipse中更简便咯,这也就是我们本次教程的目的所在。

 

 

下面我们在Eclipse上编写我们的代码

在编写代时候需要导入相应的jar包

jar的位置在Hadoop安装目录下的、share\hadoop下,

可以根据自己的开发需要什么jar包就将什么包导入即可

 

  1. import java.io.IOException;
  2. import java.net.URI;
  3. import java.net.URISyntaxException;
  4. import org.apache.hadoop.conf.Configuration;
  5. import org.apache.hadoop.fs.FileSystem;
  6. import org.apache.hadoop.fs.Path;
  7. import org.apache.hadoop.fs.permission.FsAction;
  8. import org.apache.hadoop.fs.permission.FsPermission;
  9.  
  10. public class HDFS_Test {
  11.  
  12. public static void main(String[] args) {
  13.  
  14.      HDFS_Test gfs = new HDFS_Test();
  15.     
  16.      FileSystem fs = gfs.getHadoopFS();
  17.  
  18.      gfs.createDir(fs);
  19.      gfs.PutFileToHDFS(fs);
  20.      gfs.getFileFromHDFS(fs);
  21.      gfs.chmodFile(fs);
  22.      gfs.dropHDFSPath(fs);
  23. }
  24.  
  25. //根据配置文件获取hdfs操作对象
  26. public FileSystem getHadoopFS(){
  27.     
  28.      FileSystem fs = null;
  29.     
  30.      Configuration conf = null;
  31.      conf = new Configuration();
  32.     
  33.      String hdfsUserName = "root";
  34.      URI hdfsUri = null;
  35.     
  36.      try {
  37.          hdfsUri = new URI("hdfs://192.168.3.190:9000");
  38.      } catch (URISyntaxException e) {
  39.          // TODO Auto-generated catch block
  40.          e.printStackTrace();
  41.      }
  42.     
  43.      try {
  44.          fs = FileSystem.get(hdfsUri,conf,hdfsUserName);
  45.      } catch (IOException e) {
  46.          // TODO Auto-generated catch block
  47.          e.printStackTrace();
  48.      } catch (InterruptedException e) {
  49.          // TODO Auto-generated catch block
  50.          e.printStackTrace();
  51.      }
  52.      return fs;
  53. }
  54.  
  55. //创建一个文件
  56.  
  57. public boolean createDir(FileSystem fs){
  58.     
  59.      boolean b = false;
  60.     
  61.      Path path = new Path("/test");
  62.     
  63.      try {
  64.          b = fs.mkdirs(path);
  65.      } catch (IOException e) {
  66.          // TODO Auto-generated catch block
  67.          e.printStackTrace();
  68.      }finally{
  69.          try {
  70.              fs.close();
  71.          } catch (IOException e) {
  72.              // TODO Auto-generated catch block
  73.              e.printStackTrace();
  74.          }
  75.      }
  76.      return b;
  77. }
  78.  
  79.  
  80. //上传文件
  81. public void PutFileToHDFS(FileSystem fs){
  82.     
  83.      Path localPath = new Path("file:d://demo.txt");
  84.     
  85.      Path hdfsPath = new Path("/test/");
  86.     
  87.      try {
  88.          fs.copyFromLocalFile(localPath, hdfsPath);
  89.      } catch (IOException e) {
  90.          // TODO Auto-generated catch block
  91.          e.printStackTrace();
  92.      }finally{
  93.          try {
  94.              fs.close();
  95.          } catch (IOException e) {
  96.              // TODO Auto-generated catch block
  97.              e.printStackTrace();
  98.          }
  99.      }      
  100.     }
  101.    
  102.     //文件下载  
  103.     public void getFileFromHDFS(FileSystem fs){
  104.        
  105.         Path HDFSPath = new Path("/test/demo.txt");
  106.        
  107.         Path localPath = new Path("file:d://test//");
  108.        
  109.         try {
  110.             fs.copyToLocalFile(HDFSPath, localPath);
  111.         } catch (IOException e) {
  112.             // TODO Auto-generated catch block
  113.             e.printStackTrace();
  114.         }finally{
  115.             try {
  116.                 fs.close();
  117.             } catch (IOException e) {
  118.                 // TODO Auto-generated catch block
  119.                 e.printStackTrace();
  120.             }
  121.         }
  122.     }
  123.    
  124.     //修改hdfs上的文件权限
  125.     public void chmodFile(FileSystem fs){
  126.        
  127.         Path HDFSfile = new Path("/test/demo.txt");
  128.        
  129.         FsPermission permission = new    FsPermission(FsAction.READ,FsAction.READ,FsAction.READ);
  130.        
  131.         try {
  132.             fs.setPermission(HDFSfile, permission);
  133.         } catch (IOException e) {
  134.             // TODO Auto-generated catch block
  135.             e.printStackTrace();
  136.         }finally{
  137.             try {
  138.                 fs.close();
  139.             } catch (IOException e) {
  140.                 // TODO Auto-generated catch block
  141.                 e.printStackTrace();
  142.             }
  143.         }
  144.     }
  145.     //删除文件
  146.     public boolean dropHDFSPath(FileSystem fs){
  147.         boolean b = false;
  148.        
  149.         Path path = new Path("/test");
  150.         try {
  151.             b = fs.delete(path,true);
  152.         } catch (IOException e) {
  153.             // TODO Auto-generated catch block
  154.             e.printStackTrace();
  155.         }finally{
  156.             try {
  157.                 fs.close();
  158.             } catch (IOException e) {
  159.                 // TODO Auto-generated catch block
  160.                 e.printStackTrace();
  161.             }
  162.         }
  163.         return b;
  164.     }
  165. }

 

 代码写完后运行即可。

 

 

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值