sca*_*log 3 scala apache-spark cloudera-cdh
我构建了一个spark应用程序来计算文件中的单词数.我在cloudera quickstart VM上运行应用程序,当我使用cloudera用户目录时,一切都很好,但是当我想在其他用户目录中写入或读取时,我有权从hadoop拒绝.我想知道如何在spark中更改hadoop用户.
package user1.item1
import user1.{Article}
import org.apache.spark.{SparkContext, SparkConf}
import org.apache.spark.SparkContext._
import scala.util.{Try, Success, Failure}
object WordCount {
def main(args: Array[String]) {
Context.User = 'espacechange'
val filename = "hdfs://quickstart.cloudera:8020/user/user1/test/wiki_test/wikipedia.txt"
val conf = new SparkConf().setAppName("word count")
val sc = new SparkContext(conf)
val wikipedia = sc.textFile(filename).map(Article.parseWikipediaArticle)
val counts = wikipedia.flatMap(line => line.text.split(" ")).map(word => (word, 1)).reduceByKey(_ + _)
counts.saveAsTextFile("hdfs://quickstart.cloudera:8020/user/user1/test/word_count")
}
}
Run Code Online (Sandbox Code Playgroud)
这取决于您的群集的身份验证.默认情况下,您可以设置以下环境变量:
$ export HADOOP_USER_NAME=hdfs
Run Code Online (Sandbox Code Playgroud)
在提交spark工作之前尝试以上方法.
| 归档时间: |
|
| 查看次数: |
4641 次 |
| 最近记录: |