前言
网络上有关于JAVA API读取Hadoop的代码,但资料很杂乱,这边简单用例子记录下如何读取操作。
例子
package hadoop;
import java.net.URI;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
/**
*
* @author Administrator
*/
public class ReadHadoop {
public static void main(String[] args) {
Configuration conf = new Configuration();
conf.set("hadoop.job.ugi", "root,123"); //设置存储服务器的用户名,密码
String uri = "hdfs://192.168.4.27:9000/test/问题记录.txt";
FSDataInputStream in = null;
try {
//得到文件系统的实例
FileSystem fs = FileSystem.get(URI.create(uri), conf); //URI.create(uri)要创建
//通过FileSystem的open方法打开一个指定的文件
in = fs.open(new Path(uri));
//将InputStream中的内容通过IOUtils的copyBytes方法拷贝到System.out中
IOUtils.copyBytes(in, System.out, 4096, false);
//seek到position 1
in.seek(1);
//在执行一边拷贝输出工作
IOUtils.copyBytes(in, System.out, 4096, false);
} catch (Exception ex) {
System.out.println(ex.getMessage());
} finally {
IOUtils.closeStream(in);
}
}
}
注意点
1.设置存储服务器用户名,密码
2.得到文件系统实例的URL的创建
分享到:
相关推荐
在开始编写Java代码之前,你需要确保已经在开发环境中安装了Hadoop,并配置了Hadoop的环境变量。同时,需要引入Hadoop的Java库,这通常可以通过Maven或Gradle等构建工具添加依赖来完成。 三、连接Hadoop集群 1. ...
在大数据处理领域,Hadoop是一个不可或缺的开源框架,它提供了分布式存储和计算的能力,使得海量数据的处理变得可能。在企业环境中,为了监控Hadoop集群的健康状况和性能,KPI(关键性能指标)的统计至关重要。本篇...
HDFS提供了高容错性的存储机制,使得大规模数据可以在多台普通服务器上进行分布式存储。MapReduce则是一个编程模型,用于大规模数据集的并行计算,实现了数据处理的高效性。 1. **HDFS(Hadoop Distributed File ...
### Hadoop分布式文件系统核心知识点解析 #### 一、前提和设计目标 1. **硬件错误常态化:** HDFS的设计前提是硬件错误被视为常态而非异常,这是因为HDFS集群可能由成百上千台服务器组成,其中任何组件都可能出现...
2. 编写MapReduce程序:根据业务需求编写Java代码,实现Map和Reduce功能。 3. 执行MapReduce任务:使用`hadoop jar`命令提交任务到集群,进行分布式计算。 4. 结果获取:计算完成后,使用`hadoop fs -get`命令将...
Hadoop是一套由Apache基金会开发的开源分布式存储与计算框架。从源代码角度深入分析Hadoop,可以更好地理解分布式计算、云计算以及如何在分布式环境下高效处理大数据。 首先,Hadoop的诞生与Google的技术演进紧密...
- HDFS(Hadoop Distributed File System):分布式文件系统是Hadoop的核心,它将大文件分割成多个块,并在集群中的多台服务器上存储这些块的副本,保证了数据的高可用性和容错性。 - MapReduce:是Hadoop用于大...
HDFS是Google的GFS(Google File System)的开源实现,它是一个分布式文件系统,设计用于跨多台服务器存储和处理大型数据集。在HDFS中,NameNode作为主节点,负责元数据管理,包括文件系统的命名空间和文件的块映射...
2. 数据读取:通过`hadoop fs -get`下载HDFS上的文件,或使用`hadoop fs -cat`查看文件内容。 3. MapReduce编程:学习Java的MapReduce编程模型,编写Mapper和Reducer类,使用`hadoop jar`提交任务。 六、Hadoop工具...
在这个例子中,可能会有一个Java程序,读取文本文件,通过MapReduce框架统计每个单词出现的次数。Map阶段会将文本切分成单词,而Reduce阶段则统计每个单词的总数。 【HDFS】是Hadoop的分布式文件系统,它能存储和...
HDFS(Hadoop Distributed File System)是Hadoop的核心组成部分,提供了分布式文件系统服务,使得数据可以在多台服务器之间进行高效的分发、存储和处理。而本资料“Hadoop技术HDFS Java API简介”则主要涵盖了使用...
3. **编写Java代码**:使用生成的Java客户端代码,创建HBase连接,实例化Thrift客户端,然后调用其提供的方法来访问HBase表。通常包括以下步骤: - 连接Thrift服务器:通过`TSocket`或`TFramedTransport`建立与...
4. **数据源管理**:Spring可以帮助管理Hadoop的数据源,例如读取HDFS上的文件或者写入数据到HDFS。你可以使用`org.springframework.hadoop.fs.FileSystemFactoryBean`来创建Hadoop的FileSystem实例。 5. **...
安装jdk是为了在Ubuntu系统中安装Java开发工具包,因为Hadoop是用Java编写的,所以Java环境对于Hadoop集群来说是必需的。 配置免密钥登录是为了在Hadoop集群中实现节点间无密码的SSH登录,这能够简化集群启动和管理...
开发自定义SerDe可能涉及编写Java代码并将其打包成JAR文件,然后在Hive中注册这个JAR,并在创建表时指定使用这个SerDe。 总的来说,Hive文件读写结合Linux环境提供了强大的大数据处理能力,而BCD解析则是处理特定...
- **HDFS (Hadoop Distributed File System)**:用于存储大规模数据的分布式文件系统。 - **MapReduce**:一种编程模型,用于大规模数据集的并行处理。 - **Common**:包含了Hadoop生态系统共享的库和服务。 - **...
这些命令为用户提供了对HDFS文件系统的灵活控制能力,使得用户能够在不需要编写复杂程序的情况下完成对文件系统的管理任务。 #### 四、Java API与Hadoop RPC机制 除了命令行工具外,Hadoop还提供了丰富的Java API...
HDFS 提供了一个分布式文件系统,允许在多台服务器上存储和处理大量数据。MapReduce 是一种编程模型,用于大规模数据集的并行处理。 Hadoop 的工作流程通常包括以下步骤: - 数据分块:大文件被分割成多个小块,...
7. **Hadoop应用开发**: 开发者可以使用Java编写MapReduce程序,或者利用Hadoop Streaming使用Python、Perl等语言进行处理。此外,还有基于Hadoop的高级框架,如Apache Spark,提供了更高效的数据处理模型。 8. **...