小编Swa*_*rma的帖子

清理Spark历史日志

我们长期运行EMR集群,我们提交Spark作业.我看到随着时间的推移,HDFS会填满Spark应用程序日志,这有时会导致主机不健康,因为EMR/Yarn(?)会查看.

运行hadoop fs -R -h /节目[1]清楚地显示没有删除任何应用程序日志.

我们已成立了spark.history.fs.cleaner.enabledtrue(验证了这种星火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)

apache-spark

13
推荐指数
1
解决办法
7788
查看次数

计算后绘制GNUPlot图

我有一个数据文件,列出了某个缓存系统的命中和未命中.以下是数据文件格式

时间命中未命中
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表示列号.

任何对这些图形绘图的引用也将受到赞赏.

提前致谢.

gnuplot

12
推荐指数
2
解决办法
1万
查看次数

Maven:附加多个工件

我有一个使用一些自定义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)

java build maven-3

11
推荐指数
1
解决办法
2万
查看次数

静态方法中的继承

为什么以下代码打印"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".

java inheritance static-methods

10
推荐指数
2
解决办法
1万
查看次数

在perl中使用SHA256消化

我需要对电子邮件地址进行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的新手,所以如果它是愚蠢的借口.

谢谢.

perl hash md5 sha sha256

10
推荐指数
2
解决办法
2万
查看次数

在Java中实现自定义Spark RDD

我有一个自定义数据源,我想将数据加载到我的Spark集群中以执行一些计算.为此我发现我可能需要RDD为我的数据源实现一个新的.

我是一个完整的Scala noob,我希望我能RDD在Java中实现它.我环顾互联网,找不到任何资源.有什么指针吗?

我的数据在S3中,并在Dynamo中编入索引.例如,如果我想加载给定时间范围的数据,我首先需要查询Dynamo以查找相应时间范围的S3文件密钥,然后在Spark中加载它们.这些文件可能并不总是具有相同的S3路径前缀,因此sc.testFile("s3://directory_path/")不起作用.

我要寻找关于如何实现一些类似于指针HadoopRDDJdbcRDD但在Java.类似于他们在这里所做的事:DynamoDBRDD.这个从Dynamo读取数据,我的自定义RDD将查询DynamoDB以获取S3文件密钥,然后从S3加载它们.

bigdata apache-spark

10
推荐指数
2
解决办法
6024
查看次数

在值上对映射进行排序的通用方法

我有一个小程序,应该根据它的值对地图进行排序.这是我到目前为止:

    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)

java generics

8
推荐指数
1
解决办法
2176
查看次数

休眠:在保存Child之前自动保存Parent

我有亲子关系:

@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.此外,当我持久保存 …

java hibernate

8
推荐指数
1
解决办法
1万
查看次数

给定请求的 Spring 缓存

我正在使用 Spring MVC 编写一个 Web 应用程序。我有一个看起来像这样的界面:

public interface SubscriptionService
{
    public String getSubscriptionIDForUSer(String userID);
}
Run Code Online (Sandbox Code Playgroud)

getSubscriptionIDForUser实际上使网络调用其他服务来获取用户的签约细节。我的业务逻辑在其逻辑中的多个位置调用此方法。因此,对于给定的 HTTP 请求,我可能会多次调用此方法。所以,我想缓存这个结果,这样就不会对同一个请求进行重复的网络调用。我查看了Spring 文档,但找不到有关如何为同一请求缓存此结果的参考。不用说,如果缓存是对相同userID.

我的要求如下:

  1. 对于一个 HTTP 请求,如果多次调用getSubscriptionIDForUser,则实际方法应该只执行一次。对于所有其他调用,应返回缓存的结果。

  2. 对于不同的 HTTP 请求,即使方法参数完全相同,我们也应该重新调用并忽略缓存命中(如果有的话)。

  3. 业务逻辑可能会从不同的线程并行执行其逻辑。因此对于同一个 HTTP 请求,有可能 Thread-1 当前正在进行getSubscriptionIDForUser方法调用,并且在方法返回之前,Thread-2 也尝试使用相同的参数调用相同的方法。如果是这样,则应使 Thread-2 等待从 Thread-1 发出的调用的返回,而不是进行另一次调用。一旦从 Thread-1 调用的方法返回,Thread-2 应该得到相同的返回值。

任何指针?

更新:我的 webapp 将部署到 VIP 后面的多个主机。我最重要的要求是请求级缓存。由于每个请求将由单个主机提供服务,因此我只需要在该主机中缓存服务调用的结果。具有相同用户 ID 的新请求不得从缓存中获取值。我已经浏览了文档,但找不到关于它是如何完成的参考。可能是我看错了地方?

java spring caching spring-mvc

8
推荐指数
3
解决办法
1万
查看次数

如何从数据库生成模型

我有一个现有的数据库.我需要从中生成Java中的模型类.是否有任何工具/库可以让我这样做.如果它可以将数据库中的实体关系模拟到模型类中,那将是非常有帮助的.

如果工具/库仅与一个数据库供应商一起工作,则可以接受.我将在那里创建一个数据库,然后生成模型.

提前致谢.

编辑:如果我设法生成模型,我可能会使用Hibernate作为ORM框架.

java database hibernate

7
推荐指数
2
解决办法
1万
查看次数