概览:
==================================== 邪恶的分割线 =======================
访问HDFS
一,通过JAVA的URL类直接访问HDFS
A,输入命令 bin/hadoop namenode -format
B,输入命令 bin/start-all.sh 启动单机模式
(前提是都配置好的情况下如果没有配置好可以参考http://hadoop.apache.org/common/docs/current/quickstart.html)
C,hdfs -copyFromLocal txy.txt /home/txy 拷贝一个文件进去
public class URLTest {
static {
URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());
}
public static void main(String[] args) throws MalformedURLException, IOException {
InputStream in = null;
try {
in = new URL("hdfs://localhost:9000/home/txy").openStream();
IOUtils.copyBytes(in, System.out, 4096, false);
} finally {
IOUtils.closeStream(in);
}
}
}
执行结果:
输出该拷贝进去的文件。
其中程序两个注意点:
1,
URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());
这个有个非常大的限制就是JVM只能调用一次这个,不能调用第二次来修改。
2,hdfs://localhost:9000 即 core-site.xml 这个配置文件配置的fs.default.name属性
3,自己遇到的一个小问题就是 客户端的jar包版本要和服务端的一样。
要不然会抛错
二,通过FileSystem访问(hadoop的API)
public class FileSystemCat {
public static void main(String[] args) throws Exception {
String uri = "hdfs://localhost:9000/home/txy";
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(URI.create(uri), conf);
InputStream in = null;
try {
in = fs.open(new Path(uri));
IOUtils.copyBytes(in, System.out, 4096, false);
} finally {
IOUtils.closeStream(in);
}
}
}
因为第一种方法有那么大的限制,所以基本是不可能使用的。所以可以采用第二种方案。
其中
Configuration conf = new Configuration();
会读取系统默认的配置conf/core-site.xml配置
而uri指定了schema是hdfs,如果不指定,将会读取默认的本地文件系统。
=========================== 善良的分割线 ======================
常见问题:
Exception in thread "main" java.io.IOException: Call to localhost/127.0.0.1:9000 failed on local exception: java.io.EOFException
报此错说明客户端hadoop版本和服务端hadoop版本不一致。
- 大小: 66.4 KB
分享到:
相关推荐
#### 一、Hadoop概览 **1.1 什么是Hadoop?** Hadoop是由Apache Software Foundation所维护的一个开源软件框架,它为大规模数据处理提供了高效、可靠且可扩展的支持。Hadoop的核心组件包括HDFS(Hadoop ...
HDFS(Hadoop Distributed File System)是Hadoop生态系统中的一个重要组成部分,它为用户提供了高容错性的文件存储服务,并能够提供高吞吐量的数据访问能力,适合部署在低成本的商用硬件上。 **HDFS的工作流程**:...
### Talend学习笔记2——mysql文件导入到HDFS #### 关键知识点概览 - **Talend Data Integration** - **MySQL 数据库** - **Hadoop 和 HDFS(Hadoop Distributed File System)** #### 详细知识点说明 ##### 1. ...
### Hadoop 学习资源概览 #### 一、Hadoop 官方文档 - **网址**: [Hadoop官方文档](http://hadoop.apache.org/common/docs/current/index.html) - **内容概述**: - **Hadoop简介**: 包括Hadoop的历史背景、核心...
5、Hadoop生态圈的学习笔记,主要记录HDFS、MapReduce、Yarn相关读书笔记及源码分析等 5.1 HDFS Hadoop快速入门 HDFSOverView Hadoop广义生态系统 Hadoop高可用配置 HadoopCommon分析 HDFS集群相关管理 HDFS Shell ...
### 大数据基础复习知识点详解 ...综上所述,本篇笔记全面介绍了大数据的基本概念、Hadoop的核心技术、HDFS的结构和功能、以及HDFS的特性和通信协议等方面的知识点,为大数据领域的学习者提供了详尽的学习资料。
### 大数据学习笔记知识点概览 #### 第一部分:Spark学习 ##### 第1章:Spark介绍 - **1.1 Spark简介与发展** - **背景**:随着大数据处理需求的增长,传统的Hadoop MapReduce框架虽然提供了强大的计算能力,但...
### 云计算与数据中心建设知识点概览 #### 一、云计算概述 - **定义**: 云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备。 - **特点**: - **按需自助服务...
### Hive学习笔记——深入理解大数据处理框架 #### HIVE架构详解与Hadoop关系解析 Hive作为基于Hadoop的大数据处理框架,其架构设计旨在简化海量数据的存储、查询和分析过程。它提供了类似SQL的查询语言——HiveQL...
### MapReduce 学习笔记概览 #### 一、MapReduce 概述 MapReduce 是一种编程模型,用于大规模数据集(通常是分布在计算机集群上的数据)的并行运算。概念"Map(映射)"和"Reduce(归约)"是其主要思想,受到了函数...
小红书笔记搜索引擎web应用开发 项目背景 利用小红书针对关键词杭州的日志进行重新编排,提供搜索与推荐功能。 运行环境 # 软件 ubuntu 18.04 java 1.8 hadoop 2.9.2 hbase 1.4.9 kafka 2.11.0-1.0.0 spark 2.4.0 ...