Hadoop读取XML配置文件

原来我要实现的是最基本的将本地文件拷贝到HDFS上去,所以写了下面的程序:

package com.lcy.hadoop.file;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

public class CopyFromLocalFile {

    public static void main(String[] args) throws Exception{
        // TODO Auto-generated method stub     Configuration conf=new Configuration();
        FileSystem fs=FileSystem.get(conf);
        Path src=new Path("/usr/local/hadoop-1.2.1/input/violence.txt");
        Path dst=new Path("hdfs://localhost:9000/user/hadoop/input/CopyFromLocalFile.txt");
        fs.copyFromLocalFile(src, dst);
        fs.close();
    }
}

但是上面这段程序只能把它打包成jar文件在terminal运行

对上述程序加以改进:

package com.lcy.hadoop.file;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

public class CopyFromLocalFile {

    public static void main(String[] args) throws Exception{
        // TODO Auto-generated method stub
        Configuration conf=new Configuration();
        conf.set("fs.default.name", "hdfs://localhost:9000"));
        FileSystem fs=FileSystem.get(conf);
        Path src=new Path("/usr/local/hadoop-1.2.1/input/violence.txt");
        Path dst=new Path("hdfs://localhost:9000/user/hadoop/input/CopyFromLocalFile.txt");
        fs.copyFromLocalFile(src, dst);
        fs.close();
    }
}

这样就可以直接在Eclipse本地运行了

在上面程序中

conf.set("fs.default.name", "hdfs://localhost:9000"));

这句代码中的参数是Hadoop配置文件conf/core-site.xml中的信息,是我打开配置文件查看然后再填写进去的,所以我需要直接读取配置文件的信息

关于Configuration:

Hadoop中的组件是通过Hadoop自己的配置API来实现的。一个Configuration类的实例代表配置属性及其取值的一个集合,每个属性由一个String来命名,而值的类型可以是多种类型之一

通过Configuration可以从使用简单结构定义的名-值对的XML文件中读取其属性值

Configuration conf=new Configuration();
conf.addResource(配置文件路径);
属性值=conf.get(属性)

上述程序最终修改为如下:

package com.lcy.hadoop.file;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

public class CopyFromLocalFile {

    public static void main(String[] args) throws Exception{
        // TODO Auto-generated method stub
        Configuration conf=new Configuration();
        Path path=new Path("/usr/local/hadoop-1.2.1/conf/core-site.xml");
        conf.addResource(path);
        conf.set("fs.default.name", conf.get("fs.default.name"));     System.out.println("fs.default.name:"+conf.get("fs.default.name"));
        FileSystem fs=FileSystem.get(conf);
        Path src=new Path("/usr/local/hadoop-1.2.1/input/violence.txt");
        Path dst=new Path("hdfs://localhost:9000/user/hadoop/input/CopyFromLocalFile.txt");
        fs.copyFromLocalFile(src, dst);
        fs.close();
    }
}

时间: 2024-10-01 22:11:12

Hadoop读取XML配置文件的相关文章

【XML配置文件读取】使用jdom读取XML配置文件信息

在项目中我们经常需要将配置信息写在配置文件中,而XML配置文件是常用的格式. 下面将介绍如何通过jdom来读取xml配置文件信息. 配置文件信息 <?xml version="1.0" encoding="UTF-8"?> <config> <base-config> <stringValue>Hello world</stringValue> <integerValue>8</integ

java读取xml配置文件和properties配置文件

1.读取xml 使用dom4j解析xml  下载地址:http://sourceforge.net/projects/dom4j/files/ import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; try { File f = new File(filename); if (!f.exists()) { System.out.println(" Error : Config file

Spring读取xml配置文件的原理与实现

本篇博文的目录: 一:前言 二:spring的配置文件 三:依赖的第三方库.使用技术.代码布局 四:Document实现 五:获取Element的实现 六:解析Element元素 七:Bean创造器 八:Ioc容器的创建 九:总结 一:前言: Spring作为Bean的管理容器,在我们的项目构建中发挥了举足轻重的作用,尤其是控制反转(IOC)和依赖(DI)注入的特性,将对象的创建完全交给它来实现,当我们把与其他框架进行整合时,比如与Mybatis整合,可以把sqlMapClientTemplat

Java读取xml配置文件

package test.com; import java.io.FileInputStream; import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.Node;import org.w3c.dom.NodeList; pu

使用Spring读取xml文件中的配置信息

一般写程序时我们都会将一些配置信息写到配置文件中,以便在不修改源码的情况下对程序的某些点进行更改.这里介绍一种Spring读取xml配置文件的方式,其基本思路如下:定义一个java类,其中定义一些静态变量对应我们的配置信息,然后采用注入的方式将变量值初始化为配置值.示例代码如下: 新建一个java类: package java; public class Config { //要配置的值 public static int value = 0; //这里不能写成静态的 public void s

c++ 使用xerces读取XML

XML作为一种重要的文件格式,应用面非常之广.从ASP.NET的web.config,到Android的页面设计开发,Webservice通信等.有时候难免需要我们通过程序进行创建与解析,最近刚完成一个C++项目,就需要读取XML配置文件,关于XML解析器的选择很多,可以参考:http://www.metsky.com/archives/578.html. 个人比较喜欢Apache的开源项目,所以使用的是:Xerces.它的使用方法,其实官方上已经有很多demo,详见:http://xerces

模拟Spring中applicationContext.xml配置文件初始化bean的过程

package com.xiaohao.action; import java.io.File; import java.lang.reflect.Method; import java.util.Collections; import java.util.HashMap; import java.util.Map; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; /** *

读取xml数据装配到字典中之应用场景

前段时间看到支付宝设置里面有个多语言这个功能,蛮有意思的,就想双休没事的话做个相关的demo玩玩,可是礼拜六被妹子拽出去玩了一天,来大上海有大半年了,基本没有出去玩过,妹子说我是超级宅男,也不带她出去走走,妹子毕业后从大东北来到上海陪我一起打拼,想想蛮对不起她的.周六一天玩的很充实,走了很多路(一个星期的路都在这一天走完了),看了很多风景,回来洗个澡睡得很舒服,第二天也很清醒,其实除了写代码和玩游戏,发现双休出去走走真的挺不错的.附上几张图片,希望大家有时间多出去走走,也许有意外的收获啊! 星期

JAVA读取xml(转)

Java parse XML methods(4) 关键字: xml  1. 介绍   1>DOM(JAXP Crimson解析器)     DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信息片断的集合.这个层次结构允许开发人员在树中寻找特定信息.分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作.由于它是基于信息层次的,因而DOM被认为是基于树或基于对象的.DOM 以及广义的基于树的处理具有几个优点.首先,由于树在内存中是持久的,因