`
zhang_xzhi_xjtu
  • 浏览: 536651 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

hadoop_hadoop的config

 
阅读更多
hadoop的config类虽然不多,但是功能强大,使用灵活,扩展方便。



主要以下几个类

Configurable
Something that may be configured with a Configuration.
void setConf(Configuration conf);
Configuration getConf();


Configured
Base class for things that may be configured with a Configuration.


Configuration
Provides access to configuration parameters.
这个类值得好好读一下,一个简单的配置类,就完成了这么多功能,而且代码也不乱。
配置文件的加载顺序。
默认配置文件,用户配置文件,调用方法set的属性等等,overlay的使用。
final的定义。
支持${var}参数配置。
还可以设置枚举,int范围,string集合或数组。
在getLocalPath方法中,
for (int i = 0; i < dirs.length; i++) {  // try each local dir
      int index = (hashCode+i & Integer.MAX_VALUE) % dirs.length;
      ...
}
这行代码有疑问,代码功能是随机从数组一个位置遍历整个数组,但是& Integer.MAX_VALUE貌似没有意义。
这个想通了,是为了取正整数。
debug method. 这个貌似调整为UT会更好一些。
兼容性的考虑。
WeakHashMap保持加载的Configuration对象.
CopyOnWriteArrayList的使用。


Tool
A tool interface that supports handling of generic command-line options.

ToolRunner
A utility to help run Tools.

附一些简单的使用例子。
public class TestConfig {

	private Configuration config;
	private String key;

	@Before
	public void setUp() {
		config = new Configuration();
		key = "allen_key";
	}

	/**
	 * 可以配置10进制或16进制的int。
	 * */
	@Test
	public void testSimpleConfig() {

		config.set(key, "123");
		int value = config.getInt(key, -1);
		Assert.assertEquals(123, value);

		config.set(key, "0X11");
		value = config.getInt(key, -1);
		Assert.assertEquals(17, value);
	}

	private static enum MyEnum {
		A, B;
	};

	/**
	 * 可以配置枚举。
	 * */
	@Test
	public void testEnum() {
		config.setEnum(key, MyEnum.A);
		MyEnum value = config.getEnum(key, MyEnum.B);
		Assert.assertSame(MyEnum.A, value);
	}

	/**
	 * 可以配置int范围。
	 * */
	@Test
	public void testIntRange() {
		config.setStrings(key, "-5,10-12,15,20-");
		IntegerRanges range = config.getRange(key, null);
		// -5
		Assert.assertFalse(range.isIncluded(-1));
		Assert.assertTrue(range.isIncluded(0));
		Assert.assertTrue(range.isIncluded(5));
		Assert.assertFalse(range.isIncluded(6));
		// 10-12
		Assert.assertFalse(range.isIncluded(9));
		Assert.assertTrue(range.isIncluded(10));
		Assert.assertTrue(range.isIncluded(12));
		Assert.assertFalse(range.isIncluded(13));
		// 15
		Assert.assertFalse(range.isIncluded(14));
		Assert.assertTrue(range.isIncluded(15));
		Assert.assertFalse(range.isIncluded(16));
		// 20-
		Assert.assertFalse(range.isIncluded(19));
		Assert.assertTrue(range.isIncluded(20));
		Assert.assertTrue(range.isIncluded(60));
	}

	/**
	 * 可以配置String集合。
	 * */
	@Test
	public void testStringCollection() {
		config.setStrings(key, "a,b");
		Collection<String> c = config.getStringCollection(key);
		Assert.assertTrue(c.contains("a"));
		Assert.assertTrue(c.contains("b"));

	}

	/**
	 * 可以配置String数组。
	 * */
	@Test
	public void testStringArray() {
		config.setStrings(key, "a,b");
		String[] strs = config.getStrings(key);
		Assert.assertEquals("a", strs[0]);
		Assert.assertEquals("b", strs[1]);
	}

	/**
	 * 可以定义变量。
	 * */
	@Test
	public void testVar() {
		config.set("basekey", "allen");
		config.set("subkey", "hi,${basekey}");
		String value = config.get("subkey");
		Assert.assertEquals("hi,allen", value);
	}

}
  • 大小: 15.7 KB
分享到:
评论

相关推荐

    从零开始部署hadoop_3.1.1集群.docx

    - 永久关闭SELinux:修改`/etc/selinux/config`文件,将`SELINUX=enforcing`改为`SELINUX=disabled` ### 3. 安装与配置Hadoop集群 #### 3.1 配置IP和主机名映射 编辑`/etc/hosts`文件,添加所有集群节点的IP和...

    Hadoop_HDFS安装和管理

    HADOOP_CONF_DIR=/home/hdfs/hdfsinstall/hadoop-config/ export HADOOP_CONF_DIR ``` 7. 下载并安装JDK 1.5.x。 8. 创建JDK的符号链接`ln –s jdk1.5.0_16 jdk`。 9. 设置环境变量`JAVA_HOME`: - 在`/home/...

    Hadoop_HDFS安装和管理.pdf

    - **配置文件准备**:创建配置目录`hadoop-config`,并将必要的配置文件复制到该目录。 - **环境变量设置**:通过`.bash_profile`文件设置`HADOOP_CONF_DIR`环境变量,指向配置目录。 - **JDK安装**:下载并安装Java...

    hadoop config 配置文件

    在分布式计算领域,Hadoop是一个不可或缺的关键框架,它主要用于处理和存储海量数据。Hadoop配置文件是这个系统的核心组成部分,它们定义了Hadoop集群的行为、性能和稳定性。在这个主题中,我们将深入探讨Hadoop配置...

    Hadoop_Hive安装--自己整理

    2. 确保所有节点的SSH服务都在运行,并且配置允许root用户通过SSH登录,通常这可以通过编辑`/etc/ssh/sshd_config`并取消`PermitRootLogin prohibit-password`的注释来实现。 3. 重启SSH服务,如`service sshd ...

    Ubuntu下创建hadoop组和hadoop用户.pdf

    update-alternatives --config java ``` 添加以下内容到`~/.bashrc`,并保存: ```bash export JAVA_HOME=安装路径&gt; export HADOOP_INSTALL=/usr/local/hadoop export PATH=$PATH:$HADOOP_INSTALL/bin ...

    大数据与云计算培训学习资料 Hadoop集群 细细品味Hadoop_第14期_Hive应用开发_V1.0 共29页.pdf

    - 可以通过命令行参数`-e`执行HiveQL语句,`-config`指定新配置文件,`-service hiveserver`启动Hiveserver服务。 这份资料适合想要深入理解Hadoop集群中Hive应用开发的学习者,通过它,可以了解到Hive如何作为...

    细细品味Hadoop_Hadoop集群(第5期副刊)_JDK和SSH无密码配置

    在构建Hadoop集群的过程中,Java Development Kit (JDK)的正确配置至关重要,因为它提供了Hadoop运行所需的基础环境。本文档详细介绍了在Linux环境下进行JDK配置的具体步骤和注意事项。 ##### 解压安装JDK 首先,...

    CentOS-6.4 64位系统下hadoop-2.2.0+hbase-0.96+zookeeper-3.4.5 分布式安装配置

    export HADOOP_CONF_HOME=$HADOOP_HOME/etc/hadoop export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop export YARN_HOME=$HADOOP_HOME ``` 在Hadoop的配置阶段,我们需要修改`hadoop-env.sh`、`core-site.xml`、`hdfs-...

    基于SpringBoot + Hadoop实现的一个简易酒店管理系统,本科毕业设计项目,源码、数据库,相关文件齐全,完美运行

    修改 src/main/resources/config/hadoop.properties 中的 HDFS 和 namenode 配置 修改 CommentServiceImpl 类 analyzeComment 方法下的日志输出路径、Hadoop Example 路径 访问 http://localhost:8080 主要功能 员工...

    fs-config.rar_fs config_fs_config_zookeeper

    "fs-config.rar_fs config_fs_config_zookeeper"这个标题暗示了我们讨论的是一个使用Zookeeper进行配置管理的解决方案,具体来说,可能是名为"fs-config"的系统或框架。Zookeeper是一个广泛使用的开源项目,由Apache...

    大数据中Hadoop Shell介绍

    1. **`hadoop-config.sh`**: - 该脚本用于对环境变量进行初始化设置。 - 其中最关键的是定义了`HADOOP_HOME`、`HADOOP_CONF_DIR`和`HADOOP_SLAVES`等环境变量。 - `HADOOP_HOME`指向Hadoop的安装目录。 - `...

    spark-2.4.5-bin-without-hadoop.tgz

    spark-2.4.5-bin-without-hadoop.tgz spark最新已编译好的包,...export SPARK_DIST_CLASSPATH=$(hadoop --config /opt/bigdata/hadoop-2.9.2/etc/hadoop classpath) export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

    hadoop免密登陆脚本

    在IT行业中,尤其是在分布式计算领域,Hadoop是一个广泛使用的开源框架,它允许处理和存储大量数据。SSH(Secure Shell)是远程登录和执行命令的安全协议,对于管理分布式系统如Hadoop集群至关重要。免密登陆是SSH的...

    Cygwin+Eclipse搭建Hadoop单机开发环境离线包-cygwin-setup

    - 启动Cygwin终端,使用`ssh-host-config`命令进行配置,按照提示进行操作。 - 生成SSH密钥对,使用`ssh-keygen`命令,这将生成id_rsa和id_rsa.pub文件,用于无密码SSH登录。 - 将公钥(id_rsa.pub)的内容复制到...

    hadoop为分布式

    - 查看Hadoop的状态:`$HADOOP_HOME/sbin/hadoop-daemon.sh --config $HADOOP_HOME/etc/hadoop status datanode` - 检查Web界面:访问`http://localhost:50070`查看HDFS状态。 通过以上步骤,我们可以在CentOS...

    Unbuntu16.04中Hadoop环境配置.doc

    Hadoop环境配置在Ubuntu 16.04中的安装和配置 Hadoop是一个大数据处理和分析的开源框架,广泛应用于数据挖掘、数据分析、机器学习等领域。为在Ubuntu 16.04中安装和配置Hadoop环境,需要经过多个步骤,以下是详细的...

    最详尽的Hadoop安装过程

    sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config ``` ##### 3.5 配置hosts文件 为了简化节点之间的通信,需要在每个节点的`/etc/hosts`文件中添加其他节点的信息。 ```bash sudo vi /etc/...

    hadoop-2.6.0-hadoop.dll-winutils.exe

    log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. Exception in thread "main" java.lang.NullPointerException  at java.lang.ProcessBuilder.start(ProcessBuilder.java:...

Global site tag (gtag.js) - Google Analytics