最近在學spark,嘗試在Windows+Eclipse運行程序,現在分享給大家
首先,你得把你要處理的文件上傳帶HDFS,怎麼上傳文件網上都有教程,此處不再贅述。
項目結構圖
源代碼
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
object SimpleApp {
def main(args: Array[String]) {
val logFile = "hdfs://master:9000/user/root/input/file1.txt" // 讀取hdfs上的文件
val conf = new SparkConf().setAppName("Simple Application")
val sc = new SparkContext(conf)
val logData = sc.textFile(logFile, 2).cache()
val numAs = logData.filter(line => line.contains("a")).count()
val numBs = logData.filter(line => line.contains("b")).count()
println("Lines with a: %s, Lines with b: %s".format(numAs, numBs))
}
}
錯誤解決辦法
可能大家在運行的時候會報如下錯誤
A master URL must be set in your configuration
這是因爲從提示中可以看出找不到程序運行的master,此時需要配置環境變量。
傳遞給spark的master url可以有如下幾種:
local 本地單線程
local[K] 本地多線程(指定K個內核)
local[*] 本地多線程(指定所有可用內核)
spark://HOST:PORT 連接到指定的 Spark standalone cluster master,需要指定端口。
mesos://HOST:PORT 連接到指定的 Mesos 集羣,需要指定端口。
yarn-client客戶端模式 連接到 YARN 集羣。需要配置 HADOOP_CONF_DIR。
yarn-cluster集羣模式 連接到 YARN 集羣。需要配置 HADOOP_CONF_DIR。
不要慌,右鍵單擊項目 Run Configuration進行如下配置
輸入“-Dspark.master=local”即可
如下圖
點擊run,運行結果如下圖
附: