Chai's Blog

Dig deeper

一张图了解Kerberos访问流程


一个“脚本执行夯死”问题的分析

问题现象: 使用一个脚本命令分发执行的脚本,在执行时出现夯死,无法继续进行 [root@yj01 cluster]# sh clustercmd.sh “ls -l /tmp” 问题分析 于是使用脚本调试的方式,执行结果如下: [root@yj01 cluster]# sh -x clustercmd.sh “ls -l /tmp” ...

Spark应用配置文件汇总

在大数据应用开发过程中,会频发遇到不同底层“HADOOP”平台的问题;在不同厂家的平台,不同的部署模式(安全/非安全)下,不同的集群隔离性的情况下(是否严格的防火墙限制)等条件下,应用的部署也是较为复杂的问题。 本文旨在梳理在不同的场景下部署一个Spark应用都需要哪些前置条件。主要针对隔离集群下的部署要求和配置文件进行分析,以期找出部署Spark应用的充分必要条件。 Spark应用需要...

HADOOP和ZOOKEEPER的kerberos认证

安全场景下的大数据集群的使用相比非安全的集群具有更高的复杂度。关于kerberos认证的讲解资料较多,本文不在赘述。仅针对HADOOP和ZOOKEEPER的的认证进行简单分析和对比并给出一些kerberos访问的一下Tip。 安全HADOOP的使用: 使用过安全hadoop的小伙伴都知道在安全集群中,如果需要对集群(hdfs,yarn,hive,hbase,spark thriftser...

为何Zookeeper的日志直接打印到控制台(console)

在开发hadoop应用时,为了便于开发,通常我们将日志打印到控制台来观察应用的运行情况。然而在使用到与zookeeper交互,在日志中经常性会打印一些info级别的日志在,即使设置了相关的日志级别,但依然可以打印出一下日志。下面对该现象的原因进行分析 Zookeeper客户端打印的日志情况如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 941 [main] IN...

SparkStreaming-VS-Structed-Streaming

导言 Spark在2.*版本后加入StructedStreaming模块,与流处理引擎Sparkstreaming一样,用于处理流数据。但二者又有许多不同之处。 Sparkstreaming首次引入在0.*版本,其核心思想是利用spark批处理框架,以microbatch(以一段时间的流作为一个batch)的方式,完成对流数据的处理。 StructedStreaming诞生于2.*版本...

Kafka-Produce流程

Kafka是一个消息订阅系统,通过接收消息顺序存储在本地磁盘,以便后端应用从kafka读取消息。本文基于Kafka 0.10.0版本对kafka的消息发送流程进行分析: 确认消息要发送到哪个分区: Record的partition确认方法: record的partition为非空且合法(0 =< partition <= topic.partitions.size)时,直接...

Structed-Streaming-页面job显示不连续原因分析

问题现象: 提交Structed Streaming应用,查看job页面信息,job编号显示不连续,如下图所示: 下文将对如下三个问题进行分别分析,以便完整解释job显示不连续: 是否真正产生了两个个job Job是如何产生的 为何页面只显示一个job 确实产生了两个job 记忆中,spark的job是顺序增加的。显示的时候少了一部分,于是再次查看spark提交jo...

yarn-cluster模式spark应用客户端与集群的通信端口

Spark应用在on yarn模式下运行,需要打开集群中的节点的端口以便完成应用的提交和运行。下面针对yarn-cluster模式下提交spark应用需要的集群端口进行测试。 非安全集群场景下 测试结论: 集群外节点yarn-clsuter模式下提交spark应用,需要连接ResourceManager完成app的提交,同时也需要上传部分文件到hdfs以供container使用。因此至...

StructedStreaming 流程分析

StructedStreaming 流程分析 导言 Spark在2.*版本后加入StructedStreaming模块,与流处理引擎Sparkstreaming一样,用于处理流数据。但二者又有许多不同之处。 Sparkstreaming首次引入在0.*版本,其核心思想是利用spark批处理框架,以microbatch(以一段时间的流作为一个batch)的方式,完成对流数据的处理。 St...