这里主要是利用Hadoop提供的API来操作,在本地编写代码,操作集群上的HDFS.
本篇介绍的是若干从HDFS读取文件的操作.
工具:IntelliJ IDEA Community Edition 2018.1.3
1.使用java.net.URL
使用此方法的话,需要进行一些其他操作.此处读取的是hdfs-site.xml这个配置文件,取出前100字节并输出.
import org.apache.hadoop.fs.FsUrlStreamHandlerFactory;
import org.apache.hadoop.io.IOUtils;
import java.io.InputStream;
import java.net.URL;
public class ReadFromHdfs {
static {
//若想让Java识别hdfs地址,还需要进行如下操作:
URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());
}
public static void main(String[] args) throws Exception{
//创建一个输入流,URL对象传入namenode的地址,默认端口是9000.
InputStream in = new URL("hdfs://192.168.133.153:9000/test/read/hdfs-site.xml").openStream();
//有一个问题,如果配置了HA,那么就需要传入active状态的namenode的地址.
byte[] get = new byte[100];
in.read(get);
String read = new String(get);