首页 > 后端开发 > 正文

Spark 中用 Scala 和 java 开发有什么区别

2024-03-29 01:56:09 | 我爱编程网

Spark 中用 Scala 和 java 开发有什么区别相关内容,小编在这里做了整理,希望能对大家有所帮助,关于Spark 中用 Scala 和 java 开发有什么区别信息,一起来了解一下吧!

本文目录一览:

Spark 中用 Scala 和 java 开发有什么区别

Spark 中用 Scala 和 java 开发有什么区别

1,构建系统的选择,sbt更合适用来构建Scala工程,maven更合适用来构建Java工程

2,对于spark中的API来说,Java和Scala有差别,但差别并不大

3,如果用Scala开发spark原型程序,可以用spark-shell“打草稿”,或者直接使用spark-shell做交互式实时查询

4,用Scala代码量将减少甚至一个数量级,不过Scala的使用门槛较高

建议:使用Scala构建spark作业,因为spark本身为sbt所构建,同时使用Scala开发spark作业将有助于理解spark的实现机制

Spark 中用 Scala 和 java 开发有什么区别

spark远程debug之调试spark on yarn 程序

简介

由于spark有多种运行模式,远程调试的时候,虽然大体步骤相同,但是还是有小部分需要注意的地方,这里记录一下调试运行在spark on yarn模式下的程序。

环境准备

需要完好的Hadoop,spark集群,以便于提交spark on yarn程序。我这里是基于CDH的环境

步骤

1.随便写个spark程序,比如序列化一个集合,然后求和。然后使用maven打包,上传至集群。可以先提交运行一次,确保可以运行成功。

[root@kjtlxsvr5 bin]# ./spark-submit --class cn.spark.study.core.ParallelizeCollection --master yarn-cluster --num-executors 3 --executor-cores 2 --executor-memory 1G --driver-java-options "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8787" /home/spark-study-scala-0.0.1-SNAPSHOT-jar-with-dependencies.jar

现在有两个办法可以解决这个问题。

第一个办法是节点少的话,通过修改上面IDEA远程主机地址来一个一个试。

第二办法可以精确知道ApplicationMaster在哪里:

①通过CDH进入yarn的应用程序界面

②然后点击进入该程序的详细信息界面,如下图就可以知道Applicationmaster在哪台NodeManager上:

③可以去该节点查看进程,的确有一个ApplicationMaster,然后在IDEA中修改为该远程主机地址,开始debug程序看源码吧!

Spark 中用 Scala 和 java 开发有什么区别

如何在spark基础二次开发基于java swing的pc客户端

我爱编程网(https://www.52biancheng.com)小编还为大家带来如何在spark基础二次开发基于java swing的pc客户端的相关内容。

package org.jivesoftware.spark.ui;

import java.util.ArrayList;

import org.jivesoftware.spark.util.log.Log;

import org.jivesoftware.spark.util.ModelUtil;

import org.jivesoftware.resource.Res;

import org.jivesoftware.smack.Roster;

import org.jivesoftware.smack.RosterEntry;

import org.jivesoftware.smack.RosterGroup;

import org.jivesoftware.smack.XMPPException;

import org.jivesoftware.smack.packet.Presence;

import org.jivesoftware.smack.packet.RosterPacket;

import org.jivesoftware.smack.util.StringUtils;

import org.jivesoftware.spark.SparkManager;

import org.jivesoftware.spark.UserManager;

/**

* 处理所有订阅请求

* @author jian

*

*/

public class MySubscription {

private String jid;

//构造函数

public MySubscription(){

}

/**

* 调用

* @param jid 主键ID

*/

public void invoke(final String jid){

this.jid=jid;

final Roster roster=SparkManager.getConnection().getRoster();//返回好友册

//如果用户已经在好友当中,则不显示

RosterEntry entry=roster.getEntry(jid);//返回对应的用户

if(entry!=null&&entry.getType()==RosterPacket.ItemType.to){

Presence response=new Presence(Presence.Type.subscribed);

response.setTo(jid);

SparkManager.getConnection().sendPacket(response);

return;

}

UserManager userManager=SparkManager.getUserManager();

String username=userManager.getNickname(userManager.getFullJID(jid));

username=username==null?StringUtils.parseName(UserManager.unescapeJID(jid)):username;//给usernam赋值

boolean addEntry=addEntry(username);

GetGroupName();

if(addEntry){

Presence response=new Presence(Presence.Type.subscribed);

response.setTo(jid);

SparkManager.getConnection().sendPacket(response);

}我爱编程网

}

/**

* 同意添加好友

*/

private boolean addEntry(String username){

String errorMessage=Res.getString("title.error");

String groupName="Friends";

//获取该用户组是否存在

ContactGroup contactGroup=SparkManager.getWorkspace().getContactList().getContactGroup(groupName);

boolean isSharedGroup = contactGroup!=null&&contactGroup.isSharedGroup();

System.out.println("用户组存在?"+isSharedGroup);

if(isSharedGroup){

errorMessage=Res.getString("message.cannot.add.contact.to.shared.group");

}else if(!ModelUtil.hasLength(username)){

errorMessage=Res.getString("message.specify.contact.jid");

}else if(!ModelUtil.hasLength(groupName)){

errorMessage=Res.getString("message.specify.group");

}else if(ModelUtil.hasLength(username)&&ModelUtil.hasLength(groupName)&&!isSharedGroup){

System.out.println("添加好友");

System.out.println("直接输出Group组:"+groupName);

addEntity(jid, username, groupName);

return true;

}

return false;

}

/**

* 把新用户添加到好友名单

* @param jid 账号

* @param username 昵称

* @param groupName 组名

*/

private RosterEntry addEntity(String jid,String username,String groupName){

String[] groups={groupName};

System.out.println("开始添加了哦");

for(int i=0;i

System.out.println(groups[i]);

}

Roster roster=SparkManager.getConnection().getRoster();

RosterEntry userEntry=roster.getEntry(jid);

boolean isSubscribed=true;

if(userEntry!=null){

isSubscribed=userEntry.getGroups().size()==0;

}

if(isSubscribed){

try {

roster.createEntry(jid, username, new String[]{groupName});

} catch (XMPPException e) {

Log.error("不能添加新的好友"+jid,e);

}

return roster.getEntry(jid);

}

try {

RosterGroup rosterGroup=roster.getGroup(groupName);

if(rosterGroup==null){

rosterGroup=roster.createGroup(groupName);

}

if(userEntry==null){

roster.createEntry(jid, username, groups);

userEntry=roster.getEntry(jid);

}else {

userEntry.setName(username);

rosterGroup.addEntry(userEntry);

}

userEntry=roster.getEntry(jid);

} catch (XMPPException ex) {

Log.error(ex);

}

return userEntry;

}

private void GetGroupName(){

ArrayList list=new ArrayList();

for(ContactGroup group:SparkManager.getWorkspace().getContactList().getContactGroups()){

if(!group.isOfflineGroup()&&!"Unfiled".equalsIgnoreCase(group.getGroupName())&&!group.isSharedGroup()){

list.add(group.getGroupName());

System.out.println(group.getGroupName());

}

}

}

}

以上就是Spark 中用 Scala 和 java 开发有什么区别全部内容了,了解更多相关信息,关注我爱编程网。更多相关文章关注我爱编程网:www.52biancheng.com

免责声明:文章内容来自网络,如有侵权请及时联系删除。
与“Spark 中用 Scala 和 java 开发有什么区别”相关推荐
php后端函数开发 php前端开发和php后端开发的区别?
php后端函数开发 php前端开发和php后端开发的区别?

php是写后端还是前端的语言?php是前端还是后端php属于后端。php(全称php:HypertextPreprocessor,即“php:超文本预处理器”)是一种开源的通用计算机脚本语言,尤其适用于网络开发并可嵌入HTML中使用。后端。这里的前端是指的为访问者服务为目的的应用,后端是管理、运营、数据挖掘等非面向访问者的东西。PHP是属于后端开发,不过PHP除了开发后台功能

2025-01-24 21:47:07
PHP中static和final有什么区别
PHP中static和final有什么区别

PHP中static和final有什么区别static是静态变量,静态变量仅在局部函数域中存在,但当程序执行离开此作用域时,其值并不丢失。例如,你可以用来计算函数调用的累加次数。<?PHPfunctionTest(){static$w3sky=0;echo$w3sky;$w3sky++;}?>fainal是用于函数的,属于面向对象的用法,一

2024-08-29 18:50:42
php中$i++和++$i有什么区别
php中$i++和++$i有什么区别

php中$i++和++$i有什么区别$i++返回的是自增之前的值,++$i返回的则是自增后的值。如:vari=1;vara=i++;//a=1;此时i为2,但赋给a的是1varb=++i;//b=3phpi++怎么echo2位数不足补0比如010203直接上代码:<?php for($i=0;$i<=10;$i++){    //方案1:    //$

2024-12-05 13:08:46
pycharm和python有什么区别
pycharm和python有什么区别

pycharm和python有什么区别Python和pycharm是不一样的,二者有本质的区别。Python是一门计算机程序设计语言;而pycharm是一款集成开发环境,是用来辅助开发的,所以两者是不一样的。下载地址和安装的方式不同;python是一种基本编译环境,就像java和jar一样。pycharm是一种集成开发环境,为了能够让你快速编写代码,便于调试。Python

2024-02-29 23:39:22
编程图形化和python有什么区别 scratch和python有啥区别
编程图形化和python有什么区别 scratch和python有啥区别

图形化编程和python编程的区别1、区别如下:Scratch是图形化编程,使用卡通积木块堆叠完成编程,可以不熟悉键盘就能编程,好处是Scratch把所有底层细节都屏蔽掉了,让编写者专注于功能代码的开发,怎么写都不报错。2、python和scratch有以下3点区别(1)界面scratch对小孩子更友好一些,趣味好玩的特点,所以界面比较简单scratch积木块在Python中全部都要

2024-02-29 17:22:53
php和java区别是什么
php和java区别是什么

php和java区别是什么PHP和Java是两种非常不同的编程语言,它们在语法、面向对象编程、Web开发等方面都有明显的差异。首先,PHP是一种解释性脚本语言,主要用于Web开发,可以在服务器上直接执行。而Java是一种编译型语言,需要先编译成字节码,再由Java虚拟机(JVM)执行。其次,面向对象编程方面,PHP是一种面向对象的语言,但它的类和对象实现相对简单。而Java的面向对象

2024-08-09 08:38:37
PHP和HTML语言有什么区别
PHP和HTML语言有什么区别

PHP和HTML语言有什么区别简单的说,HTML是典型的静态网络编程用语,而PHP则是一种可实现动态的编程语言。简单举例:<?phpecho"<p>Orderprocessedat".date('H:i,jsFY')."</p>";?>在这段代码中,我们使用PHP语言中内置的函数date()来告诉客户其订单被处理的日期和时间。

2024-10-29 14:34:18
Java与C++程序在编译和运行上有什么区别?
Java与C++程序在编译和运行上有什么区别?

Java与C++程序在编译和运行上有什么区别?在语法层面上,C++与Java十分相似,Java语言的设计与C++有着很密切的联系。但却有着许多的不同,最大的不同,可以说是编译和运行了。高级语言写出来的代码,最终都会变为机器码,计算机才能识别。汇编与机器码最接近,C++与Java都会直接或间接编程汇编以后,再运行。C++经编译器(Unix下CC命令,Windows下CL命令)把

2024-06-09 08:18:12