- 博客(576)
- 资源 (102)
- 收藏
- 关注
原创 Shell 编程技巧:从URL、文件路径截取文件名或文件夹名
从URL、文件路径截取文件名或文件夹名是一项很常见的操作,常规思路是操作字符串甚至是正则表达式来截取需要的部分,但实际上,作为一项非常基础和常见的操作,shell提供了一个很好的命令行工具:basename 来简化这项操作。以下就是一份示例
2023-08-29 17:47:54 831
原创 为什么分配给Spark的Executor数量和Cores与请求值不符?
作为的姊妹篇,我们再来看另外一种更“离奇”的情况,这种情况下,Spark UI上显示的Executor数量和每个Executor占用的核数与请求值完全对应不上。如果再仔细观察一下可以发现如下规律:实际分配的Executor数量往往比申请的数量少,单个Executor的合数一般比申请的值大,但是:总的分配的核数与申请的数量()是可以对齐的。特别说明的是:本文描述的情况排除了集群不足和EMR 6.11),OSS Spark没有此问题。接下来,我们先看一下测试的情况。
2023-08-28 11:43:10 471
原创 为什么 Spark UI 上显示的 Executor Cores 与 Yarn 上的 vCore 数量不符?
你可能会在自己的集群上观察到:Spark UI 上显示的 Executor Cores 与 Yarn 上的 vCore 数量是不符的,本文将会给出详细解释。本文和《为什么我的集群一个 Spark Executor / Yarn Container 只有一个vCore?》一文有比较密切的关系,建议先阅读一下此文,本文可以看作是这篇文章的“补充”,因为原文只讨论了Yarn上的情况,并没有Spark UI和本地实际资源分配的讨论和验证!
2023-08-24 11:46:22 398
原创 Hive/Spark 整库导出/导入脚本
1. 整库导出为一个SQL文件database="<your-database-name>"cat << EOF > $database.sqldrop database if exists $database cascade;create database if not exists $database;use $database;EOFfor table in $(beeline -n hadoop -u jdbc:hive2:// --showHeade
2023-08-21 14:07:22 574
原创 Jupyter 报 Connection Reset 错误:Bad address (C:\projects\libzmq\src\epoll.cpp:100)
(参考:https://github.com/zeromq/pyzmq/issues/1505),但是在复杂的依赖状况下,这种方法可能改起来会很麻烦。出现这个问题可能和你本地使用了某种VPN软件有关,解决这个问题有两种说法,一种是降低 pyzmq 版本至。经测试,上述方法有效!
2023-08-21 13:45:28 659
原创 TPC-DS 测试是否支持 Glue Data Catalog?
在上一篇文章《在Hive/Spark上执行TPC-DS基准测试 (PARQUET格式)》中,我们详细介绍了具体的操作方法,当时的集群使用的是Hive Metastore,所有操作均可成功执行。当集群启用 Glue Data Catalog 时,在执行add_constraints.sql时会报错:UnsupportedOperationException: addPrimaryKey is not supported
2023-08-19 19:53:23 569
原创 为什么我的 Spark Executor / Yarn Container 只有一个vCore?
在很多集群里,在关闭了Spark的DynamicAllocation的前提下(避免自动申请空闲资源,干扰测试结果),都会观察到:提交Spark作业时,申请 1 个 driver + n 个 executor 会在Yarn上会对应创建 n+1 个 container,但是每个container只有一个vCore,通过--driver-cores和--executor-cores设定的vCore数都未奏效。有人会因此错误的认为Yarn上的一个vCore对应一个Spark的executor,这是非常错误的,正确的
2023-08-17 17:06:25 391
原创 在Hive/Spark上执行TPC-DS基准测试 (PARQUET格式)
在上一篇文章:《在Hive/Spark上运行执行TPC-DS基准测试 (ORC和TEXT格式)》中,我们介绍了如何使用 hive-testbench 在Hive/Spark上执行TPC-DS基准测试,同时也指出了该项目不支持parquet格式。如果我们想要生成parquet格式的测试数据,就需要使用其他工具了。本文选择使用另外一个开源项目,它和 hive-testbench 项目非常接近,操作方法也很类似,如果你熟悉
2023-08-16 08:45:00 725
原创 在Hive/Spark上运行执行TPC-DS基准测试 (ORC和TEXT格式)
目前,在Hive/Spark上运行TPC-DS Benchmark主要是通过早期由Hortonworks维护的一个项目:hive-testbench 来完成的。本文我们以该项目为基础介绍一下具体的操作步骤。不过,该项目仅支持生成ORC和TEXT格式的数据,如果需要Parquet格式,请参考此文《在Hive/Spark上执行TPC-DS基准测试 (Parquet格式)》。
2023-08-14 17:09:00 1080
原创 最佳实践:如何优雅地提交一个 Amazon EMR Serverless 作业?
自Amazon EMR推出Serverlesss形态以来,得益于开箱即用和零运维的优质特性,越来越多的EMR用户开始尝试EMR Serverless。在使用过程中,一个常被提及的问题是:我们应该如何在EMR Serverless上提交Spark/Hive作业?本文我们将分享一些这方面的最佳实践,帮助大家以一种更优雅的方式使用这项服务。
2023-08-08 09:15:00 1013
原创 在 spark-sql / spark-shell / hive / beeline 中粘贴 sql、程序脚本时的常见错误
一个很小的问题,简单记录一下。有时候我们会粘贴一段已经成功运行过的SQL或程序脚本,但是在spark-sql / spark-shell / hive / beeline 中执行时可能会报这样的错误:hive> CREATE EXTERNAL TABLE IF NOT EXISTS ORDERS( > Display all 641 possibilities? (y or n)
2023-08-02 11:43:52 1304
原创 编译 TPC-DS ( dsdgen / dsqgen ) 生成测试数据和查询语句
TPC所有Benchmark工具包的下载地址是https://www.tpc.org/tpc_documents_current_versions/current_specifications5.asp , TPC-DS当前最新版本是3.2.0,下载前需要填写真实的邮箱地址,因为下载连接是通过邮件发送的。将下载好的安装包上传到Linux服务器,并解压安装包
2023-08-01 18:54:44 1577
原创 Hive/Spark/Yarn: User Not Found 错误和 Kerberos / AD / OpenLDAP 之间的关系与解释
有时候,当你向Spark或Hive提交作业时,可能会遇到User not found错误,类似的问题大多发生在启动了Kerberos的Hadoop集群上,或者集群集成了Windows AD或OpenLDAP后。本文,我们把这个问题梳理清楚并给出解决方法。
2023-07-31 10:24:47 1442
原创 HBase CDC ( WAL日志写入Kafka ) 方案和实操文档
本文记录HBase CDC ( WAL日志写入Kafka ) 方案的实操步骤,测试使用的方案和环境如下:创建HBase集群在MER 空置台上创建一个EMR集群,选择HBase一个App即可,S3路径使用上一步创建的桶。我们需要一个MSK集群,本文不赘述MSK集群的创建步骤,这个集群须无身份认证,使用PLAINTEXT传输,同时和EMR需能连通。将如下两个包上传至集群所有节点的/usr/lib/hbase/lib/文件下
2023-07-17 17:23:38 585
原创 Apache Hudi HoodieMultiTableDeltaStreamer 多表接入 CDC 数据测试报告和结论
首先,强调一下测试环境:本次测试是在AWS EMR Serverless EMR 6.10 和 6.11 两个版本上进行的,对应的Hudi版本是0.12.2和0.13.0,该测试的结论在同版本的开源Spark和Hudi上不一定成立,请知悉。其次,在同一测试环境下,单表的 CDC 数据接入已经测试完毕并发表在:《…》,多表接入的细节汇总在此文中。先说重要结论
2023-07-16 10:42:07 286
原创 Apache Hudi DeltaStreamer 接入CDC数据时如何完成 Kafka 的身份认证?
题目有些拗口,简短截说,我们对于Apache Hudi DeltaStreamer在接入CDC数据时,对于其如何通过 Kafka 的身份认证,做了一系列测试和研究,有如下明确结论:
2023-07-14 17:58:17 491
原创 关于AWS MSK Connector Execution Role的解释
尽管在创建AWS MSK Connector时,Execution Role是一个必填项,就像下面这样:并且在官方文档中给出的Execution Role样例中也往往都会配置针对某一个MSK集群的操作权限。这会给人带来一个误解,那就是这会让人误以为:MSK Connector必须要配置针对某一个MSK集群
2023-07-14 16:47:48 1382
原创 AWS MSK Connector 报错 Register schema operation failed while writing to the Kafka store【已解决】
问题描述:AWS MSK Connector 使用了Confluent Schema Registry, 消息格式为Avro, 在启动Connector 时日志中报错:[Worker-0cb4b7ad6e5f2ce25] Caused by: org.apache.kafka.connect.errors.DataException: Failed to serialize Avro data from topic osci.mysql-server-3
2023-07-14 14:57:22 364
原创 AWS MSK集群认证和加密传输的属性与配置
通常,身份认证和加密传输是两项不相关的安全配置,在Kafka/MSK上,身份认证和加密传输是有一些耦合关系的,重点是:对于MSK来说,当启用IAM, SASL/SCRAM以及TLS三种认证方式时,TLS加密传输是必须的!只有设置为Unauthenticated(无认证)时,TLS加密才是可选的,但如果不显示配置PLAINTEXT的话,默认也是启用TLS加密的。本文地址:https://laurence.blog.csdn.net/article/details/131696373,转载请注明出处!
2023-07-13 12:23:56 1724
原创 ERROR Uncaught exception in thread ‘kafka-admin-client-thread‘ OutOfMemoryError 解决方法
在使用Kafka Console Client连接Kafka集群时,可能会报如下错误:ERROR Uncaught exception in thread 'kafka-admin-client-thread | adminclient-1':(org.apache.kafka.common.utils.KafkaThread)java.lang.OutOfMemoryError: Java heap space 该错误的表面原因是Java堆内存不足,调整Kafka堆内存大小的方法是设置
2023-07-13 09:31:14 1093
原创 HoodieException: Timeout expired while fetching topic metadata 错误解决方法
该问题发生在提交Apache Hudi DeltaStreamer作业时,DeltaStreamer作业会读取Kafka中的CDC消息,并落地为一张Hudi表,这是DeltaStreamer的主要功能。从字面意义上分析,这个错误的原因是DeltaStreamer在连接Kafka时超时,故而无法读取topic,在排除了网络因素之后(一条用有的经验:在AWS上,排除网络防火墙因素的快速方法是将所在VPC的安全组短暂设为全开(仅供参考,须自行评估风险),测试通过就是网络问题了,后面精心配置一下安全组即可),问题锁
2023-07-11 18:10:05 945
原创 从本地目录和S3目录生成Classpath字符串的最佳实践
从一个目录生成Classpath字符串是一个非常常见的问题,在使用命令提交一个Java、Spark作业时会经常遇到。通常遇到的遇到情况是:将本地目录下的Jar文件拼接成一个Classpath字符串,这时,通常我们可以使用这样的命令
2023-07-10 17:57:31 280
原创 EMR磁盘挂载细节与解释
大多数情况下, 在使用了S3作为主要的存储服务后,我们在创建EMR集群时通常是不会再添加EBS卷的,但是作为一些用用的参考,我们还是记录一下这方面的情况,以备后查。首先,整个EMR集群,添加的卷会分别挂载到/mnt, /mnt1, /mnt2, …目录上,在配置HDFS的本地映射目录时,我们需要将所有挂载的目录配置上去,以便HDFS能利用到所有的磁盘空间。以下是/etc/hadoop/conf/hdfs-site.xml中的一份配置示例
2023-07-07 13:37:47 505
原创 jq判断对象中含有值为null或空字符串的字段
在jq中[]并不一定仅指数组,当对应的元素不是一个数组,而是一个Json对象(或嵌套对象)时,[]可以指代对象中的所有元素,类似于*这样的通配符当字段赋值是null时,例如:{“MskcPluginName”: null},使用jq读取出的值是值为“null”的字符串,而不是报错或返回空值,这会给脚本解析这个字段带来麻烦,如不做检查,就会把“null”当成了合法值去处理了,这就是下面代码中使用if进行一次检查的主要原因如果Json总是由Shell脚本生成的,其实不必使用
2023-07-01 20:34:28 964
原创 Multiple HTTP implementations were found on the classpath错误的解决方法
当我们的项目中集成了多个AWS相关Jar包时,有可能就会遇到这个错误:错误信息: There is an issue with the connector Code: InvalidInput.InvalidConnectorConfigurationMessage: The connector configuration is invalid. Message: Multiple HTTP implementations were found on the classpath.
2023-06-29 14:03:16 1308
原创 MSK Connect使用SecretsManager配置账号密码报:Unable to connect: Access denied for user ${xxx}@xxx
配置MSK Connect通过SecretsManager管理账号密码需要安装一个MSK Connect的config provider插件,项目地址是:https://github.com/aws-samples/msk-config-providers,如果你在配置后启动MSK Connect Connector时遇到如下错误:错误信息:There is an issue with the connector Code: InvalidInput.InvalidConnecto
2023-06-29 10:15:50 284
原创 配置Confluent Schema Registry使用IAM认证连通AWS MSK
Confluent Schema Registry在运行时需要连通Kafka集群进行一些必要的操作,例如Confluent Schema Registry会在Kafka上创建并使用一个名为_schemas的Topic。另一方面,AWS MSK推荐使用的认证方式是IAM,这是开源Kafka集群所不具有的特性。当我们需要将Confluent Schema Registry和AWS MSK结合起来一起使用时,就会遇到一个技术问题:如何配置Confluent Schema Registry使用IAM认证连通AWS
2023-06-24 19:27:48 903
原创 快速下载Jar包及其依赖Jar包的方法
有时候,我们需要获得某个Jar包及其依赖的所有Jar包,然后将它们的路径加入到某个应用程序的类路径中,以便应用程序可以使用这个Jar包。这里提供两种方式供大家参考:jar-download.com 是一个很实用的工具类网站,我们只需要提供需要的Jar包的maven pom配置,它就可以自动帮我们将目标Jar包及其所有依赖Jar打包供我们下载。我们以下载software.amazon.glue:schema-registry-serde:1.1.15这个Jar包及其依赖包为例,尽管
2023-05-25 09:00:00 3594 1
原创 制作带Systemd的CentoOS Docker镜像并在Docker/Kubernete中启动
有时候我们需要在Kubernetes中创建一个用于测试或调试网络环境的POD,一个纯净的CentOS镜像是比较好的选择。不过,默认的CentOS镜像没有开启systemd,有时候会造成一些不便,本文简述一下制作带Systemd的CentoOS Docker镜像。此外,由于CentOS已经不再更新,某些版本的CentOS(例如8)的Yum源也不在了,可能出现无法安装软件的问题。
2023-05-20 10:38:17 452
原创 免sudo执行docker命令
为什么执行Docker命令需要sudo? Docker的守护进行是绑定到一个Unix socket上的,位置是:/var/run/docker.sock,默认owner是root,也就是说:Docker的守护进行是以root用户身份运行的。所以执行很多docker命令都需root权限。免sudo执行docker命令从/var/run/docker.sock的文件属性上可以看到,除了owner: root有RW权限外,user group: docker也拥有同等的权限
2023-05-20 10:13:08 1295
原创 在已有VPC中创建EKS集群
1. 创建在master-vcp中2. 节点放在两上Public Subnet上,便于SSH登录维护3. Attach上默认安全组`sg-071f18562f41b5804`,打通各种常规的网络访问规则
2023-05-19 17:01:17 689
原创 可快速启动的带测试数据库的MySQL实例
debezium提供了一个非常好的带测试数据的MySQL镜像,可以通过Docker一键部署,是个不错的可复用资源:https://debezium.io/documentation/reference/1.0/tutorial.html#starting-mysql-database
2023-05-06 12:40:42 121
原创 Error: parsing SSH public key “~/.ssh/id_rsa.pub“: parsing key: ssh: no key found 解决方法
产生这一错误的原因是:~/.ssh/id_rsa.pub文件可能不是通过ssh-keygen生成的原始文件,而是通过别的工具导出的,最可能的情况就是通过。所以会出现解析错误。解决方法是: 使用ssh-keygen从私钥生成的公钥文件。
2023-05-06 12:28:29 523
原创 探索 Apache Hudi 核心概念(系列文章)
本文由本人撰写并首发于Apache Hudi公众号,共计四篇文章。本系列文章使用 Notebook 对 Apache Hudi 核心概念展开深入的探索和介绍,利用 Notebook 提供的统一环境和上下文,我们可以非常生动地观察到 Hudi 的运行机制,并深刻体会到其背后的控制原理,这也正是本系列文章的写作灵感:我们希望借助 Notebook“探索,发现,思考,领悟”的思维模式,带领大家开启一段 Hudi 核心概念的探索之旅。
2023-04-17 10:39:33 380 1
原创 DNS lookup for realm name failed, SRV record for LDAP / Kerberos does not exist for IP … 解决方法
在配置AWS AD Connector时,可能会遇到这样一个错误:Configuration issues detected: DNS lookup for realm name failed for IP: xxx.xxx.xxx.xxx, SRV record for LDAP does not exist for IP: xxx.xxx.xxx.xxx, SRV record for Kerberos does not exist for IP: xxx.xxx.xxx.xxx. Please v
2023-04-12 15:20:27 285
原创 移除Office 365快捷键
在Windows中使用`Alt+Shift+Ctrl+Win`会打开Office 365应用,禁用方法是:以管理员身份打开一个CMD窗口,执行如下命令执行后,重启explorer进程。在Windows中使用。
2023-04-07 10:59:50 2308 2
原创 SSH无法连接AWS EC2实例
如果你最近发现在密钥和网络配置均未改动的情况下,无法通过SSH登录新建的EC2实例,那么大概率是因为AWS新升级的Linux系统:Amazon Linux 2023 引起的。两种host key算法,然而,令人遗憾的时,多数SSH客户端并不支持这两种host key算法,所以会报上面的错误。目前,可以先使用Amazon Linux2来规避这一问题。Amazon Linux 2023禁用了原来默认的。host key算法,改为了。
2023-04-06 13:50:40 2370
Big_Data_SMACK.pdf
2016-10-14
The.Art.of.Multiprocessor.Programming.Revised.Reprint
2014-02-06
win7下硬盘安装Linux(Fedora17,CentOS 6.4,Ubuntu 12.10,LinuxMint 13 64-bit)
2013-08-16
Packtpub.Hadoop.MapReduce.Cookbook.Jan.2013
2013-03-04
OpenSSH for Windows
2013-02-06
Professional Website Performance.pdf
2013-02-04
Red.Gate.SQL.Toolbelt.v1.8.2.238.Incl.Keygen
2013-01-14
Araxis.Merge.Professional.v2012.4260.x64-BEAN
2012-12-27
Apress.Pro.SQL.Server.2012.Practices.Nov.2012
2012-12-24
Professional JavaScript for Web Developers, 3rd Edition 附书中代码
2012-09-19
Head.First.HTML.and.CSS.2nd.Edition.Aug.2012
2012-09-11
Packtpub.Spring.Security.3.May.2010
2012-09-10
Pro Apache Log4j Second Edition
2012-09-06
PowerDesigner16.1 crack keygen 破解文件
2012-06-21
SecureCRT.v6.7.3.292(含注册码和破解补丁),
2012-06-13
SecureCRT.v6.7.3.292.x64(含注册码和破解补丁)
2012-06-13
Apache Solr 3.1 Cookbook
2012-04-24
Lucene in Action 2nd Edition
2012-04-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人