关于Hadoop运行java的详解

从 hadoop URL 读取数据


1. 自定义编写URLCat方法:

import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;

import org.apache.hadoop.fs.FsUrlStreamHandlerFactory;
import org.apache.hadoop.io.IOUtils;

public class URLCat{
        static {
                URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());
        }

        public static void main(String[] args) throws Exception {
                InputStream in = null;
                try {
                        in = new URL(args[0]).openStream();
                        IOUtils.copyBytes(in, System.out, 4096, false);
                } finally {
                        IOUtils.closeStream(in);
                }
        }
}

代码说明:这里采用的方法是通过FsUrlStreamHandlerFactory实例调用java.net.URL的setURLStreamHandlerFactory方法。每个java虚拟机只能调用一次这个方法,因此通常在静态中调用。

准备工作:
1.开启集群,我用的是一个master,两个slave的分布式
2.我的用户是hdfs,因此在/home/hdfs目录下创建文件夹fileTest
3.进入到文件夹fileTest,创建两个txt文本,名字自定义
4.将文件中写入字符串,echo “Hello World”>file1.txt,echo “Hello hadoop”>file2.txt
5.在HDFS上创建输入文件夹,如果不指定路径则自动创建到根目录hadoop fs -mkdir -p input
6.上传本地文件到集群input目录下
hadoop fs -put ~/fileTest/file*.txt input

运行步骤:
1. 用HelloWorld测试环境运行(保证环境可用)
2. 将

export CLASSPATH=.:/var/local/hadoop/hadoop-2.6.0/share/hadoop/common/lib/*:/var/local/hadoop/hadoop-2.6.0/share/hadoop/common/hadoop-common-2.6.0.jar

添加到/etc/profile中,source /etc/profile 使其生效
common包负责java的编译运行,因此找到common包是主要目的
3. 运行命令:
hadoop jar jar文件名 类名 路径名

#编译java文件,生成class文件
javac   URLCat.java
jar  cvf  URLCat.jar  URLCat.class
hadoop jar 类名.jar 类名 hdfs://192.168.253.131:9000/文件路径
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值