首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在对SnappyData运行JUnit时找不到Jetty的GzipHandler类

在对SnappyData运行JUnit时找不到Jetty的GzipHandler类
EN

Stack Overflow用户
提问于 2016-08-05 21:27:10
回答 1查看 182关注 0票数 1

SnappyData v.0-5

我的目标是运行一个snappydata驱动程序来连接到远程服务器中的SnappyData。为此,我编写了一个Junit。然而,当我运行它时,我得到了一个错误,SparkContext是实例化的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
**java.lang.NoClassDefFoundError: org/eclipse/jetty/server/handler/GzipHandler**
    at org.apache.spark.ui.JettyUtils$$anonfun$4.apply(JettyUtils.scala:235)
    at org.apache.spark.ui.JettyUtils$$anonfun$4.apply(JettyUtils.scala:234)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
    at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)
    at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
    at scala.collection.AbstractTraversable.map(Traversable.scala:105)
    at org.apache.spark.ui.JettyUtils$.startJettyServer(JettyUtils.scala:234)
    at org.apache.spark.ui.WebUI.bind(WebUI.scala:136)
    at org.apache.spark.SparkContext$$anonfun$13.apply(SparkContext.scala:499)
    at org.apache.spark.SparkContext$$anonfun$13.apply(SparkContext.scala:499)
    at scala.Option.foreach(Option.scala:236)
    at org.apache.spark.SparkContext.<init>(SparkContext.scala:499)

我的pom.xml依赖项是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 <dependency>
        <groupId>io.snappydata</groupId>
        <artifactId>snappy-core_2.10</artifactId>
        <version>0.5</version>
    </dependency>
    <dependency>
        <groupId>io.snappydata</groupId>
        <artifactId>snappy-cluster_2.10</artifactId>
        <version>0.5</version>
 <dependency>


@Test
public void testInsertDataFromCsv() throws Exception {

    SparkConf conf = new SparkConf();
    conf.setMaster("spark://snappy-lead-host:8090");
    conf.setAppName("MySparkApp");

    SparkContext sc = new SparkContext(conf);
    SnappyContext snappyContext = new SnappyContext(sc);

    String fileResource = "data.csv";

    DataFrame dataFrame = snappyContext.read()
            .format("com.databricks.spark.csv").option("header", "true")
            .option("inferSchema", "true").load(fileResource);

    JavaRDD<Row> row = dataFrame.javaRDD();
    System.out.println(row.toDebugString());

    dataFrame.write().insertInto("example_table_col");

}
EN

回答 1

Stack Overflow用户

发布于 2016-08-06 15:51:29

SnappyData集群的一个主要特性是长期运行的Spark executors (与数据存储JVM本身相同)。该程序的目的似乎是连接到现有集群,但它将尝试启动一组新的executor JVM进行处理,这是Spark的正常工作方式。SnappyData lead不支持该模式,因为它被设计为重用现有数据节点来执行。

Spark中的这一限制是由于集群中只能有一个已经在SnappyData lead节点上运行的驱动程序,因此无法创建新的驱动程序(我们确实打算在未来的版本中消除此限制)。因此,像"spark://..."这样指向引导节点URL将不起作用。运行Spark作业需要这些可能的部署策略之一(除了使用JDBC/ODBC客户端直接提交SQL之外)。

注意:对于嵌入式模式,snappy-clustersnappy-core依赖项都是必需的,而对于其他两种模式,只需要添加snappy-core作为依赖项。

嵌入式模式执行:类似于JDBC/ODBC客户端,这里的执行发生在数据节点本身。这需要通过运行在活动引导节点上的作业服务器提交作业。程序必须实现SnappySQLJob/JavaSnappySQLJob并使用REST API提交它(要么是提供的snappy-job.sh脚本,要么是用于独立测试的this之类的东西)。详情请访问:http://snappydatainc.github.io/snappydata/jobs/

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public Object runJavaJob(SnappyContext snappyContext, Config config) {
    String fileResource = "data.csv";

    DataFrame dataFrame = snappyContext.read()
            .format("com.databricks.spark.csv").option("header", "true")
            .option("inferSchema", "true").load(fileResource);

    dataFrame.write().insertInto("example_table_col");

    // for debugging
    JavaRDD<Row> row = dataFrame.javaRDD();
    return row.toDebugString();
    // return Boolean.TRUE;
}

public JSparkJobValidation isValidJob(SnappyContext snappyContext,
                                      Config config) {
    return new JSparkJobValid();
}

本地拆分模式:在此模式下,执行集群是spark local主机,因此与snappydata集群分离。这不会带来良好的性能,因为对于大多数查询,它必须从数据节点获取大量数据,但对于少量数据的功能测试,它应该是最容易使用的。使用master作为local并将snappydata.store.locators属性设置为指向定位器(请参阅前面的http://snappydatainc.github.io/snappydata/connectingToCluster/和链接)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Test
public void testInsertDataFromCsv() throws Exception {

    SparkConf conf = new SparkConf();
    conf.setMaster("local[*]");
    conf.setAppName("MySparkApp");
    // below property can also be fetched with
    // io.snappydata.Property.Locators().apply()
    conf.set("snappydata.store.locators", "snappy-locator-host:10334");

    SparkContext sc = new SparkContext(conf);
    SnappyContext snappyContext = new SnappyContext(sc);

    String fileResource = "data.csv";

    DataFrame dataFrame = snappyContext.read()
            .format("com.databricks.spark.csv").option("header", "true")
            .option("inferSchema", "true").load(fileResource);

    JavaRDD<Row> row = dataFrame.javaRDD();
    System.out.println(row.toDebugString());

    dataFrame.write().insertInto("example_table_col");
}

拆分模式执行:最后,执行集群可以是一个普通的Spark/Yarn/Mesos集群,它将像普通数据存储一样与snappydata集群对话。这就是其他产品的spark连接器的工作方式(比如Cassandra连接器,其中Cassandra与Spark集群是分开的)。它可以在与snappydata集群相同的节点上运行,以获得最佳性能,并且snappydata将努力确保执行被路由,以便只从本地表数据获取或插入数据。使用snappydata发行版本身或Apache Spark 1.6.x中的start-all.sh启动一个单独的Spark集群(或Apache Spark docs中的Yarn/Mesos集群)。代码将与上面的本地拆分模式相同,其中master指向Spark/Yarn/Mesos master,而不是snappydata lead。有关更多详细信息,请参阅本地拆分模式中的链接。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38797985

复制
相关文章
java找不到jdk文件_java运行时系统找不到指定的文件
学习jni的时候,javac Helloworld.java 生成 Helloworld.class文件以后,调用javah Helloworld提示找不到类文件
全栈程序员站长
2022/11/08
2.7K0
VBA: 批量重命名文件夹和文件名称
文章背景: 在工作中,有时需要将一些文件名称修改成特定的名称,如果文件比较多的话,手动修改费时费力,下面通过VBA代码实现批量操作。
Exploring
2022/12/18
9.5K2
VBA:  批量重命名文件夹和文件名称
使用VBA重命名文件:5个代码示例
注意到Name命令需要文件路径和文件名吗?因此,该命令不仅可以重命名文件,还可以移动文件。例如,下面的代码将文件从D:\完美Excel\移动到D:\完美Excel\我的文章\,但文件名保持不变。
fanjy
2022/11/16
2.4K0
使用VBA重命名文件:5个代码示例
pycharm重命名文件名后运行不了_重命名找不到该项目
4、这个时候,我们再运行py文件,就会出现‘系统找不到指定的文件’,运行不了py
全栈程序员站长
2022/09/27
2.1K1
pycharm重命名文件名后运行不了_重命名找不到该项目
linux重命名文件名_linux 文件重命名
https://blog.csdn.net/weixin_33724570/article/details/91909917
全栈程序员站长
2022/09/30
4.1K0
linux重命名文件名_linux 文件重命名
java删除文件,重命名文件
在做项目时,遇到需要对文件做一些删除重命名等操作。基于java语言,保存代码段如下。
全栈程序员站长
2022/08/12
1.8K0
VBA实战技巧10: 复制文件到指定的文件夹并重命名
在工作表的列A中放置着一系列带有完整路径的文件名列表,想要将这些文件移至指定的文件夹并使用列B中相应的名称对其重命名,如下图1所示。
fanjy
2020/12/18
8.5K0
VBA实战技巧10: 复制文件到指定的文件夹并重命名
linux批量文件重命名命令_shell重命名文件指令
hello_10_2016-03-17.log hello_4_2016-03-17.log hello_8_2016-03-17.log
全栈程序员站长
2022/10/02
10.7K0
删除,重命名文件
重命名文件----rename #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> //修改文件名 void REname(char *arr) { int ret=rename("你好世界.txt", arr); if (ret == 0) { printf("修改成功"); } else { printf("修改失败"); } } void test01() { char buf[] = "你好,世界.txt"; REname(b
大忽悠爱学习
2021/03/02
1.7K0
删除,重命名文件
python3批量为文件重命名
为什么使用python批量重命名而没有使用shell,python对文字的处理更灵活,对于文件名中的空格不会出现报错。
py3study
2020/01/06
5820
linux中文件重命名_如何在Linux中重命名文件?
This tutorial will walk you through the simple steps to rename a file in Linux.
全栈程序员站长
2022/09/30
8.3K0
linux重命名文件和文件夹的区别_文件夹如何重命名
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/16
4.9K0
linux 重命名 文件夹_如何给文件批量重命名
上面的例子中,子模式 \d{4} 会捕捉4个连续的数字,捕捉的四个数字匹配模式对应 $1, 将会用于新的文件名。
全栈程序员站长
2022/09/30
7K0
linux 重命名 文件夹_如何给文件批量重命名
文件批量重命名
# 把当前文件夹的所有文件重命名为 WF .... # 把这个路径下的所有文件先查找到 -- 遍历所有文件 :有一个新的名字WF .. rename(旧,新) import os file_path = os.getcwd() list1 = os.listdir(file_path) print(list1) # 当前目录每个名字前面加'WF ' for name in list1: new_name = 'WF ' + name os.rename(name, new_na
汪凡
2018/05/29
1.5K0
EditRename文件重命名工具
一款文件重命名工具。通过在文本编辑器中直接编辑多个文件的文件名来重命名文件,非常灵活,堪比一些强大的重命名工具,但更加易用。
季春二九
2023/03/24
1.1K0
EditRename文件重命名工具
php案例 重命名文件
作者:陈业贵 华为云享专家 51cto(专家博主 明日之星 TOP红人) 阿里云专家博主 文章目录 代码 index.php 效果: 之前的 之后的 代码 index.php <?php //重命
贵哥的编程之路
2022/09/29
1.2K0
php案例 重命名文件
修复 GitLab 的 CI Runner 提示找不到 pwsh 执行文件
本文告诉大家如何修复使用 GitLab 的 Runner 做 CI 时提示 “pwsh”: executable file not found in %PATH% 错误
林德熙
2023/04/07
9620
linux 重命名文件和文件夹
其实在文本模式中要重命名文件或目录的话也是很简单的,我们只需要使用mv命令就可以了,比如说我们要将一个名为abc的文件重命名为1234就可以这样来写:mv abc 1234,但是要注意的是,如果当前目录下也有个1234的文件的话,我们的这个文件是会将它覆盖的
周小董
2019/03/25
4.7K0
VBA 批量重命名
If ActiveSheet .Range("c2") = "" Then
办公魔盒
2019/07/22
1.2K0
VBA 批量重命名
linux 文件重命名的命令是什么_linux移动文件并重命名
大家好,又见面了,我是你们的朋友全栈君。 就目前所知道的知识,有两种方法。 一、mv
全栈程序员站长
2022/09/30
5.6K0

相似问题

使用awk查找KB中的数字,然后更改并替换为GB并显示整行。

17

用regex查找并替换特定的数字。

21

Server :查找并替换字符串中多次出现的特定字符串部分

20

查找并替换字符串中的特定字符

34

如何在列表的字符串中查找数字并将其替换为特定的字符?

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文