MR应用开发 —— Hadoop权威指南10

2023-10-29

1. Configuration —— Hadoop的配置API

  • 之前,在获取Hadoop文件实例时,经常会创建一个Configuration实例
  • Configuration是Hadoop用于配置的API,是property和value的集合
  1. addResource():为Configuration指定配置文件。入参为resources中的xml文件名,Configuration可以从xml文件中获取property和value
  2. 属性覆盖: 若通过addResource()同时指定多个xml文件,同名的property的value,由后面的定义决定
  3. 例外: 如果该属性为final属性,则无法被后续的定义覆盖
  4. get():根据property,获取value;同时,可以指定默认值,当属性不存在时,则返回指定的默认值

基于Configuration的编程实例

  • config-1.xml文件如下:

    <?xml version="1.0"?>
    <configuration>
        <property>
            <name>color</name>
            <value>red</value>
        </property>
    
        <property>
            <name>length</name>
            <value>25</value>
        </property>
    
        <!-- final属性,无法覆盖-->
        <property>
            <name>weight</name>
            <value>60</value>
            <final>true</final>
        </property>
    </configuration>
    
  • config-2.xml文件:

    <?xml version="1.0"?>
    <configuration>
        <property>
            <name>time</name>
            <value>2021-05-02 08:23:22</value>
        </property>
    
        <property>
            <name>length</name>
            <value>12</value>
        </property>
    
        <property>
            <name>weight</name>
            <value>32</value>
        </property>
    </configuration>
    
  • 程序示例:

    public class ConfigurationTest {
        public static void main(String[] args) {
            // 添加配置文件
            Configuration configuration = new Configuration();
            configuration.addResource("config-1.xml");
            configuration.addResource("config-2.xml");
    
            // 获取配置文件中的属性
            System.out.println("color: " + configuration.get("color"));
            // 属性被覆盖
            System.out.println("length: " + configuration.getInt("length", 0));
            // 属性为final,不能被覆盖
            System.out.println("weight: " + configuration.get("weight"));
            System.out.println("time: " + configuration.get("time"));
            // 属性不存在,返回默认值
            System.out.println("company: " + configuration.get("company", "intel"));
        }
    }
    
  • 程序运行结果:
    在这里插入图片描述

2. 开发环境的配置

2.1 默认配置的查看

  • 在安装Hadoop时,总是需要配置各种各样的文件,如core-site.xml、hdfs-site.xml、yarn-site.xml等
  • 这些配置文件,可以配置的属性和默认值,查看方式:
    ① 可以在安装包的share/doc中查看,例如core-site.xml对应core-default.xml
    ② 可以在官网的Configuration部分,将版本号改为对应的值即可
    在这里插入图片描述
  • 同时,不同版本的Hadoop属性,其名称可能有变化,例如MR属性:mapred的前缀,已更新为mapreduce

2.2 如何连接不同的集群

  • 在通过hadoop fs命令,与Hadoop文件系统进行交互时,可以通过-conf使用不同的配置

  • 例如,一般Hadoop集群分为:单机、伪分布式、分布式,各自有不同的属性配置

  • 假设本地文件系统的属性配置为hadoop-local.xml,当想要连接本地文件系统,查看 /user/hadoop/目录时,命令如下:

    hadoop fs -conf conf/hadoop-local.xml -ls /user/hadoop/
    
  • 书中,还介绍了如何通过ToolToolRunner来修改属性。 —— 自己没啥体会,暂不赘述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MR应用开发 —— Hadoop权威指南10 的相关文章

随机推荐

  • 用Android Studio制作一个简易的计算器,Android开发经验的有效总结

    首先建立按钮 这只是单单的建议按钮 连接按钮的代码在底下 public class MainActivity extends AppCompatActivity implements View OnClickListener private
  • spring boot + sql server大数据量批量新增

    先发出来 注释慢慢完善 获取类中所有属性注解 TableId和 TableField param instance return throws NoSuchFieldException public static Map
  • 安装ubuntu22.04系统,配置国内源以及ssh远程登录

    一 安装ubuntu22 04系统 原文连接 Ubuntu操作系统22 04版本安装教程 VMware虚拟机 wx63f86e949a470的技术博客 51CTO博客 1 点击界面左侧的开启此虚拟机 即可进入Ubuntu操作系统安装界面 点
  • Maven:搭建私服Nexus

    Nexus 安装 下载地址 小诀窍 使用迅雷下载比直接用浏览器下载快很多 https download sonatype com nexus 3 latest unix tar gz 上传 解压 上传到 Linux 系统 解压后即可使用 不
  • 【Blog 5】软件构造落幕,计算人生启程

    经历了7周的学习 软件构造课落下帷幕 但我知道 这对我而言 才只是一个开始 最后几章介绍面向可复用性 可维护性 正确性与健壮性的软件构造的技术 过程等等 看似是不同的角度 其实内部联系密切 尤其是关于继承 委托 SOLID原则等有关知识 都
  • FindObjectsOfType返回场景中所有该类型的组件集合

    做一个简单的demo 场景中准备七个空物体 层级关系如下 查找场景中所有出现的gggg组件 然后把test这个类挂在MainCamera这个物体上 然后运行场景 控制台打印结果为 3 总结 FindObjectsOfType返回场景中所有改
  • 测试产品说明书

    本篇文档是来自csdn 我觉得比较好 于是就收录了 尽管测试产品说明书不是所以软测人员都有机会去做 但还是值得一谈的 如果有幸在项目早期介入软件开发 并有一定的话语权的话 就相当有用了 在软件开发初始阶段发现软件缺陷将可能为项目节省大笔的开
  • 数据结构:队列Queue详解

    文章目录 一 队列的概念和特点 二 队列的使用 三 队列的简单实现 四 循环队列 一 队列的概念和特点 队列 只允许在一端进行插入数据操作 在另一端进行删除数据操作的特殊线性表 进行插入操作的一端称为队尾 删除操作的一端称队头 入队列 进行
  • 管理系统的设计与实现方法总结

    项目总结 1 项目开发背景 目前 国内外毕业论文选题一般采用两种方式 一种将毕业设计存在软盘上交 另一种则存放到教师的电脑上的一个共享目录内 但这两种方法都有各自的弊端 前一种方法不方便携带 速度慢 容量小 易损坏 后一种方法虽然解决了软盘
  • 关于互联网思维与技术团队的一些总结

    2017 7 4更 真正在底层工作的人员 跟站在高层的人看到的东西都是两个东西 真正的从底层走到高层才能看的更精准 同样的 从底层走到高层的人 也没有一直处在高层的远见与见识 我信奉公司处于什么阶段用什么样的人 没必要一开始就弄高精尖的人和
  • 基于Docker的Hadoop集群搭建

    基于Docker的Hadoop集群搭建 本文为在阿里云服务器上基于docker的Hadoop集群搭建 安装思路为 安装docker gt 运行docker导入ubuntu镜像 gt 运行ubuntu系统 gt 在系统中配置好单个节点 gt
  • FreeMarker整合Spring 3

    开发环境 System Windows WebBrowser IE6 Firefox3 JavaEE Server tomcat5 0 2 8 tomcat6 IDE eclipse MyEclipse 8 开发依赖库 JavaEE5 Sp
  • [QT编程系列-9]:C++图形用户界面编程,QT框架快速入门培训 - 3- QT窗体设计 - 自动布局

    目录 3 QT窗体设计 3 7 自动布局 3 7 1 自动布局 3 7 2 在主窗口中自动布局 3 7 3 在自动布局容器中自动布局 3 7 4 在widget中自动布局 3 7 5 自动布局工件 3 QT窗体设计 3 7 自动布局 3 7
  • 基于单片机火灾报警器仿真设计

    一 系统方案 1 本设计采用51单片机作为主控器 2 DS18B20采集温度值送到液晶1602显示 3 MQ2采集烟雾值 送到液晶1602显示 4 按键设置温度报警值 大于报警值 声光报警 二 硬件设计 原理图如下 三 单片机软件设计 1
  • qt ×掉子窗口后,进程还没有停止的问题

    掉子窗口后 子窗口还在接受数据的问题 当子窗口显示时 先关闭父窗口 调用的先后顺序为 当子窗口显示时 先关闭子窗口 调用的先后顺序为 找到原因 此时子窗口的析构函数没有执行 解决方案 先说解决方案 给子窗口设置以下属性 setAttribu
  • UE4 去掉自动曝光(光线自适应)

    UE4在没有PostprocessingVolumn时 会在场景中加入自动曝光 有时会导致过亮或者过暗 解决方法 关闭ProjectSetting Rendering DefaultSetting中的AutoExposure 自动曝光 在场
  • CentOS安装错误:no default or ui configuration

    靠 以后再也不用浏览器自带的下载工具下载镜像文件了 原来是下载的不完整 但是显示完全下载完毕了 真特么误导人 文件的checksum不对 references https www centos org forums viewtopic ph
  • c++11 pod类型(了解)

    c 11 pod类型 了解 啥是POD类型 POD全称Plain Old Data 通俗的讲 一个类或结构体通过二进制拷贝后还能保持其数据不变 那么它就是一个POD类型 平凡的定义 1 有平凡的构造函数 2 有平凡的拷贝构造函数 3 有平凡
  • ReactHook EffectHook

    副作用操作 使得函数组件能够进行生命周期的操作 可以有多个 类组件中相同的生命周期会进行覆盖 会在 可以看作是以下生命周期函数的结合 componentDidMount componentDidUpdate 和 componentWillU
  • MR应用开发 —— Hadoop权威指南10

    1 Configuration Hadoop的配置API 之前 在获取Hadoop文件实例时 经常会创建一个Configuration实例 Configuration是Hadoop用于配置的API 是property和value的集合 ad