将Spark和Hadoop配置文件添加到JAR?

时间:2015-09-24 08:29:53

标签: hadoop apache-spark cloudera

我有一个Spark应用程序,我想使用配置文件进行配置,例如Spark的html, body { padding: 0; margin: 0; background-color: #CCC; overflow: hidden; } .wrapper { position: fixed; background-color: #CCC; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; width: 100%; height: 100%; padding: 0; left: 0px !important; top: 0px !important; margin-bottom: 0px; } .menu { position: fixed; background-color: #333; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; width: 320px; height:100%; padding: 0; left: 0px !important; top: 0px !important; display: flex; -ms-flex-direction: column; flex-direction: column; align-items: flex-start; -ms-flex-wrap: wrap; flex-wrap: wrap; } ,HBase的spark-defaults.conf和log4j的hbase-site.xml。我还想避免必须以编程方式添加文件。

我尝试将文件添加到我的JAR(在log4j.properties/路径下)但是当我运行/conf时,配置文件似乎没有任何效果。

为了进一步检查我的声明,我尝试使用相同的JAR运行spark-submit并检查文件的内容,并发现它们被来自其他位置的文件覆盖:spark-shell和{{1}完全不同,/spark-defaults.conf保持完整(可能)其属性被另一个JAR /log4j.properties覆盖。

我使用CDH 5.4.0 文件/conf/hbase-site.xmlhbase-default.xml已从log4j.properties加载,spark-defaults.conf已加载/etc/spark/

有没有办法在配置文件上指定某种优先级而不是其他文件?我应该只在hbase-default.xml中配置文件(也可以添加我的/opt/cloudera/parcels/CDH-5.4.0-1.cdh5.4.0.p0.27/jars/hbase-common-1.0.0-cdh5.4.0.jar)吗?有没有办法在类路径中添加一个可以优先于其他路径的自定义目录路径?

1 个答案:

答案 0 :(得分:0)

我认为不可能将namespace Vendor\Library\Tests; abstract class BaseTestCase extends \PHPUnit_Framework_TestCase { public function assertContentNotEmpty($response) { $this->assertNotEmpty($response); } } 包含在jar中。我知道的唯一方法是编辑服务器上的文件或以编程方式添加配置设置。

但对于spark-defaults.conf和其他hadoop网站配置,它应该有用。

您可以将每个site.xml放在资源目录的根目录中,除非您在首先加载的spark类路径中有一些其他site.xml,否则应该加载它。

即。如果您要将hbase-site.xmlhadoop classpath添加到服务器上的spark env,那么它们将首先加载到类加载器中,除非您使用的设置为hbase classpath