第一個Spark程序

1、Java下Spark開發環境搭建(from?http://www.cnblogs.com/eczhou/p/5216918.html

1.1、jdk安裝

安裝oracle下的jdk,我安裝的是jdk 1.7,安裝完新建系統環境變量JAVA_HOME,變量值為“C:\Program Files\Java\jdk1.7.0_79”,視自己安裝路勁而定。

同時在系統變量Path下添加C:\Program Files\Java\jdk1.7.0_79\bin和C:\Program Files\Java\jre7\bin。

1.2 spark環境變量配置

去http://spark.apache.org/downloads.html網站下載相應hadoop對應的版本,我下載的是spark-1.6.0-bin-hadoop2.6.tgz,spark版本是1.6,對應的hadoop版本是2.6

解壓下載的文件,假設解壓 目錄為:D:\spark-1.6.0-bin-hadoop2.6。將D:\spark-1.6.0-bin-hadoop2.6\bin添加到系統Path變量,同時新建SPARK_HOME變量,變量值為:D:\spark-1.6.0-bin-hadoop2.6

1.3 hadoop工具包安裝

spark是基于hadoop之上的,運行過程中會調用相關hadoop庫,如果沒配置相關hadoop運行環境,會提示相關出錯信息,雖然也不影響運行,但是這里還是把hadoop相關庫也配置好吧。

1.3.1 去下載hadoop 2.6編譯好的包https://www.barik.net/archive/2015/01/19/172716/,我下載的是hadoop-2.6.0.tar.gz,

1.3.2 解壓下載的文件夾,將相關庫添加到系統Path變量中:D:\hadoop-2.6.0\bin;同時新建HADOOP_HOME變量,變量值為:D:\hadoop-2.6.0

1.4 eclipse環境

直接新建java工程,將D:\spark-1.6.0-bin-hadoop2.6\lib下的spark-assembly-1.6.0-hadoop2.6.0.jar添加到工程中就可以了。

?

2、Java寫Spark WordCount程序

package?cn.spark.study;

import?java.util.Arrays;

import?org.apache.spark.SparkConf;
import?org.apache.spark.api.java.JavaPairRDD;
import?org.apache.spark.api.java.JavaRDD;
import?org.apache.spark.api.java.JavaSparkContext;
import?org.apache.spark.api.java.function.FlatMapFunction;
import?org.apache.spark.api.java.function.Function2;
import?org.apache.spark.api.java.function.PairFunction;
import?org.apache.spark.api.java.function.VoidFunction;

import?scala.Tuple2;


public?class?WordCount?{
????public?static?void?main(String[]?args)?{
????????
????????//創建?SparkConf對象,對程序進行必要的配置
????????SparkConf?conf?=?new?SparkConf()
????????.setAppName("WordCount").setMaster("local");
????????
????????//通過conf創建上下文對象
????????JavaSparkContext?sc?=?new?JavaSparkContext(conf);
????????
????????//創建初始RDD
????????JavaRDD<String>?lines?=?sc.textFile("D://spark.txt");
????????
????????//----用各種Transformation算子對RDD進行操作-----------------------------------------
????????JavaRDD<String>?words?=?lines.flatMap(new?FlatMapFunction<String,?String>()?{

????????????private?static?final?long?serialVersionUID?=?1L;

????????????@Override
????????????public?Iterable<String>?call(String?line)?throws?Exception?{
????????????????//?TODO?Auto-generated?method?stub
????????????????return?Arrays.asList(line.split("?"));
????????????}
????????});
????????
????????JavaPairRDD<String,Integer>?pairs?=?words.mapToPair(new?PairFunction<String,?String,?Integer>()?{

????????????private?static?final?long?serialVersionUID?=?1L;

????????????@Override
????????????public?Tuple2<String,?Integer>?call(String?word)?throws?Exception?{
????????????????//?TODO?Auto-generated?method?stub
????????????????return?new?Tuple2<String,Integer>(word,1);
????????????}
????????});
????????
????????JavaPairRDD<String,Integer>?wordCounts?=?pairs.reduceByKey(new?Function2<Integer,?Integer,?Integer>()?{
????????????
????????????private?static?final?long?serialVersionUID?=?1L;
????????????
????????????@Override
????????????public?Integer?call(Integer?v1,?Integer?v2)?throws?Exception?{
????????????????//?TODO?Auto-generated?method?stub
????????????????return?v1?+?v2;
????????????}
????????});
????????
????????
????????//----用一個?action?算子觸發job-----------------------------------------
????????wordCounts.foreach(new?VoidFunction<Tuple2<String,Integer>>()?{
????????????
????????????@Override
????????????public?void?call(Tuple2<String,?Integer>?wordCount)?throws?Exception?{
????????????????//?TODO?Auto-generated?method?stub
????????????????System.out.println(wordCount._1?+?"?appeared?"?+?wordCount._2?+?"?times");
????????????}
????????});
????}

}?

?

轉載于:https://www.cnblogs.com/key1309/p/5303557.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/272150.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/272150.shtml
英文地址,請注明出處:http://en.pswp.cn/news/272150.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

arduino判斷是否連接串口_Arduino-串口通信

Serial”系列函數&#xff0c;所以我們要對其有所了解&#xff0c;下面介紹幾個常“Serial”函數。1、Serial.begin()—設置串行每秒傳輸數據的速率(波特率)。在同計算機通訊時&#xff0c;使用下面這些值&#xff1a;300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400…

最詳細的docker安裝rocketMQ教程來了

RocketMQ是一款分布式、隊列模型的消息中間件&#xff0c;是由阿里巴巴設計的&#xff0c;具有以下特點&#xff1a; 支持嚴格的消息順序 支持Topic與Queue兩種模式 億級消息堆積能力 比較友好的分布式特性 同時支持Push與Pull方式消費消息 歷經多次天貓雙十一海量消息考驗…

樹莓派IO口驅動代碼的編寫、微機總線地址、物理地址、虛擬地址、BCM2835芯片手冊

地址總線&#xff1a; 百度百科解釋&#xff1a; 地址總線 (Address Bus&#xff1b;又稱&#xff1a;位址總線) 屬于一種電腦總線 &#xff08;一部份&#xff09;&#xff0c;是由CPU 或有DMA 能力的單元&#xff0c;用來溝通這些單元想要存取&#xff08;讀取/寫入&#xff…

奪命雷公狗---DEDECMS----26dedecms面包屑導航的實現

我們在很多項目里面都會用到面包屑導航&#xff0c;而dedecms里面也是給我們封裝好面包屑導航的了,如下圖所示&#xff1a; 在dede里面實現面包屑導航主要用到{dede:field.position/}標簽&#xff0c;我們首先來修改下article_movie.htm內容頁的模版文件&#xff1a; 我們修改成…

rust油桶用什么打_草莓用什么膨大素好?草莓膨大劑什么時間打?草莓用什么肥料膨大...

農資365公眾號&#xff0c;了解更多生根、根腐、重茬、土傳、枯黃萎、根爛病、防治根結線蟲、微生物菌肥、膨大坐果、抗病增產的防治方法&#xff01;草莓含有豐富的營養&#xff0c;并且種植效益較高&#xff0c;其種植范圍也比較廣。草莓種植期間有很多因素影響草莓果實膨大&…

docker安裝kafka,超級簡單的

簡介 kafka是一個分布式消息隊列。具有高性能、持久化、多副本備份、橫向擴展能力。生產者往隊列里寫消息&#xff0c;消費者從隊列里取消息進行業務邏輯。一般在架構設計中起到解耦、削峰、異步處理的作用。 kafka對外使用topic的概念&#xff0c;生產者往topic里寫消息&…

Linux中常見的環境變量筆記

1、變量&#xff1a;BASHBash Shell的全路徑比如&#xff1a;echo $BASH2、變量&#xff1a;BASH_VERSIONBash Shell的版本號3、變量&#xff1a;EUID記錄當前用戶的UID。root用戶值為0。4、FUNCNAME在用戶函數體內部&#xff0c;記錄當前函數體的函數名。5、變量&#xff1a;H…

消防信號二總線有沒電壓_春曉161#地塊人防工程消防電源監控系統的設計與應用...

涂志燕安科瑞電氣股份有限公司&#xff0c;上海 嘉定 201801&#xff1b;摘要&#xff1a;本文簡述了消防設備電源的組成原理&#xff0c;分析了消防設備電源監控系統在應用中的設計依據和相關規范。通過安科瑞消防設備電源監控系統在春曉161#地塊項目的實例介紹&#xff0c;闡…

大學慕課數據結構單元測試——華中科技大學

第一章緒論單元測試 一、單選(2分) 1、?___C__ 是數據的最小單位。 A.信息項 B.數據元素 C.數據項 D.表元素 2、?以下說法不正確的是 ___B___。 A.數據元素是數據的基本單位 B.數據項可由若干個數據元素構成 C.數據可由若干個數據元素構成 D.數據項是不可分割的最小…

gitlab應用

1.git config --global user.email "mybimt.com"  //注冊本地環境 2.ssh-keygen -t rsa -C "mybimt.com" //生成本機的key 3.在gitlab加入.ssh中生成的key //gitlab中注冊本機 4.git clone gitmy.git …

RocketMQ同步刷盤和異步刷盤

刷盤機制 同步刷盤和異步刷盤 在broker配置文件里修改參數配置是同步還是異步

vim模式下報錯E37: No write since last change No write since last change for buffer “ “

報錯如下圖所示&#xff1a; 網上的解決方法&#xff1a; 文件為只讀文件&#xff0c;無法修改。使用命令:w!強制存盤即可在vim模式下&#xff0c;鍵入以下命令&#xff1a;:w&#xff01;存盤后在使用vim命令檢查是否保存&#xff0c;如未保存&#xff0c;編輯后重復以上操作…

Linux中Shell中取消變量和特殊變量的筆記

1、取消變量取消變量也就是將變量從內存中釋放出去&#xff0c;可以使用unset 后面加變量名即可&#xff0c;當然函數的釋放同樣可以采用該方式處理。比如&#xff1a;name"123"echo ${name}輸出&#xff1a;123unset nameecho ${name}輸出&#xff1a;#取消函數示例…

光華科技光刻膠_【收藏】6天5板!21只光刻膠概念(名單)“出爐”!

連板數量21家中迪投資5板&#xff0c;寧波聯合 神馳機電 神馬電力4板&#xff0c;漢纜股份 華盛昌 浙江鼎力3板&#xff0c;海航投資世聯行 飛龍股份 安潔科技 京威股份 三豐智能 容大感光 晶瑞股份 奧飛數據 光大嘉寶 電子城博天環境 兆易創新 聚辰股份2板二、科技股&#xff…

20159302 《網絡攻擊與防范》第四周學習總結

本節學習內容為網絡攻擊環境的配置。在此過程中&#xff0c;我們至少需要一臺靶機&#xff0c;一臺攻擊機。在此選用windows server 2000為靶機&#xff0c;kali系統為攻擊機。 一、系統的安裝 根據之前發布的kali系統的安裝過程&#xff0c;依據此流程進行windows server的安裝…

智能家居項目開發準備工作

智能家居功能細節拆分&#xff1a; 控制端支持語音設備的輸入&#xff08;用到之前所學習的LD3320語音識別模塊&#xff09;或者是socket客戶端&#xff08;這個客戶端可以是ftp項目的客戶端也可以是Android的app&#xff09;&#xff0c;主控芯片是樹莓派&#xff0c;既接收語…

catia曲面掃掠命令詳解_Mastercam快捷鍵命令,附中英文功能講解!值得收藏!

組合鍵式快捷鍵功能快 捷 鍵功能Alt 0設置Z向控制深度Alt 1設置繪制圖形的顏色Alt 2設置當前層Alt 3與Alt 2功能相同Alt 4設置刀具面(Tplane)Alt 5設置繪圖面(Cplane)Alt 6設置視圖面(Gview)Alt A進入自動存文件對話框快 捷 鍵功能Alt B工具條的顯示/關閉Alt C選擇執…

RocketMQ中主從復制

生產者把消息發送到master&#xff0c;不會發送到slave 消費者可以從maste也可以從slave消費消息 如果master掛了&#xff0c;那就從slave消費數據&#xff0c;那么slave怎么拿到master中的數據 這就要用到主從復制

智能家居代碼構建編寫、簡單工廠模式、樹莓派攝像頭視頻監控功能實現

根據上一節內容的代碼框架開始編寫代碼&#xff1a; 首先編寫controlDevices.h這個頭文件里面的代碼&#xff0c;這個是設備工廠每一個結點的結構體類型&#xff0c;而且還要在這個頭文件里面進行函數的聲明&#xff0c;也就是創建的那些設備.c文件里面的函數&#xff08;為了…