国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Intellij IDEA編寫Spark應(yīng)用程序的環(huán)境配置和操作步驟

這篇具有很好參考價值的文章主要介紹了Intellij IDEA編寫Spark應(yīng)用程序的環(huán)境配置和操作步驟。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

本文介紹如何在win系統(tǒng)中使用IDEA開發(fā)spark應(yīng)用程序,并將其打成jar包上傳到虛擬機中的三個Ubuntu系統(tǒng),然后在分布式環(huán)境中運行。

主要步驟包括:

  • 安裝Scala插件:在Intellij IDEA中安裝Scala插件,并重啟IDEA。
  • 創(chuàng)建Maven項目:在Intellij IDEA中創(chuàng)建一個Maven項目,選擇Scala語言,并添加Spark和HBase依賴。
  • 配置Scala SDK:在Intellij IDEA中添加Scala SDK,并給項目添加Scala支持。
  • 編寫Spark應(yīng)用程序:在src/main/scala目錄下創(chuàng)建一個Scala對象,并編寫Spark代碼。
  • 打包和運行Spark項目:在本地模式下測試Spark應(yīng)用程序,打包成jar包,上傳到虛擬機中的master節(jié)點,使用spark-submit命令提交到集群。

?基礎(chǔ)環(huán)境

?首先確保已經(jīng)在虛擬機中安裝配置好Hadoop,HBase和Spark,并且可以正常運行。本文假設(shè)已經(jīng)按照之前文章的步驟搭建了一個三節(jié)點的Hadoop集群,其中scala版本為2.12,hbase版本為2.3.7,spark版本為3.2.3,hadoop版本為3.2.4

一、安裝Scala插件

  • 在Intellij IDEA中,選擇File->Settings->Plugins,在Marketplace中搜索scala進行安裝,安裝后根據(jù)提示重啟IDEA。

二、創(chuàng)建Maven項目

  • 在Intellij IDEA中,選擇File->New->Project,選擇Maven作為項目類型,填寫項目名稱和位置。
  • 在pom.xml文件中添加Spark和HBase相關(guān)的依賴,注意要與虛擬機中的Spark版本和Scala版本保持一致。本文使用的是Spark 3.2.3和Scala 2.12。例如:
<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>sparkhbase</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>

        <hbase.version>2.3.7</hbase.version>
        <hadoop.version>3.2.4</hadoop.version>
        <spark.version>3.2.3</spark.version>
        <scala.version>2.12</scala.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>


    <dependencies>

        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_${scala.version}</artifactId>
            <version>${spark.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-streaming_${scala.version}</artifactId>
            <version>${spark.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-sql_${scala.version}</artifactId>
            <version>${spark.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-hive_${scala.version}</artifactId>
            <version>${spark.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-client</artifactId>
            <version>${hadoop.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-common</artifactId>
            <version>${hadoop.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-hdfs</artifactId>
            <version>${hadoop.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-client</artifactId>
            <version>${hbase.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-server</artifactId>
            <version>${hbase.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-mapreduce</artifactId>
            <version>${hbase.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-common</artifactId>
            <version>${hbase.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase</artifactId>
            <version>${hbase.version}</version>
            <type>pom</type>
        </dependency>

        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-mllib_${scala.version}</artifactId>
            <version>${spark.version}</version>
        </dependency>

    </dependencies>
</project>

三、配置Scala SDK

  • 在Intellij IDEA中,選擇File->Project Structure->Global Libraries,添加Scala SDK,選擇本地安裝的Scala版本。
  • 在項目中右鍵選擇Add Framework Support,在彈出的對話框中勾選Scala,并選擇對應(yīng)的SDK。

四、編寫Spark應(yīng)用程序

  • 在src/main/scala目錄下創(chuàng)建一個包,例如com.spark.example,并在該包下創(chuàng)建一個Scala對象,例如WordCountFromHBase。編寫Spark應(yīng)用程序的代碼,例如:
import org.apache.hadoop.hbase.{HBaseConfiguration, TableName}
import org.apache.hadoop.hbase.client.{Connection, ConnectionFactory, Scan}
import org.apache.hadoop.hbase.mapreduce.TableInputFormat
import org.apache.hadoop.hbase.util.Bytes
import org.apache.spark.{SparkConf, SparkContext}

object WordCountFromHBase {
  def main(args: Array[String]): Unit = {
    //創(chuàng)建Spark配置對象
    val conf = new SparkConf().setAppName("WordCountFromHBase").setMaster("local")
    //創(chuàng)建Spark上下文對象
    val sc = new SparkContext(conf)
    //創(chuàng)建HBase配置對象
    val hbaseConf = HBaseConfiguration.create()
    //設(shè)置HBase的Zookeeper地址
    hbaseConf.set("hbase.zookeeper.quorum", "hadoop100:2181,hadoop200:2181,hadoop201:2181")
    //設(shè)置HBase的Zookeeper端口
    hbaseConf.set("hbase.zookeeper.property.clientPort", "2181")
    //設(shè)置要讀取的HBase表名,提前通過hbase shell創(chuàng)建
    val tableName = "testtable"
    hbaseConf.set(TableInputFormat.INPUT_TABLE, tableName)
    //創(chuàng)建HBase連接對象
    val connection: Connection = ConnectionFactory.createConnection(hbaseConf)
    //獲取HBase表對象
    val table = connection.getTable(TableName.valueOf(tableName))
    //創(chuàng)建一個掃描對象,指定要讀取的列族和列名
    val scan = new Scan()
    scan.addColumn(Bytes.toBytes("f"), Bytes.toBytes("word"))
    //將掃描對象轉(zhuǎn)換為字符串,設(shè)置到HBase配置對象中
    hbaseConf.set(TableInputFormat.SCAN, TableMapReduceUtil.convertScanToString(scan))
    //從HBase中讀取數(shù)據(jù),返回一個RDD
    val hbaseRDD = sc.newAPIHadoopRDD(hbaseConf, classOf[TableInputFormat], classOf[org.apache.hadoop.hbase.io.ImmutableBytesWritable], classOf[org.apache.hadoop.hbase.client.Result])
    //對RDD進行單詞統(tǒng)計
    val wordCount = hbaseRDD.map(tuple => {
      //獲取Result對象
      val result = tuple._2
      //獲取word列的值,轉(zhuǎn)換為字符串
      val word = Bytes.toString(result.getValue(Bytes.toBytes("f"), Bytes.toBytes("word")))
      //返回(word, 1)的元組
      (word, 1)
    }).reduceByKey((a, b) => a + b)
    //打印結(jié)果
    wordCount.foreach(println)
    //關(guān)閉Spark上下文和HBase連接
    sc.stop()
    connection.close()
  }
}

五、打包和運行Spark項目

  • 在Intellij IDEA中右鍵運行WordCountFromHBase對象,可以在本地模式下測試Spark應(yīng)用程序是否正確。如果沒有問題,可以進行打包操作。
  • 在Intellij IDEA中打開Maven工具欄,雙擊lifecycle下的package命令,將項目打成jar包。打包完成后的jar包在target目錄下,例如spark-example-1.0-SNAPSHOT.jar。
  • 將jar包上傳到虛擬機中的hadoop100主節(jié)點,userjar/目錄。
  • 在master節(jié)點上使用spark-submit命令提交Spark應(yīng)用程序到集群,指定jar包路徑和主類名。例如:
spark-submit --class com.spark.example.WordCountFromHBase spark-example-1.0-SNAPSHOT.jar
  • 查看Spark應(yīng)用程序的運行結(jié)果,可以在終端中輸出,也可以在Spark Web UI中查看。

打包方式二:?

File->Project Structure->artifacts->點擊加號->JAR->from model->點擊Main Class選項框后的文件夾->點擊Projet->選擇main方法->點擊ok

idea spark開發(fā)環(huán)境,分布式存儲與并行處理,scala,spark,intellij idea,hbase

僅保留類似紅框中函數(shù)名的程序包,去掉多余依賴,打成比較小的jar包,需要linux中的軟件環(huán)境與依賴版本相同才能運行

idea spark開發(fā)環(huán)境,分布式存儲與并行處理,scala,spark,intellij idea,hbase

?

之后Build->Build artifacts->選中項目點擊build即可


?文章來源地址http://www.zghlxwxcb.cn/news/detail-663984.html

到了這里,關(guān)于Intellij IDEA編寫Spark應(yīng)用程序的環(huán)境配置和操作步驟的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 編寫中間件以用于 Express 應(yīng)用程序

    編寫中間件以用于 Express 應(yīng)用程序

    中間件 函數(shù)能夠訪問請求對象?( req )、響應(yīng)對象?( res ) 以及應(yīng)用程序的請求/響應(yīng)循環(huán)中的下一個中間件函數(shù)。下一個中間件函數(shù)通常由名為? next ?的變量來表示。 中間件函數(shù)可以執(zhí)行以下任務(wù): 執(zhí)行任何代碼。 對請求和響應(yīng)對象進行更改。 結(jié)束請求/響應(yīng)循環(huán)。 調(diào)用堆棧

    2024年02月10日
    瀏覽(21)
  • Spark 部署與應(yīng)用程序交互簡單使用說明

    Spark 部署與應(yīng)用程序交互簡單使用說明

    本文將講解 Spark 的部署,并通過三個簡單的步驟來編寫一個獨立應(yīng)用程序。 我們將使用本地模式,其中所有的處理都是在Spark shell中的一臺機器上完成的——這是學習框架的一種簡單方法,迭代執(zhí)行的方式可以及時反饋直接結(jié)果。使用Spark shell,可以在編寫復雜的Spark應(yīng)用程

    2024年04月12日
    瀏覽(19)
  • 為什么選擇Go語言編寫網(wǎng)絡(luò)應(yīng)用程序

    為什么選擇Go語言編寫網(wǎng)絡(luò)應(yīng)用程序

    關(guān)注公眾號【愛發(fā)白日夢的后端】分享技術(shù)干貨、讀書筆記、開源項目、實戰(zhàn)經(jīng)驗、高效開發(fā)工具等,您的關(guān)注將是我的更新動力! 作為一名后端開發(fā)者,你一定對選擇合適的編程語言來編寫網(wǎng)絡(luò)應(yīng)用程序非常重視。在眾多的編程語言中,Go語言(Golang)憑借其獨特的特性和

    2024年02月02日
    瀏覽(21)
  • Python 編寫 Flink 應(yīng)用程序經(jīng)驗記錄(Flink1.17.1)

    Python 編寫 Flink 應(yīng)用程序經(jīng)驗記錄(Flink1.17.1)

    目錄 官方API文檔 提交作業(yè)到集群運行 官方示例 環(huán)境 編寫一個 Flink Python Table API 程序 執(zhí)行一個 Flink Python Table API 程序 實例處理Kafka后入庫到Mysql 下載依賴 flink-kafka jar 讀取kafka數(shù)據(jù) 寫入mysql數(shù)據(jù) flink-mysql jar https://nightlies.apache.org/flink/flink-docs-release-1.17/zh/docs/dev/python/overview/

    2024年02月08日
    瀏覽(22)
  • Camera | 4.瑞芯微平臺MIPI攝像頭應(yīng)用程序編寫

    Camera | 4.瑞芯微平臺MIPI攝像頭應(yīng)用程序編寫

    前面3篇我們講解了camera的基礎(chǔ)概念,MIPI協(xié)議,CSI2,常用命令等,本文帶領(lǐng)大家入門,如何用c語言編寫應(yīng)用程序來操作攝像頭。 Linux下攝像頭驅(qū)動都是基于v4l2架構(gòu),要基于該架構(gòu)編寫攝像頭的應(yīng)用程序,必須先要搞清楚什么是v4l2。 v4l2是video for Linux 2的縮寫,是一套Linux內(nèi)核

    2024年01月18日
    瀏覽(19)
  • 編寫一個 Java 應(yīng)用程序,該程序中有兩個類: Vehicle(用于刻畫機動車)和 User(主類)。

    編寫一個 Java 應(yīng)用程序,該程序中有兩個類: Vehicle(用于刻畫機動車)和 User(主類)。

    具體要求如下: 1)Vehicle 類有一個 double 類型的變量 speed,用于刻畫機動車的速度,一個 int 型變量 power,用于刻畫機動車的功率。類中定義了 speedUp(int s)方法,體現(xiàn)機動車有減速功能;定義了 speedDown()方法,體現(xiàn)機動車有減速功能;定義了 setPower(int p)方法,用于設(shè)置機動車

    2024年02月05日
    瀏覽(32)
  • Fast DDS(1)編寫一個簡單的C++發(fā)布者和訂閱者應(yīng)用程序

    ????????本次我們詳細介紹如何使用C++API逐步創(chuàng)建一個簡單的Fast DDS應(yīng)用程序,其中包含發(fā)布者和訂閱者。也可以使用eProsima Fast DDS-Gen工具自行生成與本節(jié)中實現(xiàn)的示例相類似的示例。在構(gòu)建發(fā)布/訂閱應(yīng)用程序中解釋了這種附加方法。 ???????1.3.1? 背景介紹 ???

    2024年02月12日
    瀏覽(26)
  • IDEA打包jar包,以及exe應(yīng)用程序。

    IDEA打包jar包,以及exe應(yīng)用程序。

    一、將IDEA中的java項目打包成jar包 ①點擊菜單欄中的文件→項目結(jié)構(gòu) ②在項目結(jié)構(gòu)窗口選擇工件。點擊添加,選擇jar,選擇來自有依賴項的模塊 ③在【從模塊創(chuàng)建JAR】對話框中,選擇主類,點擊確定 ④點擊確定。 ⑤點擊菜單欄中的構(gòu)建,選擇構(gòu)建項目 ⑥點擊菜單欄中的構(gòu)

    2024年02月08日
    瀏覽(24)
  • 在IDEA運行spark程序(搭建Spark開發(fā)環(huán)境)

    在IDEA運行spark程序(搭建Spark開發(fā)環(huán)境)

    ? ? ? ?建議大家寫在Linux上搭建好Hadoop的完全分布式集群環(huán)境和Spark集群環(huán)境,以下在IDEA中搭建的環(huán)境僅僅是在window系統(tǒng)上進行spark程序的開發(fā)學習,在window系統(tǒng)上可以不用安裝hadoop和spark,spark程序可以通過pom.xml的文件配置,添加spark-core依賴,可以直接在IDEA中編寫spark程序

    2024年02月06日
    瀏覽(24)
  • idea使用docker-compose發(fā)布應(yīng)用程序

    idea使用docker-compose發(fā)布應(yīng)用程序

    idea要想使用docker-compose,不能使用ssh創(chuàng)建idea Docker,而需要使用socket創(chuàng)建idea Docker。 socket docker是不安全的,任何人都可以訪問你的docker,所以只能測試環(huán)境使用,請勿在正式環(huán)境使用socket docker。 云服務(wù)器安全組開放2375端口,如果不是云服務(wù)器則自己修改防火墻規(guī)則開放237

    2024年02月02日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包