摘要:運(yùn)行數(shù)據(jù)準(zhǔn)備隨便準(zhǔn)備一個(gè)文檔格式不限,上傳到上。解決因?yàn)樵瓉硎怯玫陌姹緸橄鄳?yīng)的依賴包官網(wǎng)已經(jīng)不再支持,所以更新的平臺(tái)的環(huán)境為,相應(yīng)的文檔很少,更改版本為。星期六星期一由為知筆記遷移到。
0x01 環(huán)境說明
博客地址:http://www.cnblogs.com/ning-wang/p/7359977.html
1.1 本地1.2 服務(wù)器OS: windows 10
jdk: jdk1.8.0_121
scala: scala-2.11.11
IDE: IntelliJ IDEA ULTIMATE 2017.2.1
0x02 windows端配置 2.1 安裝jdkOS: CentOS_6.5_x64
jdk: jdk1.8.111
hadoop: hadoop-2.6.5
spark: spark-1.6.3-bin-hadoop2.6
scala: scala-2.11.11
配置環(huán)境變量
JAVA_HOME CLASSPATH Path2.2 配置hosts 2.2.1 文件位置
C:WindowsSystem32driversetc
2.2.2 新增內(nèi)容和集群的hosts文件內(nèi)容一樣
192.168.1.100 master 192.168.1.101 slave1 192.168.1.102 slave22.2.3 安裝IntelliJ IDEA
注意插件安裝Maven
2.2.4 IDEA中安裝scala插件 0x03 服務(wù)器端配置 3.1 安裝jdk 3.2 安裝hadoop配置遠(yuǎn)程訪問權(quán)限
3.3 安裝spark 0x04 測試 4.1 新建maven項(xiàng)目 4.2 添加依賴包File -> Project Structure -> Libraries添加spark-assembly-1.6.3-hadoop2.6.0.jar(位置在服務(wù)器端spark/lib/下)
4.3 新建ConnectionUtil類在srcmainjava目錄下新建java類ConnectionUtil
import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaSparkContext; public class ConnectionUtil { public static final String master = "spark://master:7077"; public static void main(String[] args) { SparkConf sparkConf = new SparkConf().setAppName("demo").setMaster(master); JavaSparkContext javaSparkContext = new JavaSparkContext(sparkConf); System.out.println(javaSparkContext); javaSparkContext.stop(); } }4.4 編譯運(yùn)行
如果出現(xiàn)上圖結(jié)果則證明,運(yùn)行正確。
4.5 運(yùn)行JavaWordCount 4.5.1 數(shù)據(jù)準(zhǔn)備隨便準(zhǔn)備一個(gè)文檔格式不限,上傳到hdfs上。
$ vim wordcount.txt hello Tom hello Jack hello Ning # 上傳文件 $ hadoop fs -put wordcount.txt /user/hadoop/ # 查看文件是否上傳成功 $ hadoop fs -ls /user/hadoop/4.5.2 代碼
spark安裝包中的example,指定了jar包和輸入文件的路徑。
import scala.Tuple2; 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 java.util.Arrays; import java.util.List; import java.util.regex.Pattern; public final class JavaWordCount { private static final Pattern SPACE = Pattern.compile(" "); public static void main(String[] args) throws Exception { // if (args.length < 1) { // System.err.println("Usage: JavaWordCount4.5.3 打包"); // System.exit(1); // } SparkConf sparkConf = new SparkConf().setAppName("JavaWordCount") .setMaster("spark://master:7077") .set("spark.executor.memory", "512M"); JavaSparkContext ctx = new JavaSparkContext(sparkConf); ctx.addJar("D:workspacesparkJavaWordCount.jar"); String path = "hdfs://master:9000/user/hadoop/wordcount.txt"; JavaRDD lines = ctx.textFile(path); JavaRDD words = lines.flatMap(new FlatMapFunction () { @Override public Iterable call(String s) { return Arrays.asList(SPACE.split(s)); } }); JavaPairRDD ones = words.mapToPair(new PairFunction () { @Override public Tuple2 call(String s) { return new Tuple2 (s, 1); } }); JavaPairRDD counts = ones.reduceByKey(new Function2 () { @Override public Integer call(Integer i1, Integer i2) { return i1 + i2; } }); List > output = counts.collect(); for (Tuple2,?> tuple : output) { System.out.println(tuple._1() + ": " + tuple._2()); } ctx.stop(); } }
非常重要,否則運(yùn)行會(huì)出現(xiàn)各種錯(cuò)誤,甚至無法運(yùn)行
在File -> Project Structure ->Artifacts點(diǎn)擊綠色“+”,Add-->JAR-->From Modules with Dependencies
輸入main class入口函數(shù)名,將Output Layout下所有jar包刪掉(因?yàn)閟park運(yùn)行環(huán)境已經(jīng)包含了這些包),如果已經(jīng)存在META-INF要先將這個(gè)文件夾刪除。然后Apply,OK
編譯程序:Build-->Build Artifacts...,然后選擇要編譯的項(xiàng)目進(jìn)行編譯
在當(dāng)前工程生成的out目錄下就可以找到輸出的jar包,放到程序中指定的位置(就是addJar()方法中所設(shè)置的路徑)
4.5.4 運(yùn)行程序 0x05 出現(xiàn)的問題 5.1 找不到scala.Cloneable的類文件問題描述:java: 無法訪問scala.Cloneable 找不到scala.Cloneable的類文件
原因:原來使用的是spark-2.1.0-bin-hadoop2.4沒有spark-assembly-1.6.3-hadoop2.6.0.jar依賴包所致。
解決:因?yàn)樵瓉硎怯玫膆adoop版本為2.5.2相應(yīng)的依賴包官網(wǎng)已經(jīng)不再支持,所以更新的平臺(tái)的hadoop環(huán)境為2.6.5,spark 2.X相應(yīng)的文檔很少,更改版本為1.6.3。
Create: 2017-08-12 10:33:55 星期六
Update: 2017-08-14 20:10:47 星期一
update: 2017.10.17
由為知筆記遷移到SF。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/67790.html
摘要:最近研究了一下,正好把配置的一些東西記錄下來安裝這里假設(shè)你已經(jīng)學(xué)會(huì)了安裝如果沒有安裝請先參閱其他教程安裝。去下載,可能會(huì)比較慢。安裝完成后,打開壓縮包,解壓到指定的文件夾,然后設(shè)置環(huán)境變量。如果設(shè)置正確,在目錄中輸入正好跳轉(zhuǎn)到你安裝的目錄。 最近研究了一下java,正好把配置的一些東西記錄下來 安裝Gradle這里假設(shè)你已經(jīng)學(xué)會(huì)了安裝Java,如果沒有安裝Java,請先參閱其他教程安裝...
摘要:最近研究了一下,正好把配置的一些東西記錄下來安裝這里假設(shè)你已經(jīng)學(xué)會(huì)了安裝如果沒有安裝請先參閱其他教程安裝。去下載,可能會(huì)比較慢。安裝完成后,打開壓縮包,解壓到指定的文件夾,然后設(shè)置環(huán)境變量。如果設(shè)置正確,在目錄中輸入正好跳轉(zhuǎn)到你安裝的目錄。 最近研究了一下java,正好把配置的一些東西記錄下來 安裝Gradle這里假設(shè)你已經(jīng)學(xué)會(huì)了安裝Java,如果沒有安裝Java,請先參閱其他教程安裝...
閱讀 1642·2021-10-14 09:43
閱讀 5592·2021-09-07 10:21
閱讀 1293·2019-08-30 15:56
閱讀 2143·2019-08-30 15:53
閱讀 1246·2019-08-30 15:44
閱讀 2024·2019-08-30 15:44
閱讀 1336·2019-08-29 17:24
閱讀 767·2019-08-29 15:19