摘要:運行數據準備隨便準備一個文檔格式不限,上傳到上。解決因為原來是用的版本為相應的依賴包官網已經不再支持,所以更新的平臺的環境為,相應的文檔很少,更改版本為。星期六星期一由為知筆記遷移到。
0x01 環境說明
博客地址:http://www.cnblogs.com/ning-wang/p/7359977.html
1.1 本地1.2 服務器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
配置環境變量
JAVA_HOME CLASSPATH Path2.2 配置hosts 2.2.1 文件位置
C:WindowsSystem32driversetc
2.2.2 新增內容和集群的hosts文件內容一樣
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 服務器端配置 3.1 安裝jdk 3.2 安裝hadoop配置遠程訪問權限
3.3 安裝spark 0x04 測試 4.1 新建maven項目 4.2 添加依賴包File -> Project Structure -> Libraries添加spark-assembly-1.6.3-hadoop2.6.0.jar(位置在服務器端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 編譯運行
如果出現上圖結果則證明,運行正確。
4.5 運行JavaWordCount 4.5.1 數據準備隨便準備一個文檔格式不限,上傳到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(); } }
非常重要,否則運行會出現各種錯誤,甚至無法運行
在File -> Project Structure ->Artifacts點擊綠色“+”,Add-->JAR-->From Modules with Dependencies
輸入main class入口函數名,將Output Layout下所有jar包刪掉(因為spark運行環境已經包含了這些包),如果已經存在META-INF要先將這個文件夾刪除。然后Apply,OK
編譯程序:Build-->Build Artifacts...,然后選擇要編譯的項目進行編譯
在當前工程生成的out目錄下就可以找到輸出的jar包,放到程序中指定的位置(就是addJar()方法中所設置的路徑)
4.5.4 運行程序 0x05 出現的問題 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依賴包所致。
解決:因為原來是用的hadoop版本為2.5.2相應的依賴包官網已經不再支持,所以更新的平臺的hadoop環境為2.6.5,spark 2.X相應的文檔很少,更改版本為1.6.3。
Create: 2017-08-12 10:33:55 星期六
Update: 2017-08-14 20:10:47 星期一
update: 2017.10.17
由為知筆記遷移到SF。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/67790.html
摘要:最近研究了一下,正好把配置的一些東西記錄下來安裝這里假設你已經學會了安裝如果沒有安裝請先參閱其他教程安裝。去下載,可能會比較慢。安裝完成后,打開壓縮包,解壓到指定的文件夾,然后設置環境變量。如果設置正確,在目錄中輸入正好跳轉到你安裝的目錄。 最近研究了一下java,正好把配置的一些東西記錄下來 安裝Gradle這里假設你已經學會了安裝Java,如果沒有安裝Java,請先參閱其他教程安裝...
摘要:最近研究了一下,正好把配置的一些東西記錄下來安裝這里假設你已經學會了安裝如果沒有安裝請先參閱其他教程安裝。去下載,可能會比較慢。安裝完成后,打開壓縮包,解壓到指定的文件夾,然后設置環境變量。如果設置正確,在目錄中輸入正好跳轉到你安裝的目錄。 最近研究了一下java,正好把配置的一些東西記錄下來 安裝Gradle這里假設你已經學會了安裝Java,如果沒有安裝Java,請先參閱其他教程安裝...
閱讀 1626·2021-10-14 09:43
閱讀 5503·2021-09-07 10:21
閱讀 1275·2019-08-30 15:56
閱讀 2123·2019-08-30 15:53
閱讀 1231·2019-08-30 15:44
閱讀 2010·2019-08-30 15:44
閱讀 1320·2019-08-29 17:24
閱讀 752·2019-08-29 15:19