安裝idea,跑scala程式,下載
參考:http://www.cnblogs.com/zlslch/p/5880926.html
下載Hadoop:E:\software\Spark\spark-2.3.1-bin-hadoop2.7\spark-2.3.1-bin-hadoop2.7
解壓tgz檔案,下載7zip提取成tgz檔案(tar壓縮),再解壓;
按參考教程執行WordCount.scala的程式;
報這個錯:
windows idea Failed to locate the winutils binary in the hadoop binary path java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
參考教程定位問題的方法:
https://blog.csdn.net/woshixuye/article/details/53461975
分析問題
開啟原始碼,檢視getQualifiedBinPath方法
解決方案:
exeFile不存在會報錯,也就是fullExeName不存在。即windows中沒有配置HADOOP_HOME。
3 解決問題
配置環境變數E:\Program Files\hadoop-2.7.0重啟電腦。或者程式碼中設定System.setProperty(“hadoop.home.dir”, “E:\Program Files\hadoop-2.7.0”);還有一種可能HADOOP_HOME的bin目錄下根本沒有winutils.exe,下載地址https://github.com/srccodes/hadoop-common-2.2.0-bin
要跑scala程式:
安裝java 1.8
安裝scala
安裝idea
安裝Hadoop
每一個步驟都有設定
【沒有assembly目錄】spark2.0.0啟動時無法訪問spark-assembly-*.jar的解決辦法
但是spark升級到spark2以後,原有lib目錄下的大JAR包被分散成多個小JAR包,原來的spark-assembly-*.jar已經不存在,所以hive沒有辦法找到這個JAR包。
參考:
https://blog.csdn.net/dax1n/article/details/58197361
package com.zhouls.spark
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import java.lang.System
object WordCount {
System.setProperty("hadoop.home.dir", "E:\\software\\Spark\\spark-2.3.1-bin-hadoop2.7\\spark-2.3.1-bin-hadoop2.7")
def main(args: Array[String]): Unit = {
/*
* 第1步:建立spark的配置物件sparkconf,設定spark程式的執行時的配置資訊,
* 例如說通過setMaster來設定程式要連結的spark叢集的master的URL,如果設定為local,則代表spark程式在本地執行,
* 特別適合於機器配置條件非常差(例如只有1G記憶體)的初學者
*/
val conf = new SparkConf()//建立SparkConf物件
conf.setAppName("Wow,My First Spark App!")//設定應用程式的名稱,在程式執行的監控介面可以看到名稱
conf.setMaster("local")//此時,程式在本地執行,不需要安裝spark叢集
/*
* 第2步:建立SparkContext物件
* SparkContext是spark程式所有功能的唯一入口,無論是採用scala、java、pthon、R等都必須有一個SparkContext
* SparkContext核心作用:初始化spark應用程式執行所需要的核心元件、包括DAGScheduler、TaskScheduler、SchedulerBackend
* 同時還會負責spark程式往master註冊程式等
* SparkContext是整個spark應用程式中最為至關重要的一個物件
*/
val sc = new SparkContext(conf)
/*
* 第3步:根據具體的資料來源(HDFS、HBase、Local FS、DB、S3等)通過SparkContext來建立RDD
* RDD的建立基本有三種方式:根據外部的資料來源(如HDFS)、根據Scala集合、由其它的RDD運算元據會被RDD劃分成
* 一系列的Partitions,分配到每個Partition的資料屬於一個Task的處理範疇
*/
// val lines:RDD[String] = sc.textFile("D://SoftWare//spark-1.6.2-bin-hadoop2.6//README.md", 1)//path指的是檔案路徑,minPartitions指的是最小並行度
val lines = sc.textFile("E://software//Spark//spark-2.3.1-bin-hadoop2.7//spark-2.3.1-bin-hadoop2.7//README.md", 1)//path指的是檔案路徑,minPartitions指的是最小並行度
/*
* 第4步:對初始的RDD進行Transformation級別的處理,例如map、filter等高階函式等的程式設計,來進行具體的資料計算
* 第4.1步:將每一行的字串拆分成單個的單詞
*/
val words = lines.flatMap{ line => line.split(" ")}//對每一行的字串進行單詞拆分並把所有行的拆分結果通過flat合併成為一個
/*
* 4.2步:在單詞拆分的基礎上對每個單詞例項計數為1,也就是 word => (word,1)
*/
val pairs = words.map { word => (word,1) }
/*
* 4.3步:在每個單詞例項計數為1基礎之上統計每個單詞在檔案中出現的總次數
*/
val wordCounts = pairs.reduceByKey(_+_)//對相同的key,進行value的累計(包括local和reducer級別同時reduce)
wordCounts.foreach(wordNumberPair => println(wordNumberPair._1 + ":" + wordNumberPair._2))
/*
* 第5步
*/
sc.stop();
}
相關文章
- IDEA安裝Scala外掛Idea
- Intellij IDEA 安裝Scala外掛 + 建立Scala專案(Hello World!)IntelliJIdea
- IntelliJ IDEA 如何下載安裝外掛IntelliJIdea
- Oracle安裝程式下載大全Oracle
- 【秒備份】安裝程式下載
- SPARK 安裝之scala 安裝Spark
- homebrew下載安裝及mysql的下載安裝MySql
- Intellij IDEA開發Scala程式IntelliJIdea
- 【IntelliJ Idea 軟體下載與入門級安裝教程】IntelliJIdea
- typora下載安裝以及notepad++下載安裝
- 下載安裝ApacheApache
- 下載安裝gitGit
- MySQL下載安裝MySql
- postgresql 下載安裝SQL
- Newman下載安裝
- VMware 下載安裝
- ubuntu下使用IntelliJ idea開發scalaUbuntuIntelliJIdea
- Mac下使用IntelliJ IDEA開發ScalaMacIntelliJIdea
- 下載 macOS 系統安裝程式的方法Mac
- idea安裝Idea
- jmeter下載安裝及外掛安裝JMeter
- OpenSSL + Windows 下載安裝Windows
- maven下載和安裝Maven
- clickhouse下載和安裝
- tengine下載和安裝
- 下載和安裝PycharmPyCharm
- zookeeper下載安裝使用
- Nginx下載和安裝Nginx
- MongoDB下載與安裝MongoDB
- SVN下載安裝使用
- oracle下載和安裝Oracle
- Blender下載與安裝
- MySQL - 下載與安裝MySql
- 下載與安裝MYQL
- 下載安裝jupyter
- postgresql下載安裝包如何解壓安裝SQL
- MySQL 5.6.21下載安裝之安裝篇(二)MySql
- scala安裝及環境配置