`
yjhexy
  • 浏览: 331198 次
  • 性别: Icon_minigender_1
  • 来自: 火星
社区版块
存档分类
最新评论

Hadoop读书笔记----(一)概览+访问HDFS

阅读更多

概览:



 ====================================  邪恶的分割线 =======================

访问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
分享到:
评论
1 楼 aquester 2010-02-01  
很好的文章,希望也能加入Hadoop技术社区的活动:http://www.hadoopor.com

相关推荐

    hadoop 笔记

    #### 一、Hadoop概览 **1.1 什么是Hadoop?** Hadoop是由Apache Software Foundation所维护的一个开源软件框架,它为大规模数据处理提供了高效、可靠且可扩展的支持。Hadoop的核心组件包括HDFS(Hadoop ...

    hadoop-day01-day03笔记

    HDFS(Hadoop Distributed File System)是Hadoop生态系统中的一个重要组成部分,它为用户提供了高容错性的文件存储服务,并能够提供高吞吐量的数据访问能力,适合部署在低成本的商用硬件上。 **HDFS的工作流程**:...

    Talend学习笔记2——mysql文件导入到HDFS

    ### Talend学习笔记2——mysql文件导入到HDFS #### 关键知识点概览 - **Talend Data Integration** - **MySQL 数据库** - **Hadoop 和 HDFS(Hadoop Distributed File System)** #### 详细知识点说明 ##### 1. ...

    Hadoop学习网址

    ### Hadoop 学习资源概览 #### 一、Hadoop 官方文档 - **网址**: [Hadoop官方文档](http://hadoop.apache.org/common/docs/current/index.html) - **内容概述**: - **Hadoop简介**: 包括Hadoop的历史背景、核心...

    大数据知识仓库涉及到数据仓库建模、实时计算、大数据、数据中台、系统设计、Java、算法等代码

    5、Hadoop生态圈的学习笔记,主要记录HDFS、MapReduce、Yarn相关读书笔记及源码分析等 5.1 HDFS Hadoop快速入门 HDFSOverView Hadoop广义生态系统 Hadoop高可用配置 HadoopCommon分析 HDFS集群相关管理 HDFS Shell ...

    BJFU-大数据考点+PPT摘录.docx

    ### 大数据基础复习知识点详解 ...综上所述,本篇笔记全面介绍了大数据的基本概念、Hadoop的核心技术、HDFS的结构和功能、以及HDFS的特性和通信协议等方面的知识点,为大数据领域的学习者提供了详尽的学习资料。

    大数据学习笔记

    ### 大数据学习笔记知识点概览 #### 第一部分:Spark学习 ##### 第1章:Spark介绍 - **1.1 Spark简介与发展** - **背景**:随着大数据处理需求的增长,传统的Hadoop MapReduce框架虽然提供了强大的计算能力,但...

    Hive学习笔记

    ### Hive学习笔记——深入理解大数据处理框架 #### HIVE架构详解与Hadoop关系解析 Hive作为基于Hadoop的大数据处理框架,其架构设计旨在简化海量数据的存储、查询和分析过程。它提供了类似SQL的查询语言——HiveQL...

    MapReduce学习笔记,亲自测试写出来的,1000分都不贵

    ### MapReduce 学习笔记概览 #### 一、MapReduce 概述 MapReduce 是一种编程模型,用于大规模数据集(通常是分布在计算机集群上的数据)的并行运算。概念"Map(映射)"和"Reduce(归约)"是其主要思想,受到了函数...

    word源码java-search_engine_ssm:search_engine_ssm

    小红书笔记搜索引擎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 ...

Global site tag (gtag.js) - Google Analytics