亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

如何使用Java調(diào)用Spark集群

 更新時(shí)間:2024年02月29日 09:45:26   作者:bluesnail95  
這篇文章主要介紹了如何使用Java調(diào)用Spark集群,我搭建的Spark集群的版本是2.4.4,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧

我搭建的Spark集群的版本是2.4.4。

在網(wǎng)上找的maven依賴(lài),鏈接忘記保存了。。。。

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <hadoop.version>2.6.0-cdh5.14.2</hadoop.version>
    <hive.version>1.1.0-cdh5.14.2</hive.version>
    <hbase.version>1.2.0-cdh5.14.2</hbase.version>
    <scala.version>2.11.8</scala.version>
    <spark.version>2.4.4</spark.version>
</properties>
<repositories>
    <repository>
        <id>cloudera</id>
        <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
    </repository>
</repositories>
<dependencies>
    <!--scala-->
    <dependency>
        <groupId>org.scala-lang</groupId>
        <artifactId>scala-library</artifactId>
        <version>2.11.8</version>
    </dependency>
    <!-- spark-core -->
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-core_2.11</artifactId>
        <version>${spark.version}</version>
    </dependency>
    <!-- spark-sql -->
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-sql_2.11</artifactId>
        <version>${spark.version}</version>
    </dependency>
    <!-- spark-hive -->
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-hive_2.11</artifactId>
        <version>2.4.4</version>
    </dependency>
    <!-- spark-graphx -->
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-graphx_2.11</artifactId>
        <version>${spark.version}</version>
    </dependency>
    <!-- hadoop -->
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-common</artifactId>
        <version>${hadoop.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-hdfs</artifactId>
        <version>${hadoop.version}</version>
    </dependency>
    <!-- log4j -->
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>
    <!-- junit -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.11</version>
    </dependency>
    <!-- kafka-clients -->
    <dependency>
        <groupId>org.apache.kafka</groupId>
        <artifactId>kafka-clients</artifactId>
        <version>0.11.0.2</version>
    </dependency>
    <!-- mysql-connector-java -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.31</version>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>2.0.1.RELEASE</version>
            <configuration>
                <mainClass>gdut.spark.SparkInit</mainClass>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

Java客戶(hù)端連接示例:

import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.SparkConf;
import java.util.Arrays;
import java.util.List;
public class SparkInit {
    public static void main(String[] args) {
        try {
            SparkConf conf = new SparkConf().setAppName("liufeifei").setMaster("spark://x.x.x.x:30010");
            conf.set("spark.executor.cores","1");
            conf.set("spark.executor.memory", "1024m");
            JavaSparkContext sc = new JavaSparkContext(conf);
            List<Integer> data = Arrays.asList(1, 2, 3, 4, 5);
            JavaRDD<Integer> distData = sc.parallelize(data);
            System.out.println("result is " + distData.count());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

遇到問(wèn)題:
(1)spark集群中,worker節(jié)點(diǎn)提示:Failed to send RPC
master pod的spark-shell執(zhí)行collect方法,日志輸出如下:

worker pod輸出如下:

worker節(jié)點(diǎn)無(wú)法創(chuàng)建Executor,在worker節(jié)點(diǎn)的安裝目錄下有個(gè)work目錄,有每次創(chuàng)建Executor的日志。查看是worker節(jié)點(diǎn)與master節(jié)點(diǎn)無(wú)法通信。但是worker節(jié)點(diǎn)有向master注冊(cè),在master的UI界面有顯示注冊(cè)的worker節(jié)點(diǎn)。在網(wǎng)上不經(jīng)意看到有人說(shuō)可能是istio影響了,然后想起自己之前部署過(guò)istio。查看spark部署的命名空間確實(shí)是開(kāi)啟istio注入。

換個(gè)沒(méi)有istio注入的命名空間創(chuàng)建spark集群。在master節(jié)點(diǎn)的spark-shell可以執(zhí)行collect方法,可以調(diào)度到worker節(jié)點(diǎn)的Executor。

(2)Caused by: java.net.UnknownHostException: XXX
無(wú)論在本地還是在虛擬機(jī)執(zhí)行上面的客戶(hù)端連接,都會(huì)提示UnknownHostException。這是因?yàn)樵趙orker容器的/etc/hosts找不到客戶(hù)端主機(jī)名稱(chēng)和IP的映射關(guān)系。

解決辦法:使用 HostAliases 向 Pod /etc/hosts 文件添加條目

hostAliases:
  - ip: "127.0.0.1"
    hostnames:
    - "foo.local"
    - "bar.local"
  - ip: "10.1.2.3"
    hostnames:
    - "foo.remote"
    - "bar.remote"

我在yaml文件添加了hostAliases之后,提示主機(jī)名不符合規(guī)定,然后修改了自己虛擬機(jī)上的主機(jī)名。

LINUX修改主機(jī)名稱(chēng)(立即永久生效)

修改主機(jī)名后遇到:java.net.UnknownHostException:Name or Service not known

修改了/etc/hosts文件可以解決。

因?yàn)閟park集群是部署在一臺(tái)虛擬機(jī)上,本地不能和虛擬機(jī)通信,所以要把spring boot項(xiàng)目打包成jar在虛擬機(jī)上執(zhí)行。
Main方法輸出:

worker日志輸出(k8s容器和宿主機(jī)時(shí)間相差了8個(gè)小時(shí)):

到此這篇關(guān)于使用Java調(diào)用Spark集群的文章就介紹到這了,更多相關(guān)Java Spark集群內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java獲取Object中Value的實(shí)現(xiàn)方法

    Java獲取Object中Value的實(shí)現(xiàn)方法

    本文介紹了在Java中獲取對(duì)象屬性值的幾種常見(jiàn)方法,包括使用反射機(jī)制、getter方法、接口或抽象類(lèi)、Map數(shù)據(jù)結(jié)構(gòu)、序列化與反序列化以及JavaBeans規(guī)范,每種方法都有其適用場(chǎng)景和優(yōu)缺點(diǎn),選擇合適的方法取決于具體需求
    2025-03-03
  • 解決springboot啟動(dòng)Logback報(bào)錯(cuò)ERROR in ch.qos.logback.classic.joran.action.ContextNameAction - Failed to rena

    解決springboot啟動(dòng)Logback報(bào)錯(cuò)ERROR in ch.qos.logback.cla

    這篇文章主要介紹了解決springboot啟動(dòng)Logback報(bào)錯(cuò)ERROR in ch.qos.logback.classic.joran.action.ContextNameAction - Failed to rena問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • Java SpringBoot模板引擎之 Thymeleaf入門(mén)詳解

    Java SpringBoot模板引擎之 Thymeleaf入門(mén)詳解

    jsp有著強(qiáng)大的功能,能查出一些數(shù)據(jù)轉(zhuǎn)發(fā)到JSP頁(yè)面以后,我們可以用jsp輕松實(shí)現(xiàn)數(shù)據(jù)的顯示及交互等,包括能寫(xiě)Java代碼。但是,SpringBoot首先是以jar的方式,不是war;其次我們的tomcat是嵌入式的,所以現(xiàn)在默認(rèn)不支持jsp
    2021-10-10
  • Java集合教程之Collection實(shí)例詳解

    Java集合教程之Collection實(shí)例詳解

    集合,或者叫容器,是一個(gè)包含多個(gè)元素的對(duì)象,下面這篇文章主要給大家介紹了關(guān)于Java集合教程之Collection的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-08-08
  • RocketMQ保證消息的有序性的案例分享

    RocketMQ保證消息的有序性的案例分享

    Apache RocketMQ 是一個(gè)常用的開(kāi)源消息中間件,它提供了強(qiáng)大的有序消息處理能力,這里我們會(huì)探討 RocketMQ 是如何保證消息的有序性的,包括其設(shè)計(jì)原理和相關(guān)的源碼實(shí)現(xiàn),需要的朋友可以參考下
    2024-04-04
  • SpringBoot使用spring.config.import多種方式導(dǎo)入配置文件

    SpringBoot使用spring.config.import多種方式導(dǎo)入配置文件

    本文主要介紹了SpringBoot使用spring.config.import多種方式導(dǎo)入配置文件,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • 如何基于SpringBoot實(shí)現(xiàn)人臉識(shí)別功能

    如何基于SpringBoot實(shí)現(xiàn)人臉識(shí)別功能

    人工智能時(shí)代的到來(lái),相信大家已耳濡目染,虹軟免費(fèi),離線開(kāi)放的人臉識(shí)別SDK,正推動(dòng)著全行業(yè)進(jìn)入刷臉時(shí)代,下面這篇文章主要給大家介紹了關(guān)于如何基于SpringBoot實(shí)現(xiàn)人臉識(shí)別功能的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • Java中線程安全有哪些實(shí)現(xiàn)思路

    Java中線程安全有哪些實(shí)現(xiàn)思路

    在 Java 多線程編程中,線程安全是一個(gè)非常重要的概念,本文主要介紹了Java中線程安全有哪些實(shí)現(xiàn)思路,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2023-05-05
  • java正則表達(dá)式簡(jiǎn)單應(yīng)用

    java正則表達(dá)式簡(jiǎn)單應(yīng)用

    這篇文章主要介紹了java正則表達(dá)式簡(jiǎn)單應(yīng)用,在之前幾篇文章中已經(jīng)深入學(xué)習(xí)了java正則表達(dá)式基礎(chǔ)知識(shí),本文對(duì)java正則表達(dá)式應(yīng)用進(jìn)行研究,感興趣的小伙伴們可以參考一下
    2015-12-12
  • 基于Java HttpClient和Htmlparser實(shí)現(xiàn)網(wǎng)絡(luò)爬蟲(chóng)代碼

    基于Java HttpClient和Htmlparser實(shí)現(xiàn)網(wǎng)絡(luò)爬蟲(chóng)代碼

    這篇文章主要介紹了基于Java HttpClient和Htmlparser實(shí)現(xiàn)網(wǎng)絡(luò)爬蟲(chóng)代碼的相關(guān)資料,需要的朋友可以參考下
    2015-12-12

最新評(píng)論