MapReduce应用开发(一) Configuration类和环境相关配置

Configuraion类-配置API

Configuration类:配置属性和属性值的集合

属性String类型,值可以是多种类型

值常见类型

1) Java基本数据类型

2) String,Class和java.io.File类型

3) String集合

GitHub源码

Configuration conf = new Configuration();
conf.addResource("core-site.xml"); //添加配置文件
conf.get("attribute1"); //返回String类型属性
conf.getInt("attribute2");//返回Int类型
conf.get("attribute3", "value3");//设置属性attribute3的默认值,如果attribute3没有值,则返回value3

配置文件合并

后来添加的配置文件的相同属性会覆盖之前的属性值

被标记为final的属性不会被覆盖

将属性标记为final,客户端的配置文件和作业提交参数都无法覆盖这个属性了吗?

变量扩展

可以将属性设置为系统变量


    size-weight 
    ${size},${weight} # ${}则表示系统属性

设置系统变量System.setProperty()

System.setProperty("size", "100"); //系统API

assertThat(conf.get("size-weight"), is("100","systemweight")); //获取到系统的size属性

环境配置

standalone/伪分布式/分布式

可以使用Maven POM项目对象模型管理MR依赖

管理配置

为方便在本地运行和集群运行之间切换,使用配置文件包含集群的连接设置

使用命令行hadoop fs -conf配置属性

hadoop fs -conf  #使用配置命令

辅助类GenericOptionsParser, Tool和ToolRunner

Hadoop自带辅助类解释常用的Hadoop命令行选项

实现Tool接口,使用ToolRunner内部调用GenericOptionsServer

设置用户标识

whoami //确定Hadoop用户标识

HADOOP_USER_NAME //环境变量显式设定Hadoop用户名

hadoop.user.group.static.mapping.overrides //覆盖用户组映射

hadoop.http.staticuser.user //设置Hadoop网络接口的运行时的用户标识

可以设置那些属性?

core-default.xml hdfs-default.xml yarn-default.xml mapred-site.xml




你可能感兴趣的:(Hadoop,MapReduce)