我们长期运行EMR集群,我们提交Spark作业.我看到随着时间的推移,HDFS会填满Spark应用程序日志,这有时会导致主机不健康,因为EMR/Yarn(?)会查看.
运行hadoop fs -R -h /节目[1]清楚地显示没有删除任何应用程序日志.
我们已成立了spark.history.fs.cleaner.enabled以true(验证了这种星火UI)和在提到曾希望其他的缺省值类似吸尘器的时间间隔(1天)和清洁年龄上限(7D):http://spark.apache.org/docs/latest /monitoring.html#spark-configuration-options将负责清理这些日志.但事实并非如此.
有任何想法吗?
[1]
-rwxrwx--- 2 hadoop spark 543.1 M 2017-01-11 13:13 /var/log/spark/apps/application_1484079613665_0001
-rwxrwx--- 2 hadoop spark 7.8 G 2017-01-17 10:51 /var/log/spark/apps/application_1484079613665_0002.inprogress
-rwxrwx--- 2 hadoop spark 1.4 G 2017-01-18 08:11 /var/log/spark/apps/application_1484079613665_0003
-rwxrwx--- 2 hadoop spark 2.9 G 2017-01-20 07:41 /var/log/spark/apps/application_1484079613665_0004
-rwxrwx--- 2 hadoop spark 125.9 M 2017-01-20 09:57 /var/log/spark/apps/application_1484079613665_0005
-rwxrwx--- 2 hadoop spark 4.4 G 2017-01-23 10:19 /var/log/spark/apps/application_1484079613665_0006
-rwxrwx--- 2 hadoop spark 6.6 M 2017-01-23 10:31 …Run Code Online (Sandbox Code Playgroud) 我有一个数据文件,列出了某个缓存系统的命中和未命中.以下是数据文件格式
时间命中未命中
1 12 2
2 34 8
3 67 13
...
要在GNUPlot中绘制时间与命中的2D图形,命令将为:
plot "data.dat" using 1:2 using lines
Run Code Online (Sandbox Code Playgroud)
现在我想绘制时间与命中率的关系图,为此我可以为第二列做一些计算,如:
plot "data.dat" using 1:2/ (2 + 3) using lines
Run Code Online (Sandbox Code Playgroud)
这里1,2,3表示列号.
任何对这些图形绘图的引用也将受到赞赏.
提前致谢.
我有一个使用一些自定义jar的maven项目[在任何存储库中都找不到].要将它们与Maven构建一起添加,我在maven中使用attach-artifact目标.以下是我的pom文件:
<?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>com.maximus</groupId>
<artifactId>adminbuild</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>adminbuild</name>
<build>
<sourceDirectory>src/main/java</sourceDirectory>
<testSourceDirectory>src/test/java</testSourceDirectory>
<outputDirectory>target</outputDirectory>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>attach-artifacts</id>
<phase>package</phase>
<goals>
<goal>attach-artifact</goal>
</goals>
<configuration>
<artifacts>
<artifact>
<file>${basedir}/../../resources/dependencies/java/customjar1.jar</file>
<type>jar</type>
</artifact>
<artifact>
<file>${basedir}/../../resources/dependencies/java/customjar2.jar</file>
<type>jar</type>
</artifact>
</artifacts>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Run Code Online (Sandbox Code Playgroud)
我使用这些jar [customjar1.jar,customjar2.jar]的项目依赖于上面的pom文件[adminbuild].
当我执行mvn clean install命令时,我收到以下错误:
[ERROR] Failed to execute goal org.codehaus.mojo:build-helper-maven-plugin:1.7:attach-artifact (attach-artifacts) on project adminbuild: The artifact with same type and classifier: jar:null is used more than once. -> …Run Code Online (Sandbox Code Playgroud) 为什么以下代码打印"Main"?
public class Main
{
public static void method()
{
System.out.println("Main");
}
public static void main(String[] args)
{
Main m = new SubMain();
m.method();
}
}
class SubMain extends Main
{
public static void method()
{
System.out.println("SubMain");
}
}
Run Code Online (Sandbox Code Playgroud)
在运行时,m指向一个实例Submain,因此它应该在概念上打印"SubMain".
我需要对电子邮件地址进行SHA256哈希处理,我需要将结果作为字符串.
我尝试了以下方法:
use Digest::SHA qw(sha256);
my $data = 'swaranga@gmail.com';
my $digest = sha256($data);
print $digest;
Run Code Online (Sandbox Code Playgroud)
但它打印的内容如下:
B/D6i1μû^Þ©Q;¢Þ
Run Code Online (Sandbox Code Playgroud)
我需要输出如下:
cbc41284e23c8c7ed98f589b6d6ebfd6
Run Code Online (Sandbox Code Playgroud)
上面的哈希是使用Apache DigestUtils的 SHA256生成器生成的.
我究竟做错了什么?我是perl的新手,所以如果它是愚蠢的借口.
谢谢.
我有一个自定义数据源,我想将数据加载到我的Spark集群中以执行一些计算.为此我发现我可能需要RDD为我的数据源实现一个新的.
我是一个完整的Scala noob,我希望我能RDD在Java中实现它.我环顾互联网,找不到任何资源.有什么指针吗?
我的数据在S3中,并在Dynamo中编入索引.例如,如果我想加载给定时间范围的数据,我首先需要查询Dynamo以查找相应时间范围的S3文件密钥,然后在Spark中加载它们.这些文件可能并不总是具有相同的S3路径前缀,因此sc.testFile("s3://directory_path/")不起作用.
我要寻找关于如何实现一些类似于指针HadoopRDD或JdbcRDD但在Java.类似于他们在这里所做的事:DynamoDBRDD.这个从Dynamo读取数据,我的自定义RDD将查询DynamoDB以获取S3文件密钥,然后从S3加载它们.
我有一个小程序,应该根据它的值对地图进行排序.这是我到目前为止:
public static <K, V extends Comparable< ? extends V>> Map<K, V>
sortByValues(final Map <K, V> mapToSort)
{
List<Map.Entry<K, V>> entries =
new ArrayList<Map.Entry<K, V>>(mapToSort.size());
entries.addAll(mapToSort.entrySet());
Collections.sort(entries, new Comparator<Map.Entry<K, V>>()
{
public int compare(
final Map.Entry<K, V> entry1,
final Map.Entry<K, V> entry2)
{
return entry1.getValue().compareTo(entry2.getValue());
}
});
Map<K, V> sortedMap = new LinkedHashMap<K, V>();
for (Map.Entry<K, V> entry : entries)
{
sortedMap.put(entry.getKey(), entry.getValue());
}
return sortedMap;
}
Run Code Online (Sandbox Code Playgroud)
我希望我的通用值V可以与V或者至少是V的子类的任何东西相比.
我得到代码片段的以下错误:
public static <K, V extends Comparable< ? extends V>> …Run Code Online (Sandbox Code Playgroud) 我有亲子关系:
@Entity
@Table(name = "user")
public final class User
{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer userID;
@Column(name = "username")
private String userName;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "admin")
private Set<News> news;
}
@Entity
@Table(name = "news")
public final class News
{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int newsID;
@ManyToOne(cascade = CascadeType.PERSIST)
@JoinColumn(name = "userID")
private User admin;
@Column(name = "newsText")
private String newsText;
@Column(name = "dateOfPost")
private Date dateOfPost;
}
Run Code Online (Sandbox Code Playgroud)
这User是父母,News是孩子.我有级联操作的原因是因为我希望News在删除/保留相应的时删除/保留所有对象User.此外,当我持久保存 …
我正在使用 Spring MVC 编写一个 Web 应用程序。我有一个看起来像这样的界面:
public interface SubscriptionService
{
public String getSubscriptionIDForUSer(String userID);
}
Run Code Online (Sandbox Code Playgroud)
在getSubscriptionIDForUser实际上使网络调用其他服务来获取用户的签约细节。我的业务逻辑在其逻辑中的多个位置调用此方法。因此,对于给定的 HTTP 请求,我可能会多次调用此方法。所以,我想缓存这个结果,这样就不会对同一个请求进行重复的网络调用。我查看了Spring 文档,但找不到有关如何为同一请求缓存此结果的参考。不用说,如果缓存是对相同userID.
我的要求如下:
对于一个 HTTP 请求,如果多次调用getSubscriptionIDForUser,则实际方法应该只执行一次。对于所有其他调用,应返回缓存的结果。
对于不同的 HTTP 请求,即使方法参数完全相同,我们也应该重新调用并忽略缓存命中(如果有的话)。
业务逻辑可能会从不同的线程并行执行其逻辑。因此对于同一个 HTTP 请求,有可能 Thread-1 当前正在进行getSubscriptionIDForUser方法调用,并且在方法返回之前,Thread-2 也尝试使用相同的参数调用相同的方法。如果是这样,则应使 Thread-2 等待从 Thread-1 发出的调用的返回,而不是进行另一次调用。一旦从 Thread-1 调用的方法返回,Thread-2 应该得到相同的返回值。
任何指针?
更新:我的 webapp 将部署到 VIP 后面的多个主机。我最重要的要求是请求级缓存。由于每个请求将由单个主机提供服务,因此我只需要在该主机中缓存服务调用的结果。具有相同用户 ID 的新请求不得从缓存中获取值。我已经浏览了文档,但找不到关于它是如何完成的参考。可能是我看错了地方?
我有一个现有的数据库.我需要从中生成Java中的模型类.是否有任何工具/库可以让我这样做.如果它可以将数据库中的实体关系模拟到模型类中,那将是非常有帮助的.
如果工具/库仅与一个数据库供应商一起工作,则可以接受.我将在那里创建一个数据库,然后生成模型.
提前致谢.
编辑:如果我设法生成模型,我可能会使用Hibernate作为ORM框架.