记录个问题。有用户想通过 Java 自行生成 Parquet 文件,不通过 Hive, Spark 等软件。
用户直接将 BigDecimal toByteArray(),然后用 Hive/Athena 都读不出来正确的数值。查看 Hive 的做法,它实际上是用 unscaledValue() 转换成 BigInt,再 toByteArray() 存入 Parquet 的。
继续阅读“Java BigDecimal 转换为 Parquet Decimal”
feichashao's Blog
记录个问题。有用户想通过 Java 自行生成 Parquet 文件,不通过 Hive, Spark 等软件。
用户直接将 BigDecimal toByteArray(),然后用 Hive/Athena 都读不出来正确的数值。查看 Hive 的做法,它实际上是用 unscaledValue() 转换成 BigInt,再 toByteArray() 存入 Parquet 的。
继续阅读“Java BigDecimal 转换为 Parquet Decimal”
在 EMRFS (EMR 5.25) 的配置文件 /usr/share/aws/emr/emrfs/conf/emrfs-default.xml 里看到 fs.s3.sleepTimeSeconds 这个参数。按照配置文件里的注释,这个参数控制 S3 调用失败重试的间隔,默认是10秒。
由于 EMRFS 闭源,想测试一下,验证这个参数是否有效。
继续阅读“如何模拟EMRFS处理S3返回503 Slow Down的情况”
公司的电脑是 Windows 10, 不给管理员权限,什么都干不了。 在不买新电脑的前提下,只好通过远程连接到 AWS 的 Ubuntu 桌面上工作。 记录一下安装方法。
- AWS
- Ubuntu 18.04
继续阅读“安装并使用 xrdp 连接 ubuntu 桌面”
- In hive-cli, rename table with command:
- 10 minutes later, it prompts error.
- However, before executing the "rename" command, the directory was not exist in S3, so we don't expect such an error.
继续阅读“hive failed renaming s3 table with error "New location for this table already exist"”
tldr: This is a bug in EMR 5.6. Upgrading to EMR 5.8 or above can solve the issue.
User reported that he sees 2000+ s3n-worker threads after job finished. He has to restart the hive-server2 service everyday to mitigate the issue.
The threads are repeating from s3n-worker-0 to s3n-worker-19. In another word, there are 100 * 20 s3n-worker threads.
AWS EMR 5.6
继续阅读“hive-server2 remains 2k+ s3n-worker threads after job finished”
- Run a spark job and save RDD checkpoint to S3.
- Spark job failed intermittently with below error:
继续阅读“Spark RDD checkpoint on S3 exits with exception intermittently”
AWS 的 SES (Simple Email Service) 可以提供邮件收发服务。对于邮件收发的反馈,如 Bounce message, 可以发送到 SNS (Simple Notification Service) 作进一步处理。SNS 可以指定某个邮件地址作为订阅者,将消息发送到该邮箱中。然而,SNS发出来的邮件是 JSON,可读性不好,例如:
怎么能让这个提醒邮件变得更加友好呢? SNS目前不支持自定义邮件格式。一个思路是,将 SNS 的消息发送到 Lambda 上,让 Lambda 处理好格式后,再发送到指定邮箱。即 SES -> SNS -> Lambda -> SES.
继续阅读“AWS SNS 自定义邮件格式”