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

匿名 (未验证) 提交于 2019-12-03 00:34:01

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,客户端的配置文件和作业提交参数都无法覆盖这个属性了吗?

变量扩展

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

<property>     <name>size-weight</name>      <value>${size},${weight}</value> # ${}则表示系统属性 </property>

设置系统变量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




易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!