小编Tom*_*Tom的帖子

点燃服务器模式与客户端模式

Ignite有两种模式,一种是服务器模式,另一种是客户端模式,我正在阅读https://apacheignite.readme.io/docs/clients-vs-servers,但是对这两种模式没有很好的理解。

我认为有两个用例:

  1. 如果将Ignite用作Java应用程序中的嵌入式服务器,则Ignite应该处于服务器模式,即Ignite应该以

    Ignite ignite = Ignition.start(configFile)

  2. 如果我设置了作为独立进程运行的Ignite群集。然后在我的Java代码中,我应该在客户端模式下启动Ignite,以便客户端模式Ignite可以连接到Ignite群集,并CRUD驻留在ignite群集中的缓存数据?

    Ignition.setClientMode(true);

    Ignite ignite = Ignition.start(configFile)

ignite

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

关于R管道工的基本问题

我是R管道工的新手,这是一个REST服务器,可以将R函数公开为其余的API.

我会问以下问题:

  1. R管道服务器是否足够强大,可以在生产环境中采用?
  2. 该函数,作为rest api公开,如果该函数执行复杂且耗时的逻辑,如何设置时间以保持连接活动?
  3. R管道工支持多少个并发请求?

r plumber

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

如果某个任务失败,是否会重新启动整个作业

我的工作有状态操作员并且还启用了检查点。staful 操作员的任务之一由于某种原因失败,已重新启动并恢复检查点状态。

我想问以下哪一个是重启行为:

  1. 仅重新启动并恢复失败的任务
  2. 所有操作员(包含失败的任务)的任务都将重新启动并恢复
  3. 整个作业重新启动并恢复

apache-flink

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

Scala反射API Type.dealias有什么作用?

我有一个简单的代码,

case class Person(name: String, age:Int)
import scala.reflect.runtime.universe._
val t1 = typeOf[Person]
val t2 = t1.dealias
println(t1 == t2)
Run Code Online (Sandbox Code Playgroud)

它输出为true,所以我想问一下Type.dealias的用途是什么?我什么时候应该使用它?一些代码示例会有所帮助

我之所以这样问,是因为当我阅读spark代码时ScalaReflection,它几乎总是dealias在使用类型之前使用

scala scala-reflect

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

了解 spark.yarn.executor.memoryOverhead

当我在纱线上运行 spark 应用程序时,驱动程序和执行程序内存设置为 --driver-memory 4G --executor-memory 2G

然后当我运行应用程序时,会抛出一个异常,抱怨说 Container killed by YARN for exceeding memory limits. 2.5 GB of 2.5 GB physical memory used. Consider boosting spark.yarn.executor.memoryOverhead.

这个 2.5 GB 在这里是什么意思?(开销内存、执行程序内存或开销+执行程序内存?)我这么问是因为当我将内存设置更改为:

--driver-memory 4G --executor-memory 4G --conf --driver-memory 4G --conf spark.yarn.executor.memoryOverhead=2048,然后异常消失。

我想问一下,虽然我把开销内存提升到了2G,但它仍然在2.5G以下,为什么现在可以工作了?

apache-spark

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

2020-02-29 减去一年导致错误 ORA-01839:指定的月份日期无效

我有一个简单的查询:

select to_date('2020-02-29', 'yyyy-mm-dd') - interval '1' year from dual
Run Code Online (Sandbox Code Playgroud)

我认为结果应该是2019-02-28,但 oracle 抛出错误为:

错误报告 -
ORA-01839: 指定月份的日期无效

sql oracle

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

Clickhouse二级索引和MySQL普通索引类似吗?

我对何时使用二级索引有点困惑。我有以下代码脚本来定义 MergeTree 表,该表有十亿行。

create table t_mt(
 id UInt8,
 name String,
 job String,
 birthday Date,
 salary UINT8

) engine = MergeTable
primary key id
order by (id)
Run Code Online (Sandbox Code Playgroud)

我将实时运行以下聚合查询:

select job, count(1), avg(salary) 
from t_mt 
group by job 
where salary > 20000
Run Code Online (Sandbox Code Playgroud)

在上面的查询中,我使用了条件过滤器:salary > 20000和分组依据job。我想问在列上定义二级索引是否是一个好习惯salary

我在这里要问的基本问题是我是否可以将Clickhouse二级索引视为MySQL普通索引。也就是说,如果我想按某个列进行过滤,那么我可以在此列上创建(辅助)索引以加快查询速度。

clickhouse

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

在这种情况下玩json看起来效果不佳

我有以下代码与play json一起使用

import play.api.libs.json.Json

trait A {
  def x: Option[Int]

  def y: Option[String]
}

case class A1(x: Option[Int] = Some(1), y: Option[String]) extends A

object PlayJsonBug {
  def main(args: Array[String]): Unit = {
    implicit val A1Reader = Json.reads[A1]
    implicit val A1Writer = Json.writes[A1]
    val str = """{"y":"xyz"}"""
    val a: A1 = Json.fromJson[A1](Json.parse(str)).get
    println(a)
  }


}
Run Code Online (Sandbox Code Playgroud)

情况下类A1具有默认值xSome (1).当我解析时{"y":"xyz"},结果是A1(None,Some(xyz)),我认为应该在这里使用默认值,即tis,结果应该是A1(Some(1),Some(xyz))

这是一个错误吗?或者我如何解决这个问题

scala playframework playframework-2.0

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

如何有效使用JedisCluster

我是 Redis 新手,我正在使用 Redis Java 客户端来处理 Redis 集群。

我有以下代码:

public class HelloRedisCluster {
    public static void main(String[] args) {
        Set<HostAndPort> nodes = new HashSet<HostAndPort>();
        nodes.add(new HostAndPort("127.0.0.1", 6001));
        nodes.add(new HostAndPort("127.0.0.1", 6002));
        JedisPoolConfig config = new JedisPoolConfig();
        config.setMaxTotal(10000);
        config.setMaxIdle(500);

        JedisCluster cluster = new JedisCluster(nodes);
        cluster.set("abc", "123");
        System.out.println(cluster.get("abc"));
        cluster.close();
    }
}
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,它只是打开集群,使用 Redis 设置/获取,然后关闭集群。

如果代码作为服务运行(例如在Servlet中),那么它将频繁地打开和关闭集群,这会导致性能不佳。

请问如何有效使用JedisCluster?

谢谢!

redis

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

jackson @JsonGetter 和 @JsonSetter 如何工作

我正在使用 jackson 2.10.0 ( https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core/2.10.0 ),以下是一个简单的测试用例

Person类定义如下,对于setter,我使用了@JsonSetter注解,而没有使用@JsonGetter作为getter,

import com.fasterxml.jackson.annotation.JsonProperty;

public class Person {
    private String firstName;
    private String lastName;

    public String getFirstName() {
        return firstName;
    }

    @JsonSetter("first_name")
    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return lastName;
    }

    @JsonSetter("last_name")
    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

}
Run Code Online (Sandbox Code Playgroud)

然后,我创建一个 Person 对象,并将其序列化为字符串,

import com.fasterxml.jackson.databind.ObjectMapper;


public class Person3Test2 {
    public static void main(String[] args) throws Exception {
        Person p = new Person();
        p.setFirstName("abc");
        p.setLastName("def");
        String str …
Run Code Online (Sandbox Code Playgroud)

java jackson jackson2 jackson-databind

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