zoukankan      html  css  js  c++  java
  • eclipse添加hadoop开发插件

    在开发hadoop的时候去查找了一下eclipse marketplace是没有找到hadoop的插件,上网又找了一下发现原来hadoop中其实是带有这样的插件的,

    其实很简单只要将这个插件复制到eclipse/plugins目录下然后重启eclipse就可以了

    重启之后就可以看到eclipse  == 》window  ==》 preferences  可以看到多了一个Hadoop Map/Reduce   点击Browse按钮找到你的hadoop的解压目录如图:

    配置好了环境之后我们来创建一个本地连接,点击Windows==》show view  ==》 other 选择MapReduce Tools ==》Map/Reduce Location

    然后我们新建一个本地连接,这这里右键  New hadoop Location

    然后我们的配置host:这里的Map/Reduce Master对应hadoop配置文件中的mapred-site.xml

                  DFS Master的配置对应core-site.xml详细请看图

    配置好后的应该是这样的:

    这里配置好之后我们可以启动hadoop来简单的测试一下

    如果跟上面的输出信息一样证明正常启动了,如果没有正常启动估计是在配置的时候除了问题。下面我给几个简单的小测试程序可以运行一下

    package com.hadoop.test;
    
    import java.io.IOException;
    
    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.fs.FileStatus;
    import org.apache.hadoop.fs.FileSystem;
    import org.apache.hadoop.fs.Path;
    
    /**
     * copy local file  to hadoop system    将文件拷贝到HDFS
     * @author root
     *
     */
    public class ConpyFile {
    
        public static void main(String[] args) {
            //get local system configuration
            Configuration conf = new Configuration();
            try {
                
                FileSystem hdfs = FileSystem.get(conf);
                
                Path src = new Path("/home/admin/test3");
                Path dst = new Path("/");
                
                hdfs.copyFromLocalFile(src, dst);;
                
                FileStatus files[] = hdfs.listStatus(dst);
    
                for(int i = 0; i < files.length; i++){
                    System.out.println("status :"+files[i]);
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
            
            
            
        }
        
    }

    这里注意我的文件是已经创建的然后拷贝到hdfs上如果在上传的时候找不到文件可能跟linux下的权限有关系。建议修改权限就可以了。

    package com.hadoop.test;
    
    import java.io.IOException;
    
    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.fs.FSDataOutputStream;
    import org.apache.hadoop.fs.FileSystem;
    import org.apache.hadoop.fs.Path;
    
    /**
     * create a hdfs file   创建hdfs文件
     * @author root
     *
     */
    public class CreateHDFSFile {
        
        public static void main(String[] args) {
            Configuration conf = new Configuration();  //获取系统的hadoop的配置环境
            try {
                FileSystem hdfs = FileSystem.get(conf);//获取文件系统对象
                byte bytes[] = "Hello word !".getBytes();
                Path dfs = new Path("/test");
                FSDataOutputStream outputStream = hdfs.create(dfs);  
                outputStream.write(bytes, 0, bytes.length);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
        }
    
    }

    重命名hadoop系统中的一个文件的名称:

    package com.hadoop.test;
    
    import java.io.IOException;
    
    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.fs.FileSystem;
    import org.apache.hadoop.fs.Path;
    
    /**
     * rename hdfs file 
     * @author root
     *
     */
    public class ReNameHDFSFile {
    
        public static void main(String[] args) {
            Configuration conf = new Configuration();
            FileSystem hdfs;
            try {
                hdfs = FileSystem.get(conf);
                Path frpath = new Path("/test3");
                Path topath = new Path("/test1");
                boolean isRename = hdfs.rename(frpath, topath);
                System.out.println("rename is finish:"+isRename);
                
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

    检查文件的最后的修改时间:

    package com.hadoop.test;
    
    import java.io.IOException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.fs.FileStatus;
    import org.apache.hadoop.fs.FileSystem;
    import org.apache.hadoop.fs.Path;
    
    /**
     * check hdfs file last modify time
     * @author root
     *
     */
    public class CheckFileLastModifyTime {
    
        public static void main(String[] args) {
            Configuration conf = new Configuration();
            try {
                FileSystem hdfs = FileSystem.get(conf);
                
                Path fpath = new Path("/test1");
                FileStatus fileStatus = hdfs.getFileStatus(fpath);
                long lastModifyTime = fileStatus.getModificationTime();
                
                
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                System.out.println("the last modify time is :"+sdf.format(new Date(lastModifyTime)));
                        
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
        }
        
    }
  • 相关阅读:
    Mybatis源代码分析之类型转换
    eclipse中对于@override注解的函数报父类没有该方法
    Mybatis源代码分析之metadata包
    Android GC
    有道单词本导出xml转换.
    广播的接收与U盘广播
    Bitmap和Drawable相互转换方法
    如何提交程序到Android Market
    error parsing xml:unbound prefix
    android获取屏幕尺寸、密度
  • 原文地址:https://www.cnblogs.com/tangkai/p/3439897.html
Copyright © 2011-2022 走看看