Java+Scala混合開發(fā)Spark應(yīng)用

Java+Scala混合開發(fā)Spark應(yīng)用

我主要使用Spark GraphX 的api城菊,但是使用Scala對(duì)項(xiàng)目的成員不是很友好炭序,考慮到Scala在市場上的用戶沒有Java的多霎褐,就打算使用Java+Scala混合開發(fā)Spark GraphX應(yīng)用,

環(huán)境:

Java8

Scala 2.12.*

pom.xml

需要修改一下

<groupId>xxx</groupId>
<artifactId>xxx</artifactId>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>
    <groupId>xxx</groupId>
    <artifactId>xxx</artifactId>
    <inceptionYear>2008</inceptionYear>

    <parent>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-parent_2.12</artifactId>
        <version>3.0.1</version>
    </parent>

    <properties>
        <sbt.project.name>examples</sbt.project.name>
        <build.testJarPhase>none</build.testJarPhase>
        <build.copyDependenciesPhase>package</build.copyDependenciesPhase>
        <!--        <hadoop.deps.scope>provided</hadoop.deps.scope>-->
        <!--        <hive.deps.scope>provided</hive.deps.scope>-->
        <!--        <parquet.deps.scope>provided</parquet.deps.scope>-->
        <scala.version>2.12.12</scala.version>
        <scala.binary.version>2.12</scala.binary.version>
    </properties>


    <dependencies>
        <!-- Prevent our dummy JAR from being included in Spark distributions or uploaded to YARN -->
        <dependency>
            <groupId>org.spark-project.spark</groupId>
            <artifactId>unused</artifactId>
            <version>1.0.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_${scala.binary.version}</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-streaming_${scala.binary.version}</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-mllib_${scala.binary.version}</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-hive_${scala.binary.version}</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-graphx_${scala.binary.version}</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-streaming-kafka-0-10_${scala.binary.version}</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-sql-kafka-0-10_${scala.binary.version}</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-math3</artifactId>
        </dependency>
        <dependency>
            <groupId>org.scalacheck</groupId>
            <artifactId>scalacheck_${scala.binary.version}</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.scala-lang</groupId>
            <artifactId>scala-library</artifactId>

        </dependency>
        <dependency>
            <groupId>com.github.scopt</groupId>
            <artifactId>scopt_${scala.binary.version}</artifactId>
            <version>3.7.1</version>
        </dependency>

        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>${guava.version}</version>
            <scope>compile</scope>
        </dependency>

    </dependencies>

    <build>
        <outputDirectory>target/scala-${scala.binary.version}/classes</outputDirectory>
        <testOutputDirectory>target/scala-${scala.binary.version}/test-classes</testOutputDirectory>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-deploy-plugin</artifactId>
                <configuration>
                    <skip>true</skip>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-install-plugin</artifactId>
                <configuration>
                    <skip>true</skip>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <outputDirectory>${jars.target.dir}</outputDirectory>
                </configuration>
            </plugin>

        </plugins>


    </build>


    <profiles>
        <profile>
            <id>kinesis-asl</id>
            <dependencies>
                <dependency>
                    <groupId>org.apache.spark</groupId>
                    <artifactId>spark-streaming-kinesis-asl_${scala.binary.version}</artifactId>
                    <version>${project.version}</version>
                    <scope>provided</scope>
                </dependency>
            </dependencies>
        </profile>
    </profiles>
</project>

等待依賴下載

速度可能有點(diǎn)慢拒担,可以設(shè)置maven的代理

修改maven settings.xml文件淹办,在settings 里面添加 

   <proxies>
        <proxy>
            <id>optional</id>
            <active>true</active>
            <protocol>http</protocol>
            <host>127.0.0.1</host>
            <port>1081</port>
        </proxy>
    </proxies>



然后打開命令行窗口 執(zhí)行

mvn compile

這樣就能夠通過代理下載依賴了

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市械哟,隨后出現(xiàn)的幾起案子疏之,更是在濱河造成了極大的恐慌,老刑警劉巖暇咆,帶你破解...
    沈念sama閱讀 211,348評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件锋爪,死亡現(xiàn)場離奇詭異,居然都是意外死亡爸业,警方通過查閱死者的電腦和手機(jī)其骄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來扯旷,“玉大人拯爽,你說我怎么就攤上這事【觯” “怎么了毯炮?”我有些...
    開封第一講書人閱讀 156,936評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長耸黑。 經(jīng)常有香客問我桃煎,道長,這世上最難降的妖魔是什么崎坊? 我笑而不...
    開封第一講書人閱讀 56,427評(píng)論 1 283
  • 正文 為了忘掉前任备禀,我火速辦了婚禮,結(jié)果婚禮上奈揍,老公的妹妹穿的比我還像新娘曲尸。我一直安慰自己,他們只是感情好男翰,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,467評(píng)論 6 385
  • 文/花漫 我一把揭開白布另患。 她就那樣靜靜地躺著,像睡著了一般蛾绎。 火紅的嫁衣襯著肌膚如雪昆箕。 梳的紋絲不亂的頭發(fā)上鸦列,一...
    開封第一講書人閱讀 49,785評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音鹏倘,去河邊找鬼薯嗤。 笑死,一個(gè)胖子當(dāng)著我的面吹牛纤泵,可吹牛的內(nèi)容都是我干的骆姐。 我是一名探鬼主播,決...
    沈念sama閱讀 38,931評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼捏题,長吁一口氣:“原來是場噩夢啊……” “哼玻褪!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起公荧,我...
    開封第一講書人閱讀 37,696評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤带射,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后循狰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體窟社,經(jīng)...
    沈念sama閱讀 44,141評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,483評(píng)論 2 327
  • 正文 我和宋清朗相戀三年晤揣,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了桥爽。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,625評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡昧识,死狀恐怖钠四,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情跪楞,我是刑警寧澤缀去,帶...
    沈念sama閱讀 34,291評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站甸祭,受9級(jí)特大地震影響缕碎,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜池户,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,892評(píng)論 3 312
  • 文/蒙蒙 一咏雌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧校焦,春花似錦赊抖、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至耸成,卻和暖如春报亩,著一層夾襖步出監(jiān)牢的瞬間浴鸿,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來泰國打工弦追, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留岳链,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓劲件,卻偏偏與公主長得像宠页,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子寇仓,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,492評(píng)論 2 348