最近做大数据的项目,碰到了一个坑, Running on yarn 的时候有两个模式,一个是 client 一个是 cluster ,
但是我的 Big jar 里面需要读 取配置文件
,配置文件在本地,所用用 cluster 模式会出现 FilenotfondException , excutor 不知道这个文件的位置,现在想让excutor 知道这个文件的位置和内容
找到了几个参数 就是 spark-submit 加上--files 但是似乎没有起到作用,求个正确的姿势。 有两个配置文件,一个是 project.propeties , 一个是 parser.properties 用 Scala 搞得,但是 io 只能读取本地文件,这个比较坑,因为 hadoop 上面的文件系统似乎和本地的不一样。
还有一个方法似乎是用 --properties-file 但是这个只能载入配置。来个正确的姿势急等。*
spark-submit --class "app.Runml" --master yarn-cluster --files "/home/expertise/BigData2016/conf/project.properties","/home/expertise/BigData2016/conf/2016.properties" --jar ~/BigData2016/ml-assembly-1.0.jar 出现了 FileNotFond ,但是 client 模式就 ok 。 郁闷死了,不想重新改 parser 的代码,这里是读取文件的代码,返回一个 properties ,可以之间 properties.get(你想要的参数)
object Tools {
def conf(file: String): Properties = {
val properties = new Properties()
properties.load(new FileInputStream(file))
properties
}
}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.