大数据系列windows环境下搭建hadoop开发环境从hadoop URL读取数据

Posted 霓裳梦竹

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据系列windows环境下搭建hadoop开发环境从hadoop URL读取数据相关的知识,希望对你有一定的参考价值。

前言

搭建完hadoop集群之后在windows环境下搭建java项目进行测试 操作hdfs中的文件

版本一

package com.slp.hadoop274.hdfs;

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

import org.apache.hadoop.fs.FsUrlStreamHandlerFactory;
import org.junit.Test;

/**
 * 
 * @author sangliping
 *完成hdfs操作
 */
public class TestHDFS {
	

    /**
     * 读取hdfs文件
     * @throws IOException 
     */
	@Test
	public void readFile() throws IOException{
		URL url = new URL("hdfs://192.168.181.201:8020/user/sanglp/hadoop/copyFromLocal");
		URLConnection con = url.openConnection();
		InputStream is = con.getInputStream();
		byte[] buf = new byte[is.available()];
		is.read(buf);
		is.close();
		String str = new String(buf,"UTF-8");
		System.out.println(str);
	}
}

  以上运行测试的时候会报错,原因是URL无法识别hdfs协议

版本二、

package com.slp.hadoop274.hdfs;

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

import org.apache.hadoop.fs.FsUrlStreamHandlerFactory;
import org.junit.Test;

/**
 * 
 * @author sangliping
 *完成hdfs操作
 */
public class TestHDFS {
	
	static{
		//注册hdfs协议否则URL无法识别该协议
		URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());
	}
    /**
     * 读取hdfs文件
     * @throws IOException 
     */
	@Test
	public void readFile() throws IOException{
		URL url = new URL("hdfs://192.168.181.201:8020/user/sanglp/hadoop/copyFromLocal");
		URLConnection con = url.openConnection();
		InputStream is = con.getInputStream();
		byte[] buf = new byte[is.available()];
		is.read(buf);
		is.close();
		String str = new String(buf,"UTF-8");
		System.out.println(str);
	}
}

  这个时候就可以正确的打印出hdfs文件copyFromLocal的文件内容。

      附:可以将hadoop解压文件下etc中的log4j.properties文件放到项目文件src文件下使控制台打印更友好。

 

以上是关于大数据系列windows环境下搭建hadoop开发环境从hadoop URL读取数据的主要内容,如果未能解决你的问题,请参考以下文章

0基础搭建Hadoop大数据处理-编程

大数据学习系列之四 ----- Hadoop+Hive环境搭建图文详解(单机)

Hadoop大数据平台组件搭建系列——Zookeeper组件配置

大数据学习系列之六 ----- Hadoop+Spark环境搭建

基础搭建Hadoop大数据处理-编程

大数据学习系列之一 ----- Hadoop环境搭建(单机)