- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在hadoop(CDH 5.5.1)上运行aws kinesis时遇到一个奇怪的错误。
我可以用这个简单的类重现错误:
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.services.kinesis.AmazonKinesisClient;
import org.apache.hadoop.conf.Configured;
import org.apache.hadoop.util.Tool;
import org.apache.hadoop.util.ToolRunner;
import org.joda.time.format.DateTimeFormat;
public class CollectJob extends Configured implements Tool {
public static void main(String[] args) throws Exception {
int exitCode = ToolRunner.run(new CollectJob(), args);
System.exit(exitCode);
}
@Override
public int run(String[] args) throws Exception {
System.out.println(DateTimeFormat.class);
System.out.println(DateTimeFormat.class.getProtectionDomain().getCodeSource().getLocation());
System.out.println(AmazonKinesisClient.class);
System.out.println(AmazonKinesisClient.class.getProtectionDomain().getCodeSource().getLocation());
AWSCredentials credentials = new BasicAWSCredentials("toto", "tata");
AmazonKinesisClient kinesisClient = new AmazonKinesisClient(credentials);
kinesisClient.setEndpoint("kinesis.eu-west-1.amazonaws.com");
return 0;
}
}
<?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>test</groupId>
<artifactId>event-collector</artifactId>
<version>1.0-SNAPSHOT</version>
<repositories>
<repository>
<id>cloudera-repo-releases</id>
<url>https://repository.cloudera.com/artifactory/repo/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.6.0-cdh5.5.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>
<version>2.6.0-mr1-cdh5.5.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk</artifactId>
<version>1.7.4</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.4</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ApacheLicenseResourceTransformer"/>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>reference.conf</resource>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
yarn jar event-collector-1.0-SNAPSHOT.jar CollectJob
class org.joda.time.format.DateTimeFormat
file:/tmp/hadoop-unjar3521528256461676644/
class com.amazonaws.services.kinesis.AmazonKinesisClient
file:/opt/cloudera/parcels/CDH-5.5.1-1.cdh5.5.1.p0.11/jars/aws-java-sdk-1.7.4.jar
Exception in thread "main" java.lang.NoClassDefFoundError: org/joda/time/format/DateTimeFormat
at com.amazonaws.auth.AWS4Signer.<clinit>(AWS4Signer.java:44)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at java.lang.Class.newInstance(Class.java:374)
at com.amazonaws.auth.SignerFactory.createSigner(SignerFactory.java:119)
at com.amazonaws.auth.SignerFactory.lookupAndCreateSigner(SignerFactory.java:105)
at com.amazonaws.auth.SignerFactory.getSigner(SignerFactory.java:78)
at com.amazonaws.AmazonWebServiceClient.computeSignerByServiceRegion(AmazonWebServiceClient.java:307)
at com.amazonaws.AmazonWebServiceClient.computeSignerByURI(AmazonWebServiceClient.java:280)
at com.amazonaws.AmazonWebServiceClient.setEndpoint(AmazonWebServiceClient.java:160)
at com.amazonaws.services.kinesis.AmazonKinesisClient.setEndpoint(AmazonKinesisClient.java:2102)
at com.amazonaws.services.kinesis.AmazonKinesisClient.init(AmazonKinesisClient.java:216)
at com.amazonaws.services.kinesis.AmazonKinesisClient.<init>(AmazonKinesisClient.java:139)
at com.amazonaws.services.kinesis.AmazonKinesisClient.<init>(AmazonKinesisClient.java:116)
at tivan.CollectJob.run(CollectJob.java:29)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84)
at tivan.CollectJob.main(CollectJob.java:15)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
Caused by: java.lang.ClassNotFoundException: org.joda.time.format.DateTimeFormat
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 26 more
@Override
public int run(String[] args) throws Exception {
//print DateTimeFormat class infos
System.out.println(DateTimeFormat.class);
System.out.println(DateTimeFormat.class.getProtectionDomain().getCodeSource().getLocation());
//print AWS4Signer class infos
System.out.println(AWS4Signer.class);
System.out.println(AWS4Signer.class.getProtectionDomain().getCodeSource().getLocation());
//test joda time class (copy-paste from AWS4Signer source code)
DateTimeFormatter dateFormatter = DateTimeFormat.forPattern("yyyyMMdd").withZoneUTC();
System.out.println(dateFormatter);
//create AWS4Signer instance -> ClassNotFound on DateTimeFormat !!!
AWS4Signer signer = new AWS4Signer();
System.out.println(signer);
return 0;
}
最佳答案
您可以为pom.xml尝试一下吗:
<?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>test</groupId>
<artifactId>event-collector</artifactId>
<version>1.0-SNAPSHOT</version>
<repositories>
<repository>
<id>cloudera-repo-releases</id>
<url>https://repository.cloudera.com/artifactory/repo/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.6.0-cdh5.5.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>
<version>2.6.0-mr1-cdh5.5.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk</artifactId>
<version>1.7.4</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.4</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
关于java - NoClassDefFoundError Joda DateTimeFormat在hadoop cloudera上使用aws-kinesis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43496384/
我有一个带有 2 个分片的 kinesis 流,如下所示: { "StreamDescription": { "StreamStatus": "ACTIVE",
我们可以从单个 Kinesis Firehose 获得多个目的地吗?我看到了这张图片 由此看来,可以从单个 Firehose 添加 s3、红移和 Elasticsearch 。我正是想这样做。 但是当
我正在尝试在流级别收集 Kinesis 的指标,更具体地说,我想获得工作进程/消费者进程在流级别落后的计数,我不关心分片级别的滞后.我在 AWS 文档上找到了一个计算消耗滞后的示例,但它计算的是滞后时
是否可以定义一个具有滑动间隔的窗口?例如。我需要每 10 秒计算过去 30 秒的总和吗? Kinesis Analytics SQL 是否支持此类具有重叠的滑动窗口? 最佳答案 我认为跳窗代表你的需求
我想将来自 AWS Kinesis 流的消息处理延迟一小时。我已将 KCL 使用者配置为每四分钟读取一批记录,检查每条记录的时间戳,并在任何记录不到一小时的情况下停止处理该批处理,没有检查点。我希望同
将分片拆分为 2 个子分片时,父分片将关闭。当发生这种情况时,期望记录处理器(此处使用 KCL)将检查点,如以下 KCL 源代码所示: try { recordProc
在生产者-消费者 Web 应用程序中,为 kinesis 流分片创建分区键的思考过程应该是什么。 假设,我有一个包含 16 个分片的 kinesis 流,我应该创建多少个分区键?它真的取决于分片的数量
有没有办法创建具有缓冲区限制的 Kinesis 使用者?赞 here : #Flush when buffer exceeds 100000 Amazon Kinesis records, 64 MB
他们似乎对我做同样的事情。任何人都可以向我解释其中的区别吗? 最佳答案 两者的高层次区别: 运动流 允许您生成和使用大量数据(日志、Web 数据等),其中 DynamoDB 流 是 DynamoDB
从文档中可以清楚地看出,当以 TRIM_HORIZON 作为迭代器类型启动 KCL 应用程序时,将从流的开头读取记录。文档还提到应用程序的状态是通过使用检查点在 DynamoDB 表中维护的。 但是我
我的问题 我有一个日志管道,其中使用 Filebeat 将日志写入文件并发送到 ElasticSearch。 .我想从 ElasticSearch 切换到 AWS Kinesis,我想知道为新输出配置
我正在尝试通过 Amazon Kinesis 抽取大量数据(每秒订购 10,000 个点)。 为了通过我的分片最大限度地提高每秒记录数,我想通过分片循环我的请求(我的应用程序逻辑不关心分片单个消息去哪
无法打开与monitoring.us-east-1.amazonaws.com:443的连接:连接到AWS kinesis时证书验证失败 public static KinesisProducer g
我正在将 Java API 用于 Kinesis Firehose,并在可能的情况下利用 putRecordBatch()。但是,在我的应用程序中,我偶尔只发送一条记录,无法等待更多记录或将其缓存在内
添加时aws-xray-recorder-sdk-aws-sdk-instrumentor KCL 提出 SegmentNotFoundException . 据我所知,这是因为 KCL 正在启动他们
我正在研究与移动分析相关的 AWS 服务,因为我们使用 AWS 作为我们的后端基础设施,现在想了解如何最好地利用 Pinpoint 和/或 Kinesis 以最终将事件存储在 S3 中以供以后分析。
Kinesis Firehose 以及 Kinesis Streams 用于根据 AWS 博客中提到的详细信息加载流数据。对于 Firehose,没有分片或维护的概念。在这种情况下,Kinesis F
Firehose 是完全托管的,而 Streams 是手动管理的。 如果其他人知道其他主要差异,请添加它们。我只是在学习。 谢谢.. 最佳答案 Amazon Kinesis Data Firehose
我正在做一个点击跟踪项目,我正在使用 Snowplow (开源)为此。我正在使用 Scala 扫雪机收集器来收集数据并将其路由到 Amazon Kinesis。但是,当我使用此配置启动它时: coll
我正在尝试发送 HTTP Post 请求以将记录放入 Amazon Kinesis Stream。有多种方法(Kinesis 客户端、KPL、将 AWS 网关设置为 Kinesis 代理)。 我看到了
我是一名优秀的程序员,十分优秀!