日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【数据平台】Eclipse+Scala远程开发调试关于hostname的问题

發布時間:2025/4/16 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【数据平台】Eclipse+Scala远程开发调试关于hostname的问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、代碼:

import org.apache.spark.SparkConf import org.apache.spark.SparkContextobject wc {def main(args : Array[String]){System.setProperty("hadoop.home.dir", "D:\\dev\\hadoop-2.7.4");val conf = new SparkConf()//創建SparkConf對象conf.setAppName("WordCount").setMaster("spark://master:7077")//設置應用程序的名稱,在程序運行的監控界面可以看到名稱//conf.setAppName("WordCount").setMaster("local")//運行模式//創建SparkContext對象,通過傳入SparkConf實例來定制Spark運行的具體參數和配置信息val sc = new SparkContext(conf)/*根據具體的數據來源(HDFS、HBase、Local FS、DB、S3等)通過SparkContext來創建RDD* RDD的創建基本有三種方式:根據外部的數據來源(例如HDFS)、根據Scala集合、由其它的RDD操作* 數據會被RDD劃分成為一系列的Partitions,分配到每個Partition的數據屬于一個Task的處理范疇*///讀取本地文件并設置為一個Partionval lines = sc.textFile("hdfs://master:9000/tmp/README.md",1)//hdfs路徑//對每一行的字符串進行單詞拆分并把所有行的拆分結果通過flat合并成為一個大的單詞集合val words = lines.flatMap{line => line.split(" ")}val pairs = words.map{word => (word,1)}//對相同的Key,進行Value的累計(包括Local和Reducer級別同時Reduce)val wordCounts = pairs.reduceByKey(_+_)//在命令行中打印該結果wordCounts.foreach(wordNumberPair => println(wordNumberPair._1 + " : " +wordNumberPair._2))sc.stop()//記得關閉創建的SparkContext對象} }

執行報錯:

16/01/07 13:50:16 INFO AppClient$ClientEndpoint: Connecting to master spark://ip:7077... 16/01/07 13:50:36 ERROR SparkUncaughtExceptionHandler: Uncaught exception in thread Thread[appclient-registration-retry-thread,5,main] java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.FutureTask@116465dc rejected from java.util.concurrent.ThreadPoolExecutor@565b576f[Running, pool size = 1, active threads = 1, queued tasks = 0, completed tasks = 0] at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2048)
2、分析:

查看7077端口發現是監聽本機地址,不過先從hostname著手。

本機開發是win7+eclipse環境,所以在C:\Windows\System32\drivers\etc\HOSTS中,增加一行IP Master對應的關系。

再執行,連接可以進入,不過一直出不來結果,WARN提示:

WARN TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources
3、針對該錯誤,分析:

? ? 執行到:

wordCounts.foreach(wordNumberPair => println(wordNumberPair._1 + " : " +wordNumberPair._2))出現上述錯誤。查核Spark UI,看開發本機的UI


看執行日志也正常,最后看master上的spark-env.sh配置,SPARK_WORKER_MEMORY=8192m,是否是這個導致這個資源不足的錯誤提示?

同樣的代碼提交到集群內任何一臺機子都可以正確執行,spark-submit --class wc /home/hadoop/wc.jar

那說明不是這個資源問題,問題還在遠程開發調試上。


4、進一步集群分析:

? http://master:8080/ 看到:



?任務在集群上提交了各節點執行。

發現提交的用戶是本機的用戶名administrator,而集群內是hadoop,那是否關系到用戶名呢?

找了下sparkconf配置好像沒有可以設置用戶名,那就只有在windows創建一個hadoop用戶然后用來開發提交。


總結

以上是生活随笔為你收集整理的【数据平台】Eclipse+Scala远程开发调试关于hostname的问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。