zoukankan      html  css  js  c++  java
  • [b0007] windows 下 eclipse 开发 hdfs程序样例

    目的:

    学习使用hdfs 的java命令操作

    相关:

    进化:

    [b0010] windows 下 eclipse 开发 hdfs程序样例 (二)

    [b0011] windows 下 eclipse 开发 hdfs程序样例 (三)

    环境:

    hadoop2.6.4 伪分布式

    win7 + eclipse Version: Luna Service Release 1 (4.4.1)

    1. 新建项目

    1.1 新建java项目  Hadoop_伪分布式

    1.2 导入hadoop 2.6.4 的jar包

    项目名字上右键->属性->Java构建路径->添加库->用户库,创建用户库 hadoop2.6

    点击用户库hadoop2.6->添加外部jar  依次将hadoop2.6.4 解压目录下的所有jar包,及对应子目录 lib下jar包导入

    sharehadoopcommon

    sharehadoophdfs

    sharehadoopyarn

    sharehadoopmapredude

    2.新建类,编写如下代码   

       通过流的方式,从hdfs 下载一个文件到linux 本地,

     1 /**
     2  *  功能:      将 hdfs://ssmaster:9000/data/paper.txt下载到Linux下/home/hadoop/paper.txt
     3  *  调用方式:hadoop jar 打包包名.jar  
     4  */
     5 package hadoop.hdfs;
     6 
     7 import java.io.FileNotFoundException;
     8 import java.io.FileOutputStream;
     9 import java.io.IOException;
    10 
    11 import org.apache.commons.compress.utils.IOUtils;
    12 import org.apache.hadoop.conf.Configuration;
    13 import org.apache.hadoop.fs.FSDataInputStream;
    14 import org.apache.hadoop.fs.FileSystem;
    15 import org.apache.hadoop.fs.Path;
    16 
    17 public class Test_Fun {
    18 
    19     public static void main(String[] args) {
    20         
    21     Configuration conf =new Configuration();
    22     
    23     FileSystem fs = null;
    24     Path src = null;
    25     FSDataInputStream in = null;
    26     FileOutputStream out = null;
    27       
    28     src = new Path("hdfs://ssmaster:9000/data/paper.txt" );
    29     
    30     try {
    31         
    32       fs = FileSystem.get(conf) ;
    33       in = fs.open(src);
    34 
    35        } catch (IOException e) {
    36         e.printStackTrace(); 
    37     }
    38     
    39     try {
    40         out = new FileOutputStream ("/home/hadoop/paper.txt");
    41     } catch (FileNotFoundException e) {
    42         e.printStackTrace();
    43     }
    44     
    45     try {
    46         IOUtils.copy(in, out);
    47     } catch (IOException e) {
    48         e.printStackTrace();
    49     }
    50 
    51 }
    52 }
    View Code

    备注:

    "hdfs://ssmaster:9000/data/paper.txt"  中前面的路径取自 hadoop安装后的配置文件 core-site.xml里的

    参数 <name>fs.defaultFS</name><value>hdfs://ssmaster:9000</value>

    3.导出jar包、执行

    右键项目名字->导出->java/jar文件 ->指定jar路径名字->指定main类 ->完成

    上传到linux服务器,执行程序,查看结果

    hadoop@ssmaster:~/java_program$ hadoop jar hadoop_hdfs_download.jar
    hadoop@ssmaster:~$ ls
    Desktop    Downloads         hadoop-2.6.4.tar.gz  java_program  paper.txt              Pictures  spark-2.0.1-bin-hadoop2.6.tgz  Videos
    Documents  examples.desktop  hdfs-site.xml        Music         park-2.0.1-bin-hadoop  Public    Templates

    总结:

    步骤麻烦啰嗦。

    其他可选方案,需要研究

    windows下的eclipse 中的程序运行,直接操作hadoop

    在linux中安装eclipse,运行程序

  • 相关阅读:
    python从字符串内取两个符号之间的内容
    C# 判读取得字符编码格式
    jquery:字符串(string)转json
    SQL Server 2008 SQL2012 SQL2014 收缩日志 清空删除大日志文件
    WEB 倒计时
    成功配置TOMCAT的LOG4J日志系统,格式:HTML+每天以YYYY-MM-DD.LOG命名的日志文件
    IE Error: '__doPostBack' is undefined 问题解决
    分享:JAVA和C# 3DES加密解密
    好用的linux工具
    python多线程的概念(转载)
  • 原文地址:https://www.cnblogs.com/sunzebo/p/5991232.html
Copyright © 2011-2022 走看看