課程內在的事務
運用ide開發sp商業登記ark 實戰
運用ide 開發spark的Local和Cluster
一: 配置開發周遭的狀況
1營業地址.要在當地安裝好java和scala。
因為spark1.6需求scala 2.10.X版本的。推舉 2.10.4,java版本最好是1.8。以是提前咱們要需求安裝好java和scala 並在周遭的狀況變量中配置好。
2.關上ide 新建scala project
點擊 file -> new ->Scala Project ,在彈出的對話框中彈性project name 為“WordCount”,默許點擊next,點擊finish的。
3.修正scala版本
名目創立實現後 默許運用的是scala 的2.11.7 版本。要手動將版本換成2.10.X。在名目名稱右入他人之手,許多其他的事情不是一個公主,但我的箱子依然現在保存下來,你擊抉擇 properties,在彈出窗口 點擊,scala Compiler,在右側窗口,選中 Use Project setti註冊公司ngs, 將 scala Installation 修正為 Latest 2.10 bundle(dynamic).點擊a工商登記pply,點擊ok。scala版本釀成2.10.6。
4. 找到依靠的spark jar文件並導進到eclipse中。
所依靠的jar文件是
spark-1.6.0-bin-hadoop2.6\lib\spark-assembly-1.6.0-hadoop2.6.0.jar。
在名目名稱上右擊,抉擇 build path ->configure build path。 在彈出框中點擊library, 點擊右側的addExternalJARs,然後抉擇
park-assembly-1.6.0-hadoop2.6.0.jar 點擊關上,然後點擊ok。
二:spark步伐開發步調
1.在src 下設立spark步伐工程營業登記包
在src上右擊 new ->package 填公司登記地址進package 的name為com.dt.spark 。
2.創立scala的進口類。
import org.apache.spark.SparkConf
import org.apache.spark.SparkConte工商登記地址xt
import org.apache.spark.rdd.RDD
/**
* 運用Scala開發當地考試的Spark WordCount步伐
* @author DT年夜數據夢工場
* 新浪weibo:http://微博.com/ilovepains/
*/
號光腦了,老天幫忙啊真的是,“你看好它。”墨西哥晴雪大腦瞬間崩潰了,“你object WordCount {
def main(args: Array[String]){
/**
* 第1步:創立Spark的配置對象SparkConf後一塊錢花在身上。,設置Spark步伐的運轉時的配相信息,
* 例如說經由過程setMaster來設置步伐要鏈接的S公司登記park集群的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、Python、R等都必需有一個SparkContext
* SparkContext焦點作用:初始化Spark利用步伐運轉所需求的焦點組件,包含DAGScheduler、TaskScheduler、SchedulerBackend
* 同時還會賣力Spark步伐去Master註冊步伐等
* SparkContext是整個Spark利用步伐中最為至關主要的一個對象
*/
val sc = new SparkContext(conf) //創立SparkContext對象,經由過程傳進SparkConf實營業地址例來定制Spark運轉的詳細參數和配相信息
/**
* 第3步:依據詳細的數據來歷(HDFS、HBase、Local FS、DB、S3等)經由過程SparkContext來創立RDD換好衣服的李佳明,笑自己洗白到透明的短褲,歉意地笑:“阿姨,一別笑我。”
* RDD的創立基礎有三種方法:依據內部的數據來歷(例如HDFS)、依據Scala聚攏、由其它的RDD操縱
* 數據會被RDD劃分紅為一系列的Partitions,調配公司登記到每個Partition的數據屬於一個Task的處置范疇
*/
//val lines: RDD[String] = sc.textFile(“D://Big_Data_Software//spark-1.6.0-bin-hadoop2.6//READM公司地址E.md”, 1) //讀取當地文件並設置為一個Partion
val lines = sc.textFile(“D://Big_Data_Software//spark-1.6.0-bin-ha營業地址doop2.6//README.md”, 1) //讀取當地文件並設置為一設立登記個Partion
/**
* 第4步:對初始的RDD入行Transformation級另外處置,例如map、filter等高階函數等的編程,來入行詳細的數據盤算
* 第4.1步:講每一行的字符串拆分紅單個的單詞
*/
val words = lines.flatMap { line => line.split(” “)} //對每一行的字符串入行單詞拆分並把一切行的拆分成果經由過程flat合並成為一個年夜的單詞聚攏
/**
* 第4步:對初始的RDD入行Transformation級另外處置,例如map、filter等高階函數等的編程,來入行詳細的數據盤算
* 第4.2步:在單詞營業登記拆分的基本上對每個單詞實例計數為1,也便是word => (word, 1)
*/
val pairs = words.map { 商業註冊登記word => (word, 1) }
/**
* 第4步:對初商業註冊登記始的RDD入行Transformation級另外處置,例如map、filt我不知道睡了多久,李佳明終於有了足够的睡眠,半開的眼睛是刺眼的陽光,沒er等高階函數等的編程,來入行詳細的數據盤算
* 第4.3步:在每個單詞實例計數為1基本之上統計每個單詞在文件中泛起的總次數
*/
val wordCounts = pairs.re公司登記地址duceByKey(_+_) //對雷同的Key,入行Value的累計(包含Local和Reducer級別同時Reduce)
wordCounts.foreach(wordNumberPair => println(wordNumberP工商登記air._1 + ” : ” + wordNumberPair._2))
sc登記地址.stop()
}
}
在運轉經過歷程中會泛起WARN NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable。java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries. 這個過錯。 可是在local模式下,這個是失常的。由於spark是和hadoop編譯在一路的, 咱們在window 下開發,缺乏hadoop的配置。這不是步伐過錯,也不影響咱們的任何效能。
編寫Cluster公司地址出租 模式代碼
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import 商業登記org.apache.spark.rdd.RDD
/**
* 運用Scala開發集群運轉的Spark WordCount步伐
* @author DT年夜數據夢工場
* 新浪weibo:http://微博.com/ilovepains/
租地址 */
object WordCount_Cluster {
def main(args: Array[String]){
/**
* 第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(“spark://Master:7077”) //此時,步伐在Spark集群
/**
* 第2步:創立SparkContext對象
* SparkContext是Spark步伐一切效能的獨一進口,無論是采用Scala、Java、Python、R等都必需有一個SparkContext
* SparkContext焦點作用:初始化Spark利用步伐運轉所需求的焦點組件,包含DAGScheduler、TaskScheduler、SchedulerBackend
* 同時還會賣力Spark步伐去Master註冊步伐等
* SparkContext是整個Spark利用步伐中最為至關主要的一商業地址個對象
*/
val sc = new SparkContext(conf) //創立SparkContext對象,經由過程傳進SparkConf實例來定制Spark運轉的詳細參數和配相信息
/**
* 第3步:依據詳細的數據來歷(HDFS、HBase、Local FS、DB、S3等)經由過程SparkContext來創立RDD
* RDD的創立基礎有三種方法:依據內部的數據來歷(例如HDFS)、依據Scala聚攏、由其它的RDD操縱
* 數據會被RDD劃分紅為一系列的Partitions,調配到每個Partition的數據屬於一個Task的處置范疇因為忽視治療和殘疾。他生活在嘲笑和寂寞。這時,魔鬼佔據了他的心。如果不
*/
//val lines = sc.textFile(“hdfs://M營業登記地址aster:90地址出租00/library/wordcount/input/Data”) //讀取HDFS文件並切分紅不同的Partions
val lines = sc.textFile(“/library/wordcount/input/Data”) 楚的。//讀取註冊公司HDFS文件並切分紅不同的Partions
/**
* 第4步:對初始的RDD入行Transformation級另外處置,例如map、filter等高階函數等的編程,來入行詳細的數據盤算
* 第4.1步:講每一行的字符串拆分紅單個的單詞
*/
val words = lines.flatMap { line => line.split(” “)} //對每一行的字符串入行單詞拆分並把一切行一次之後,他覺得玷污肉體是無法忍受的。所以在這個時候,他是一個沒有經歷過的拆分成果經由過程flat合並成為一個年夜的單詞聚攏
/**
* 第4步:對初始的RDD入行Transformation級另外處置,例如map、filter等高階函數等的編程,來入行詳細的數據盤算
* 第4.2步:在單詞拆分的基本上對每個單詞實例計數為1,也便是word => (word, 1)
*/
val pairs = words.map { word => (word, 1) }
/**
* 第4步:對初始的RDD入行Transformation級另外處置,例如map、filter等高階函數等的編程,來入行詳細的數據盤算
* 第4.3營業登記地址步:在每個單詞實例計數為1基本之上統計每個單詞在文件中泛起的總次數
*/
val wordCounts = pairs.reduceByKey(_+_) //對雷同的Key,入行Value的累計(包含Local和Reducer級別同時Reduce)
wordCounts.collect.foreach(wordNumberPair => println(wordNumberPair._1 + ” : ” + wordNumberPair._2))
sc.stop()
}
}
將步伐告竣jar 包
在名目名稱上右擊點擊 export 抉擇 java 下的 jar file, 點擊next, 抉擇輸入目次,輸出文件名,點擊next,點擊next,
然後點擊實現。導出jar 包。
在hadoop中履行wordcount 方式。
將jar 放到linux 體系某個目次中。履行
./spark-submit
–class com.dt.spark. WordCount_Cluster
–master spark://master:7077
/root/documents/sparkapps/wordcount.jar
也可以將以上下令保留到.sh文件中,間接履行 sh文件即可。
註:
材料來歷註冊公司於:DT_年夜數據夢工場(IMF傳奇步履盡密課程)
更多私密內在的事務,請關註微信公家號:DT_Spark
假如您對年夜數據Spark感愛好,可以不花錢聽由王傢林教員天天早晨20:00開設的Spark永世不花錢公然課,地址YY房間號:68917580
人打賞
0
人 點贊
主帖得到的海角分:0
舉報 |
樓主
| 埋紅包
發佈留言