众所周知,jvm类加载机制采用双亲委派机制。但在有些框架中,常常为了提供某种形式的“隔离和沙盒”,自定义一种称为ChildFirst的了类加载器,简单的说就是破坏了双亲委派,由自定义子类加载器优先加载类,而不是先...
Flink是目前最热门的分布式流/批处理框架,而Kubernetes是目前最热门的资源管理和调度平台。Flink支持在Kubernetes上采用Session模式或Application模式部署作业。基于实践经验,本文主要讨论在Kubernetes上部署Fl...
在理清SASL/GSSAPI/Kerberos文中,我们了解到,在java中可以通过Krb5LoginModule模块实现Kerberos登录,以及通过GSSAPI完成校验的基本流程;同时也明白java还定义了一个高层次接口SASL,抽象校验流程。校验流程并...
信息安全越来越重要,企业里面越来越多的开始重视信息安全。其中在java/大数据领域很容易遇到SASL/Kerberos这些概念。比如:hadoop,kafka等常见的大数据组件。本文试图理清楚这些概念之间的真正联系。
与REPL不同的是,Programmatic API提供了在一个“已经存在”的SparkContext上执行处理程序的机制。用户需要实现Job接口:
Kryo是一种对象序列化和反序列化工具。通信双方需要互相发送消息,livy选择了Kryo作为消息的编解码器,并在netty框架中实现编码和解码接口:
ReplDriver是真正最终运行的Driver程序对应的类(其基类是第三篇中提到的RSCDrvier)。在这一层,重点关注handle系列方法:
在前面的所有例子中,我们只是运行了livy官方给的两个例子。这篇我们要尝试运行一些有意义的代码。如没有特殊说明,以后所有的实验都是在yarn-cluster模式下运行的。我们打算尝试运行下面代码: {代码...} 这段代...
客户端创建session,LivyServer收到请求后启动一个RpcServer。RpcServer会顺序选择一个从10000~10010之间的可用端口启动监听,假设此时是10000。
上一篇的例子采用Livy默认的Local模式运行Spark任务。本篇我们尝试一下其他模式。因为修改配置文件需要重启,而每次重启服务都要设置SPARK_HOME和HADOOP_CONF_DIR比较麻烦。我们首先修改一下conf/livy-env.sh:
Livy是Apache的开源项目,目前仍然处于孵化阶段。它提供了一种通过restful接口执行交互式spark任务的机制。通过它可以进一步开发交互式的应用。当然,交互式spark应用其实有许多实现。本系列与大家一起对Livy做个...
getSettings方法需要返回一个Setting集合,es根据这个集合把elasticsearch.yml中的配置项通过构造函数传递给插件。Setting类是泛型的。例如:Setting<Boolean>表示bool类型的配置项。在nacos-elasticsearch...
Mesos是apache的开源项目,是使用C++开发的资源管理框架。假设我们的数据中心有众多的服务器,这些服务器要运行业务程序,业务程序随着业务规模的增加往往需要扩容,在运维层面会遇到的问题是,运维无法准确把握...
从这篇开始,以nacos-elasticsearch为例,一步步介绍如何开发插件。nacos-elasticsearch是一个自动将当前es节点注册到nacos注册中心的插件。环境基于maven,至少需要引用如下两个包 {代码...} 开发es插件,肯定是...
elasticsearch(简称es)是一款运用广泛的支持实时搜索的数据库。常用于全文检索、时序数据分析等领域。es本身基于模块设计,同时支持插件定制,当现有的功能和插件无法满足需求的时候,我们可以基于es的插件框架和...
根据资料显示,jdk版本必须为Java 8u131及以上 ,实测采用8u201没毛病: {代码...} mesos-slave isolation模式之前之所以不能限制jvm,是由于slave的默认isolation并不是cgroup,需要通过slave启动参数启用: {代...
spark的任务,在运行期间executor总是挂掉。刚开始觉得是数据量太大executor内存不够。但是估算了数据量,觉得不应该出现内存不够。于是,首先尝试通过jvisualvm观察executor的内存分布:
在采用log4j的kafka-appender收集spark任务运行日志时,发现提交到yarn上的任务始终ACCEPTED状态,无法进入RUNNING状态,并且会重试两次后超时。期初认为是yarn资源不足导致,但在确认yarn资源充裕的时候问题依旧...
对象一般在堆上分配,但JVM支持一种在栈上分配内存的机制。通过-XX:+DoEscapeAnalysis开启逃逸分析(默认开启),JVM会针对不会逃逸的对象分配在栈上。好处是,栈可以自动弹出,不需要垃圾回收参与处理这些对象。
scalatest是一个特别针对scala语言设计的单元测试框架,除了提供必要的基类和断言系统外,scalatest可以与IntelliJ IDEA和maven等IDE或构建工具集成。akka提供的测试框架就是在scalatest的基础上构建的,所以有必...
大数据spark/flink/hadoop/elasticsearch/kafka...