moustafaalaa commented on issue #5291:
URL: https://github.com/apache/hudi/issues/5291#issuecomment-1103299526
@zhedoubushishi it seems not working
```python
import sys
from pyspark.context import SparkContext
from pyspark.sql.session import SparkSession
from awsglue.context import GlueContext
from awsglue.job import Job
from awsglue.dynamicframe import DynamicFrame
from pyspark.sql.functions import col, to_timestamp,
monotonically_increasing_id, to_date, when,lit
from awsglue.utils import getResolvedOptions
from pyspark.sql.types import *
from datetime import datetime
import os
args = getResolvedOptions(sys.argv, ['JOB_NAME','curated_bucket'])
os.environ['HUDI_CONF_DIR'] =
's3://glue-development-bucket/scripts/hudi-conf/'
spark =
SparkSession.builder.config('spark.serializer','org.apache.spark.serializer.KryoSerializer')\
.config('className', 'org.apache.hudi') \
.config('spark.sql.hive.convertMetastoreParquet', 'false') \
.config('spark.sql.extensions',
'org.apache.spark.sql.hudi.HoodieSparkSessionExtension') \
.getOrCreate()
sc = spark.sparkContext
glueContext = GlueContext(sc)
job = Job(glueContext)
job.init(args['JOB_NAME'], args)
db_name = 'hudi_sql_dml_ddl_hive'
bucket_name = args['curated_bucket']
bucket_prefix = "data"
table_prefix = f"{bucket_prefix}/{db_name}"
table_base_location=f"s3://{bucket_name}/{table_prefix}"
table_name='hudi_tbl_partitioned'
s3_output_path = f"{table_base_location}/{table_name}"
spark.sql(f"CREATE DATABASE IF NOT EXISTS {db_name};")
spark.sql(f"use {db_name};")
spark.sql("show tables;").show()
query_create_tbl = f"""
create table if not exists {db_name}.{table_name} (
id bigint,
name string,
ts bigint,
dt string,
hh string
) using hudi
options (
hoodie.table.name = '{table_name}',
path = '{s3_output_path}',
hoodie.datasource.hive_sync.table = '{table_name}'
)
partitioned by (dt, hh);
"""
spark.sql(query_create_tbl)
print(f"""SHOW CREATE TABLE {table_name};""")
spark.sql(f"SHOW CREATE TABLE {table_name};").show(truncate=False)
print(f"""show partitions {table_name};""")
spark.sql(f"""show partitions {table_name};""").show(truncate=False)
#insert dynamic partition
print(f"""insert dynamic partition""")
print(f"""insert into {db_name}.{table_name} partition (dt, hh) select 1 as
product_id, 'a1' as product_name, 1000 as ts, '2021-12-09' as dt, '10' as
hh;""")
spark.sql(f"""insert into {db_name}.{table_name} partition (dt, hh) select 1
as product_id, 'a1' as product_name, 1000 as ts, '2021-12-09' as dt, '10' as
hh;""")
spark.sql(f"select * from {db_name}.{table_name};").show(truncate=False)
print("insert static partition")
spark.sql(f"""insert into {db_name}.{table_name} partition(dt =
'2021-12-09', hh='11') select 2, 'a2', 2000;""")
spark.sql(f"""insert into {db_name}.{table_name} partition(dt =
'2021-12-10', hh='11') select 3, 'a3', 3000;""")
spark.sql(f"""insert into {db_name}.{table_name} partition(dt =
'2021-12-10', hh='10') select 4, 'a4', 4000;""")
spark.sql(f"select * from {db_name}.{table_name};").show(truncate=False)
#show partition:
print(f"""show partitions {table_name};""")
spark.sql(f"""show partitions {table_name};""").show(truncate=False)
#drop partition:
print(f"""alter table {table_name} drop partition (dt='2021-12-09',
hh='10');""")
spark.sql(f"""alter table {table_name} drop partition (dt='2021-12-09',
hh='10');""")
print(f"""show partitions {table_name}; after alter""")
#show partition:
spark.sql(f"""show partitions {table_name};""").show(truncate=False)
spark.sql(f"select * from {db_name}.{table_name};").show(truncate=False)
```
hudi-defaults.conf
```properties
# Default system properties included when running Hudi jobs.
# This is useful for setting default environmental settings.
# Example:
hoodie.datasource.write.table.type MERGE_ON_READ
# commonConfig
className org.apache.hudi
hoodie.datasource.hive_sync.use_jdbc false
hoodie.datasource.write.precombine.field ts
hoodie.datasource.write.recordkey.field id
hoodie.consistency.check.enabled true
hoodie.datasource.hive_sync.database hudi_sql_dml_ddl_hive
hoodie.datasource.hive_sync.enable true
hoodie.metrics.on true
hoodie.metrics.reporter.type CLOUDWATCH
#partitionDataConfig
hoodie.datasource.hive_sync.partition_extractor_class
org.apache.hudi.hive.MultiPartKeysValueExtractor
hoodie.datasource.write.hive_style_partitioning true
hoodie.datasource.write.partitionpath.urlencode true
hoodie.datasource.hive_sync.partition_fields dt,hh
hoodie.datasource.write.partitionpath.field dt,hh
# incrementalConfig
hoodie.datasource.write.operation upsert
hoodie.cleaner.policy KEEP_LATEST_COMMITS
hoodie.cleaner.commits.retained 1
hoodie.insert.shuffle.parallelism 1
hoodie.upsert.shuffle.parallelism 1
hoodie.update.shuffle.parallelism 1
```
Full logs
```html
<html>
<head> Glue logs </head>
<body>
awsglue-todworkers-iad-prod-2d-0a589c0e.us-east-1.amazon.com Tue Mar 29
16:05:52 UTC 2022 gluetod
Preparing ...
Wed Apr 20 00:27:20 UTC 2022
/usr/bin/java -cp /tmp:/opt/amazon/conf:/opt/amazon/glue-manifest.jar
com.amazonaws.services.glue.PrepareLaunch --conf
spark.dynamicAllocation.enabled=true --conf spark.shuffle.service.enabled=true
--conf spark.dynamicAllocation.minExecutors=1 --conf
spark.dynamicAllocation.maxExecutors=4 --conf spark.executor.memory=10g --conf
spark.executor.cores=8 --conf spark.driver.memory=10g --conf
spark.default.parallelism=40 --conf spark.sql.shuffle.partitions=40 --conf
spark.network.timeout=600 --enable-glue-datacatalog true
--job-bookmark-option job-bookmark-enable --TempDir
s3://glue-development-bucket/temp/ --extra-jars
s3://glue-development-bucket/jars/glue3/hudi-utilities-bundle_2.12-0.10.1.jar,s3://glue-development-bucket/jars/glue3/hudi-spark3.1.1-bundle_2.12-0.10.1.jar,s3://glue-development-bucket/jars/glue3/calcite-core-1.10.0.jar,s3://glue-development-bucket/jars/glue3/datanucleus-core-4.1.17.jar
--class GlueApp --JOB_ID
j_b5ac6a0ebf4aaec1f512936c33608ce4cdd7601ac725d5e67710e
aefe1581c46 --curated_bucket hudi-upgrade --enable-metrics true
--spark-event-logs-path s3://glue-development-bucket/logs/ --JOB_RUN_ID
jr_d23ecbb5f94c3aa3926907fde84f202e5830a8d7676ade74c2cc7bf3522642df
--enable-continuous-cloudwatch-log true --scriptLocation
s3://glue-development-bucket/scripts/hudi-spark-sql-test.py --job-language
python --JOB_NAME hudi-spark-sql-test
1650414449874
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in
[jar:file:/opt/amazon/spark/jars/slf4j-log4j12-1.7.30.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in
[jar:file:/opt/amazon/lib/Log4j-slf4j-2.x.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in
[jar:file:/opt/amazon/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an
explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
INFO 2022-04-20 00:27:31,785 0
com.amazonaws.services.glue.PrepareLaunch [main]
glue.etl.telemetry.runtimeImproveFeature.jobInsights30,
jr_d23ecbb5f94c3aa3926907fde84f202e5830a8d7676ade74c2cc7bf3522642df
Glue analyzer rules
s3://aws-glue-jes-prod-us-east-1-assets/etl/analysis-rules/glue3/
GlueTelemetry: Current region us-east-1
GlueTelemetry: Glue Endpoint https://glue.us-east-1.amazonaws.com
GlueTelemetry: Prod env...false
GlueTelemetry: is disabled
Glue ETL Marketplace - Start ETL connector activation process...
Glue ETL Marketplace - no connections are attached to job
hudi-spark-sql-test, no need to download custom connector jar for it.
Glue ETL Marketplace - Retrieved no ETL connector jars, this may be due to
no marketplace/custom connection attached to the job or failure of downloading
them, please scroll back to the previous logs to find out the root cause.
Container setup continues.
Glue ETL Marketplace - ETL connector activation process finished, container
setup continues...
Launching ...
Wed Apr 20 00:27:36 UTC 2022
/usr/bin/java -cp /tmp:/opt/amazon/conf:/opt/amazon/glue-manifest.jar:/tmp/*
-Dlog4j.configuration=log4j -server -Xmx10g -XX:+UseG1GC
-XX:MaxHeapFreeRatio=70 -XX:InitiatingHeapOccupancyPercent=45
-XX:OnOutOfMemoryError=kill -9 %p -XX:+UseCompressedOops
-Djavax.net.ssl.trustStore=/opt/amazon/certs/ExternalAndAWSTrustStore.jks
-Djavax.net.ssl.trustStoreType=JKS -Djavax.net.ssl.trustStorePassword=amazon
-DRDS_ROOT_CERT_PATH=/opt/amazon/certs/rds-combined-ca-bundle.pem
-DREDSHIFT_ROOT_CERT_PATH=/opt/amazon/certs/redshift-ssl-ca-cert.pem
-DRDS_TRUSTSTORE_URL=file:/opt/amazon/certs/RDSTrustStore.jks
-Dspark.network.timeout=600
-Dspark.metrics.conf.*.source.jvm.class=org.apache.spark.metrics.source.JvmSource
-Dspark.executor.instances=4 -Dspark.driver.cores=4
-Dspark.metrics.conf.*.source.system.class=org.apache.spark.metrics.source.SystemMetricsSource
-Dspark.sql.parquet.output.committer.class=com.amazon.emr.committer.EmrOptimizedSparkSqlParquetOutputCommitter
-Dspark.script.location=s3
://glue-development-bucket/scripts/hudi-spark-sql-test.py
-Dspark.sql.shuffle.partitions=16
-Dspark.metrics.conf.*.sink.GlueCloudwatch.jobRunId=jr_d23ecbb5f94c3aa3926907fde84f202e5830a8d7676ade74c2cc7bf3522642df
-Dspark.hadoop.aws.glue.endpoint=https://glue.us-east-1.amazonaws.com
-Dspark.glueExceptionAnalysisEventLog.dir=/tmp/glue-exception-analysis-logs/
-Dspark.hadoop.mapred.output.direct.EmrFileSystem=true
-Dspark.glueJobInsights.enabled=true -Dspark.glue.JOB_NAME=hudi-spark-sql-test
-Dspark.glue.USE_PROXY=false -Dspark.eventLog.dir=/tmp/spark-event-logs/
-Dspark.extraListeners=com.amazonaws.services.glueexceptionanalysis.GlueExceptionAnalysisListener
-Dspark.hadoop.fs.s3.impl=com.amazon.ws.emr.hadoop.fs.EmrFileSystem
-Dspark.hadoop.mapred.output.direct.NativeS3FileSystem=true
-Dspark.pyspark.python=/usr/bin/python3
-Dspark.hadoop.hive.metastore.client.factory.class=com.amazonaws.glue.catalog.metastore.AWSGlueDataCatalogHiveClientFactory
-Dspark.authenticate.secret=<HIDDEN> -Dsp
ark.glue.extra-jars=s3://glue-development-bucket/jars/glue3/hudi-utilities-bundle_2.12-0.10.1.jar,s3://glue-development-bucket/jars/glue3/hudi-spark3.1.1-bundle_2.12-0.10.1.jar,s3://glue-development-bucket/jars/glue3/calcite-core-1.10.0.jar,s3://glue-development-bucket/jars/glue3/datanucleus-core-4.1.17.jar
-Dspark.cloudwatch.logging.ui.showConsoleProgress=true
-Dspark.hadoop.mapreduce.fileoutputcommitter.algorithm.version=2
-Dspark.hadoop.glue.michiganCredentialsProviderProxy=com.amazonaws.services.glue.remote.LakeformationCredentialsProvider
-Dspark.metrics.conf.driver.source.aggregate.class=org.apache.spark.metrics.source.AggregateMetricsSource
-Dspark.glue.JOB_RUN_ID=jr_d23ecbb5f94c3aa3926907fde84f202e5830a8d7676ade74c2cc7bf3522642df
-Dspark.glue.enable-continuous-cloudwatch-log=true
-Dspark.glue.endpoint=https://glue-jes-prod.us-east-1.amazonaws.com
-Dspark.sql.catalogImplementation=hive -Dspark.default.parallelism=16
-Dspark.ui.enabled=false -Dspark.driver.extraClassPath=/tmp:
/opt/amazon/conf:/opt/amazon/glue-manifest.jar
-Dspark.glue.GLUE_TASK_GROUP_ID=b8ef3e1f-06f7-40c2-b9f8-5a1756468c6c
-Dspark.authenticate=true -Dspark.dynamicAllocation.enabled=false
-Dspark.dynamicAllocation.maxExecutors=4 -Dspark.shuffle.service.enabled=false
-Dspark.hadoop.mapred.output.committer.class=org.apache.hadoop.mapred.DirectOutputCommitter
-Dspark.executor.extraClassPath=/tmp:/opt/amazon/conf:/opt/amazon/glue-manifest.jar
-Dspark.glue.GLUE_VERSION=3.0 -Dspark.executor.cores=4
-Dspark.hadoop.lakeformation.credentials.url=http://localhost:9998/lakeformationcredentials
-Dspark.driver.host=172.35.173.163
-Dspark.app.name=nativespark-hudi-spark-sql-test-jr_d23ecbb5f94c3aa3926907fde84f202e5830a8d7676ade74c2cc7bf3522642df
-Dspark.sql.parquet.fs.optimized.committer.optimization-enabled=true
-Dspark.rpc.askTimeout=600
-Dspark.metrics.conf.*.sink.GlueCloudwatch.jobName=hudi-spark-sql-test
-Dspark.metrics.conf.*.source.s3.class=org.apache.spark.metrics.source.S3FileSystemSource
-Dsp
ark.metrics.conf.*.sink.GlueCloudwatch.namespace=Glue
-Dspark.executor.memory=10g
-Dspark.metrics.conf.*.sink.GlueCloudwatch.class=org.apache.spark.metrics.sink.GlueCloudwatchSink
-Dspark.driver.memory=10g -Dspark.hadoop.fs.s3.buffer.dir=/tmp/hadoop-spark/s3
-Dspark.glue.GLUE_COMMAND_CRITERIA=glueetl -Dspark.master=jes
-Dspark.hadoop.mapreduce.fileoutputcommitter.marksuccessfuljobs=false
-Dspark.unsafe.sorter.spill.read.ahead.enabled=false
-Dspark.hadoop.parquet.enable.summary-metadata=false
-Dspark.glueAppInsightsLog.dir=/tmp/glue-app-insights-logs/
-Dspark.glue.jobLanguage=python -Dspark.files.overwrite=true
-Dspark.cloudwatch.logging.conf.jobRunId=jr_d23ecbb5f94c3aa3926907fde84f202e5830a8d7676ade74c2cc7bf3522642df
com.amazonaws.services.glue.ProcessLauncher --launch-class
org.apache.spark.deploy.PythonRunner /opt/amazon/bin/runscript.py
/tmp/hudi-spark-sql-test.py true --job-bookmark-option job-bookmark-enable
--TempDir s3://glue-development-bucket/temp/ --JOB_ID j_b5ac6a0ebf4aa
ec1f512936c33608ce4cdd7601ac725d5e67710eaefe1581c46 --curated_bucket
hudi-upgrade true --spark-event-logs-path s3://glue-development-bucket/logs/
--JOB_RUN_ID
jr_d23ecbb5f94c3aa3926907fde84f202e5830a8d7676ade74c2cc7bf3522642df --JOB_NAME
hudi-spark-sql-test
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in
[jar:file:/opt/amazon/spark/jars/slf4j-log4j12-1.7.30.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in
[jar:file:/opt/amazon/lib/Log4j-slf4j-2.x.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in
[jar:file:/opt/amazon/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an
explanation.
Continuous Logging: Creating cloudwatch appender.
Continuous Logging: Creating cloudwatch appender.
Continuous Logging: Creating cloudwatch appender.
Continuous Logging: Creating cloudwatch appender.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
SLF4J: A number (14) of logging calls during the initialization phase have
been intercepted and are
SLF4J: now being replayed. These are subject to the filtering rules of the
underlying logging system.
SLF4J: See also http://www.slf4j.org/codes.html#replay
2022-04-20 00:27:40,055 INFO [Thread-6] glue.AnalyzerLogHelper$
(Logging.scala:logInfo(24)): SLF4J: Class path contains multiple SLF4J bindings.
2022-04-20 00:27:40,058 INFO [Thread-6] glue.AnalyzerLogHelper$
(Logging.scala:logInfo(24)): SLF4J: Found binding in
[jar:file:/opt/amazon/spark/jars/slf4j-log4j12-1.7.30.jar!/org/slf4j/impl/StaticLoggerBinder.class]
2022-04-20 00:27:40,059 INFO [Thread-6] glue.AnalyzerLogHelper$
(Logging.scala:logInfo(24)): SLF4J: Found binding in
[jar:file:/opt/amazon/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
2022-04-20 00:27:40,059 INFO [Thread-6] glue.AnalyzerLogHelper$
(Logging.scala:logInfo(24)): SLF4J: Found binding in
[jar:file:/opt/amazon/lib/Log4j-slf4j-2.x.jar!/org/slf4j/impl/StaticLoggerBinder.class]
2022-04-20 00:27:40,059 INFO [Thread-6] glue.AnalyzerLogHelper$
(Logging.scala:logInfo(24)): SLF4J: See
http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
2022-04-20 00:27:40,076 INFO [Thread-6] glue.AnalyzerLogHelper$
(Logging.scala:logInfo(24)): SLF4J: Actual binding is of type
[org.slf4j.impl.Log4jLoggerFactory]
2022-04-20 00:27:40,459 INFO [Thread-6] glue.AnalyzerLogHelper$
(Logging.scala:logInfo(24)): log4j:WARN No appenders could be found for logger
(org.apache.hadoop.util.Shell).
2022-04-20 00:27:40,460 INFO [Thread-6] glue.AnalyzerLogHelper$
(Logging.scala:logInfo(24)): log4j:WARN Please initialize the log4j system
properly.
2022-04-20 00:27:40,460 INFO [Thread-6] glue.AnalyzerLogHelper$
(Logging.scala:logInfo(24)): log4j:WARN See
http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
2022-04-20 00:27:41,440 INFO [Thread-6] glue.AnalyzerLogHelper$
(Logging.scala:logInfo(24)): ==== Netty Server Started ====
2022-04-20 00:27:41,443 INFO [Thread-6] glue.AnalyzerLogHelper$
(Logging.scala:logInfo(24)): input rulesFilePath=/tmp/glue_app_analyzer_rules
2022-04-20 00:27:41,565 INFO [main] glue.SafeLogging
(Logging.scala:logInfo(57)): Initializing logging subsystem
2022-04-20 00:27:43,949 INFO [Thread-10] spark.SparkContext
(Logging.scala:logInfo(57)): Running Spark version 3.1.1-amzn-0
2022-04-20 00:27:44,038 INFO [Thread-10] resource.ResourceUtils
(Logging.scala:logInfo(57)):
==============================================================
2022-04-20 00:27:44,040 INFO [Thread-10] resource.ResourceUtils
(Logging.scala:logInfo(57)): No custom resources configured for spark.driver.
2022-04-20 00:27:44,041 INFO [Thread-10] resource.ResourceUtils
(Logging.scala:logInfo(57)):
==============================================================
2022-04-20 00:27:44,043 INFO [Thread-10] spark.SparkContext
(Logging.scala:logInfo(57)): Submitted application:
nativespark-hudi-spark-sql-test-jr_d23ecbb5f94c3aa3926907fde84f202e5830a8d7676ade74c2cc7bf3522642df
2022-04-20 00:27:44,076 INFO [Thread-10] resource.ResourceProfile
(Logging.scala:logInfo(57)): Default ResourceProfile created, executor
resources: Map(cores -> name: cores, amount: 4, script: , vendor: , memory ->
name: memory, amount: 10240, script: , vendor: , offHeap -> name: offHeap,
amount: 0, script: , vendor: ), task resources: Map(cpus -> name: cpus, amount:
1.0)
2022-04-20 00:27:44,101 INFO [Thread-10] resource.ResourceProfile
(Logging.scala:logInfo(57)): Limiting resource is cpus at 4 tasks per executor
2022-04-20 00:27:44,107 INFO [Thread-10] resource.ResourceProfileManager
(Logging.scala:logInfo(57)): Added ResourceProfile id: 0
2022-04-20 00:27:44,212 INFO [Thread-10] spark.SecurityManager
(Logging.scala:logInfo(57)): Changing view acls to: spark
2022-04-20 00:27:44,212 INFO [Thread-10] spark.SecurityManager
(Logging.scala:logInfo(57)): Changing modify acls to: spark
2022-04-20 00:27:44,213 INFO [Thread-10] spark.SecurityManager
(Logging.scala:logInfo(57)): Changing view acls groups to:
2022-04-20 00:27:44,214 INFO [Thread-10] spark.SecurityManager
(Logging.scala:logInfo(57)): Changing modify acls groups to:
2022-04-20 00:27:44,214 INFO [Thread-10] spark.SecurityManager
(Logging.scala:logInfo(57)): SecurityManager: authentication enabled; ui acls
disabled; users with view permissions: Set(spark); groups with view
permissions: Set(); users with modify permissions: Set(spark); groups with
modify permissions: Set()
2022-04-20 00:27:44,605 INFO [Thread-10] util.Utils
(Logging.scala:logInfo(57)): Successfully started service 'sparkDriver' on port
32837.
2022-04-20 00:27:44,672 INFO [Thread-10] spark.SparkEnv
(Logging.scala:logInfo(57)): Registering MapOutputTracker
2022-04-20 00:27:44,727 INFO [Thread-10] spark.SparkEnv
(Logging.scala:logInfo(57)): Registering BlockManagerMaster
2022-04-20 00:27:44,769 INFO [Thread-10] storage.BlockManagerMasterEndpoint
(Logging.scala:logInfo(57)): Using
org.apache.spark.storage.DefaultTopologyMapper for getting topology information
2022-04-20 00:27:44,770 INFO [Thread-10] storage.BlockManagerMasterEndpoint
(Logging.scala:logInfo(57)): BlockManagerMasterEndpoint up
2022-04-20 00:27:44,792 INFO [Thread-10] spark.SparkEnv
(Logging.scala:logInfo(57)): Registering BlockManagerMasterHeartbeat
2022-04-20 00:27:44,864 INFO [Thread-10] storage.DiskBlockManager
(Logging.scala:logInfo(57)): Created local directory at
/tmp/blockmgr-1c1f7a46-9b63-4617-938e-45f9b509cc03
2022-04-20 00:27:44,921 INFO [Thread-10] memory.MemoryStore
(Logging.scala:logInfo(57)): MemoryStore started with capacity 5.8 GiB
2022-04-20 00:27:44,956 INFO [Thread-10] spark.SparkEnv
(Logging.scala:logInfo(57)): Registering OutputCommitCoordinator
2022-04-20 00:27:45,131 INFO [Thread-10]
scheduler.JESSchedulerBackend$JESAsSchedulerBackendEndpoint
(Logging.scala:logInfo(57)): JESAsSchedulerBackendEndpoint
2022-04-20 00:27:45,133 INFO [Thread-10] scheduler.JESSchedulerBackend
(Logging.scala:logInfo(57)): JESSchedulerBackend
2022-04-20 00:27:45,456 INFO [allocator] glue.TaskGroupInterface
(Logging.scala:logInfo(57)): creating executor task for executor 1
2022-04-20 00:27:45,492 INFO [Thread-10] util.Utils
(Logging.scala:logInfo(57)): Successfully started service
'org.apache.spark.network.netty.NettyBlockTransferService' on port 39319.
2022-04-20 00:27:45,493 INFO [Thread-10] netty.NettyBlockTransferService
(NettyBlockTransferService.scala:init(81)): Server created on
172.35.173.163:39319
2022-04-20 00:27:45,497 INFO [Thread-10] storage.BlockManager
(Logging.scala:logInfo(57)): Using
org.apache.spark.storage.RandomBlockReplicationPolicy for block replication
policy
2022-04-20 00:27:45,520 INFO [Thread-10] storage.BlockManagerMaster
(Logging.scala:logInfo(57)): Registering BlockManager BlockManagerId(driver,
172.35.173.163, 39319, None)
2022-04-20 00:27:45,524 INFO [dispatcher-BlockManagerMaster]
storage.BlockManagerMasterEndpoint (Logging.scala:logInfo(57)): Registering
block manager 172.35.173.163:39319 with 5.8 GiB RAM, BlockManagerId(driver,
172.35.173.163, 39319, None)
2022-04-20 00:27:45,530 INFO [Thread-10] storage.BlockManagerMaster
(Logging.scala:logInfo(57)): Registered BlockManager BlockManagerId(driver,
172.35.173.163, 39319, None)
2022-04-20 00:27:45,531 INFO [Thread-10] storage.BlockManager
(Logging.scala:logInfo(57)): Initialized BlockManager: BlockManagerId(driver,
172.35.173.163, 39319, None)
2022-04-20 00:27:45,684 INFO [Thread-10] sink.GlueCloudwatchSink
(GlueCloudwatchSink.scala:logInfo(22)): CloudwatchSink: Obtained credentials
from the Instance Profile
2022-04-20 00:27:45,753 INFO [Thread-10] sink.GlueCloudwatchSink
(GlueCloudwatchSink.scala:logInfo(22)): CloudwatchSink: jobName:
hudi-spark-sql-test jobRunId:
jr_d23ecbb5f94c3aa3926907fde84f202e5830a8d7676ade74c2cc7bf3522642df
2022-04-20 00:27:45,952 INFO [Thread-10] util.log
(Log.java:initialized(169)): Logging initialized @9785ms to
org.sparkproject.jetty.util.log.Slf4jLog
2022-04-20 00:27:46,170 INFO [Thread-10]
glueexceptionanalysis.EventLogFileWriter (FileWriter.scala:start(51)): Started
file writer for com.amazonaws.services.glueexceptionanalysis.EventLogFileWriter
2022-04-20 00:27:46,200 INFO [Thread-10]
glueexceptionanalysis.EventLogSocketWriter (SocketWriter.scala:start(34)):
Socket client for
com.amazonaws.services.glueexceptionanalysis.EventLogSocketWriter started
correctly
2022-04-20 00:27:46,222 INFO [Thread-10] spark.SparkContext
(Logging.scala:logInfo(57)): Registered listener
com.amazonaws.services.glueexceptionanalysis.GlueExceptionAnalysisListener
2022-04-20 00:27:46,322 INFO [allocator] glue.TaskGroupInterface
(Logging.scala:logInfo(57)): createChildTask API response code 200
2022-04-20 00:27:46,331 INFO [allocator] glue.ExecutorTaskManagement
(Logging.scala:logInfo(57)): executor task
g-1b2e819c3f4b83c04b4894f402137ccdb61cf885 created for executor 1
2022-04-20 00:27:46,336 INFO [allocator] glue.TaskGroupInterface
(Logging.scala:logInfo(57)): creating executor task for executor 2
2022-04-20 00:27:46,333 INFO [Thread-10] scheduler.JESSchedulerBackend
(Logging.scala:logInfo(57)): SchedulerBackend is ready for scheduling beginning
after reached minRegisteredResourcesRatio: 0.0
2022-04-20 00:27:46,602 INFO [allocator] glue.TaskGroupInterface
(Logging.scala:logInfo(57)): createChildTask API response code 200
2022-04-20 00:27:46,602 INFO [allocator] glue.ExecutorTaskManagement
(Logging.scala:logInfo(57)): executor task
g-35e4f8ad9be7146bb0a17daa6bbf5f0aaeb24ad5 created for executor 2
2022-04-20 00:27:46,603 INFO [allocator] glue.TaskGroupInterface
(Logging.scala:logInfo(57)): creating executor task for executor 3
2022-04-20 00:27:46,900 INFO [allocator] glue.TaskGroupInterface
(Logging.scala:logInfo(57)): createChildTask API response code 200
2022-04-20 00:27:46,901 INFO [allocator] glue.ExecutorTaskManagement
(Logging.scala:logInfo(57)): executor task
g-205779aebb30eba354306f8d2a7c98052d7de372 created for executor 3
2022-04-20 00:27:46,902 INFO [allocator] glue.TaskGroupInterface
(Logging.scala:logInfo(57)): creating executor task for executor 4
2022-04-20 00:27:47,080 INFO [Thread-10] internal.SharedState
(Logging.scala:logInfo(57)): Setting hive.metastore.warehouse.dir ('null') to
the value of spark.sql.warehouse.dir ('file:/tmp/spark-warehouse').
2022-04-20 00:27:47,081 INFO [Thread-10] internal.SharedState
(Logging.scala:logInfo(57)): Warehouse path is 'file:/tmp/spark-warehouse'.
2022-04-20 00:27:47,252 INFO [allocator] glue.TaskGroupInterface
(Logging.scala:logInfo(57)): createChildTask API response code 200
2022-04-20 00:27:47,253 INFO [allocator] glue.ExecutorTaskManagement
(Logging.scala:logInfo(57)): executor task
g-a4c51ec9fbbe46ea1cbf28d272842588bf0c9e00 created for executor 4
2022-04-20 00:27:48,338 INFO [Thread-10] glue.GlueContext
(GlueContext.scala:<init>(117)): GlueMetrics configured and enabled
2022-04-20 00:27:49,312 INFO [Thread-10] util.PlatformInfo
(PlatformInfo.java:getJobFlowId(56)): Unable to read clusterId from
http://localhost:8321/configuration, trying extra instance data file:
/var/lib/instance-controller/extraInstanceData.json
2022-04-20 00:27:49,316 INFO [Thread-10] util.PlatformInfo
(PlatformInfo.java:getJobFlowId(63)): Unable to read clusterId from
/var/lib/instance-controller/extraInstanceData.json, trying EMR job-flow data
file: /var/lib/info/job-flow.json
2022-04-20 00:27:49,317 INFO [Thread-10] util.PlatformInfo
(PlatformInfo.java:getJobFlowId(71)): Unable to read clusterId from
/var/lib/info/job-flow.json, out of places to look
2022-04-20 00:27:50,232 INFO [Thread-10] util.AvroReaderUtil$
(AvroReaderUtil.scala:getFieldParser(245)): Creating default Avro field parser
for version 1.7.
2022-04-20 00:27:50,448 INFO [Thread-10] memory.MemoryStore
(Logging.scala:logInfo(57)): Block broadcast_0 stored as values in memory
(estimated size 311.9 KiB, free 5.8 GiB)
2022-04-20 00:27:51,456 INFO [Thread-10] memory.MemoryStore
(Logging.scala:logInfo(57)): Block broadcast_0_piece0 stored as bytes in memory
(estimated size 105.0 B, free 5.8 GiB)
2022-04-20 00:27:51,459 INFO [dispatcher-BlockManagerMaster]
storage.BlockManagerInfo (Logging.scala:logInfo(57)): Added broadcast_0_piece0
in memory on 172.35.173.163:39319 (size: 105.0 B, free: 5.8 GiB)
2022-04-20 00:27:51,463 INFO [Thread-10] spark.SparkContext
(Logging.scala:logInfo(57)): Created broadcast 0 from broadcast at
DynamoConnection.scala:53
2022-04-20 00:27:51,481 INFO [Thread-10] memory.MemoryStore
(Logging.scala:logInfo(57)): Block broadcast_1 stored as values in memory
(estimated size 311.9 KiB, free 5.8 GiB)
2022-04-20 00:27:51,486 INFO [Thread-10] memory.MemoryStore
(Logging.scala:logInfo(57)): Block broadcast_1_piece0 stored as bytes in memory
(estimated size 105.0 B, free 5.8 GiB)
2022-04-20 00:27:51,487 INFO [dispatcher-BlockManagerMaster]
storage.BlockManagerInfo (Logging.scala:logInfo(57)): Added broadcast_1_piece0
in memory on 172.35.173.163:39319 (size: 105.0 B, free: 5.8 GiB)
2022-04-20 00:27:51,490 INFO [Thread-10] spark.SparkContext
(Logging.scala:logInfo(57)): Created broadcast 1 from broadcast at
DynamoConnection.scala:53
ANTLR Tool version 4.7 used for code generation does not match the current
runtime version 4.8
2022-04-20 00:27:51,681 INFO [dispatcher-BlockManagerMaster]
storage.BlockManagerInfo (Logging.scala:logInfo(57)): Removed
broadcast_0_piece0 on 172.35.173.163:39319 in memory (size: 105.0 B, free: 5.8
GiB)
2022-04-20 00:27:51,701 INFO [dispatcher-BlockManagerMaster]
storage.BlockManagerInfo (Logging.scala:logInfo(57)): Removed
broadcast_1_piece0 on 172.35.173.163:39319 in memory (size: 105.0 B, free: 5.8
GiB)
ANTLR Tool version 4.7 used for code generation does not match the current
runtime version 4.8
2022-04-20 00:27:54,655 INFO [Thread-10] conf.HiveConf
(HiveConf.java:findConfigFile(181)): Found configuration file null
2022-04-20 00:27:54,683 INFO [Thread-10] hive.HiveUtils
(Logging.scala:logInfo(57)): Initializing HiveMetastoreConnection version
2.3.7-amzn-4 using Spark classes.
2022-04-20 00:27:54,976 INFO [Thread-10] conf.HiveConf
(HiveConf.java:findConfigFile(181)): Found configuration file null
2022-04-20 00:27:55,867 INFO [Thread-10] session.SessionState
(SessionState.java:createPath(753)): Created HDFS directory: /tmp/hive/spark
2022-04-20 00:27:55,868 INFO [Thread-10] session.SessionState
(SessionState.java:createPath(753)): Created local directory: /tmp/spark
2022-04-20 00:27:55,869 INFO [Thread-10] session.SessionState
(SessionState.java:createPath(753)): Created HDFS directory:
/tmp/hive/spark/8eacaff7-b865-43fc-87f4-d41cbae09a3f
2022-04-20 00:27:55,870 INFO [Thread-10] session.SessionState
(SessionState.java:createPath(753)): Created local directory:
/tmp/spark/8eacaff7-b865-43fc-87f4-d41cbae09a3f
2022-04-20 00:27:55,870 INFO [Thread-10] session.SessionState
(SessionState.java:createPath(753)): Created HDFS directory:
/tmp/hive/spark/8eacaff7-b865-43fc-87f4-d41cbae09a3f/_tmp_space.db
2022-04-20 00:27:55,884 INFO [Thread-10] client.HiveClientImpl
(Logging.scala:logInfo(57)): Warehouse location for Hive client (version 2.3.7)
is file:/tmp/spark-warehouse
2022-04-20 00:27:56,852 INFO [Thread-10] metastore.AWSGlueClientFactory
(AWSGlueClientFactory.java:newClient(56)): Setting glue service endpoint to
https://glue.us-east-1.amazonaws.com
2022-04-20 00:27:58,069 INFO [Thread-10] common.FileUtils
(FileUtils.java:mkdir(520)): Creating directory if it doesn't exist:
file:/tmp/spark-warehouse/hudi_sql_dml_ddl_hive.db
2022-04-20 00:27:58,383 INFO [Thread-10] Configuration.deprecation
(Configuration.java:logDeprecation(1394)): io.bytes.per.checksum is deprecated.
Instead, use dfs.bytes-per-checksum
2022-04-20 00:27:59,701 INFO [Thread-10] codegen.CodeGenerator
(Logging.scala:logInfo(57)): Code generated in 288.195849 ms
2022-04-20 00:27:59,745 INFO [Thread-10] codegen.CodeGenerator
(Logging.scala:logInfo(57)): Code generated in 25.989248 ms
2022-04-20 00:28:01,110 INFO [Thread-10] catalog.HoodieCatalogTable
(Logging.scala:logInfo(57)): Init hoodie.properties for
hudi_sql_dml_ddl_hive.hudi_tbl_partitioned
2022-04-20 00:28:01,115 WARN [Thread-10] config.DFSPropertiesConfiguration
(DFSPropertiesConfiguration.java:getConfPathFromEnv(188)): Cannot find
HUDI_CONF_DIR, please set it as the dir of hudi-defaults.conf
2022-04-20 00:28:01,202 WARN [Thread-10] config.DFSPropertiesConfiguration
(DFSPropertiesConfiguration.java:addPropsFromFile(131)): Properties file
file:/etc/hudi/conf/hudi-defaults.conf not found. Ignoring to load props file
2022-04-20 00:28:01,367 ERROR [main] glue.ProcessLauncher
(Logging.scala:logError(73)): Error from Python:Traceback (most recent call
last):
File "/tmp/hudi-spark-sql-test.py", line 54, in <module>
spark.sql(query_create_tbl)
File "/opt/amazon/spark/python/lib/pyspark.zip/pyspark/sql/session.py",
line 723, in sql
return DataFrame(self._jsparkSession.sql(sqlQuery), self._wrapped)
File
"/opt/amazon/spark/python/lib/py4j-0.10.9-src.zip/py4j/java_gateway.py", line
1305, in __call__
answer, self.gateway_client, self.target_id, self.name)
File "/opt/amazon/spark/python/lib/pyspark.zip/pyspark/sql/utils.py", line
117, in deco
raise converted from None
pyspark.sql.utils.IllegalArgumentException: Can't find primaryKey `uuid` in
root
|-- _hoodie_commit_time: string (nullable = true)
|-- _hoodie_commit_seqno: string (nullable = true)
|-- _hoodie_record_key: string (nullable = true)
|-- _hoodie_partition_path: string (nullable = true)
|-- _hoodie_file_name: string (nullable = true)
|-- id: long (nullable = true)
|-- name: string (nullable = true)
|-- ts: long (nullable = true)
|-- dt: string (nullable = true)
|-- hh: string (nullable = true)
.
2022-04-20 00:28:01,399 ERROR [main]
glueexceptionanalysis.GlueExceptionAnalysisListener
(Logging.scala:logError(9)): [Glue Exception Analysis]
{
"Event": "GlueETLJobExceptionEvent",
"Timestamp": 1650414481388,
"Failure Reason": "Traceback (most recent call last):\n File
\"/tmp/hudi-spark-sql-test.py\", line 54, in <module>\n
spark.sql(query_create_tbl)\n File
\"/opt/amazon/spark/python/lib/pyspark.zip/pyspark/sql/session.py\", line 723,
in sql\n return DataFrame(self._jsparkSession.sql(sqlQuery),
self._wrapped)\n File
\"/opt/amazon/spark/python/lib/py4j-0.10.9-src.zip/py4j/java_gateway.py\", line
1305, in __call__\n answer, self.gateway_client, self.target_id,
self.name)\n File
\"/opt/amazon/spark/python/lib/pyspark.zip/pyspark/sql/utils.py\", line 117, in
deco\n raise converted from
None\npyspark.sql.utils.IllegalArgumentException: Can't find primaryKey `uuid`
in root\n |-- _hoodie_commit_time: string (nullable = true)\n |--
_hoodie_commit_seqno: string (nullable = true)\n |-- _hoodie_record_key: string
(nullable = true)\n |-- _hoodie_partition_path: string (nullable = true)\n |--
_hoodie_file_name: string (nullable = true)\n |-- id: long (nullable = true)\n
|-- nam
e: string (nullable = true)\n |-- ts: long (nullable = true)\n |-- dt: string
(nullable = true)\n |-- hh: string (nullable = true)\n.",
"Stack Trace": [
{
"Declaring Class": "deco",
"Method Name": "raise converted from None",
"File Name":
"/opt/amazon/spark/python/lib/pyspark.zip/pyspark/sql/utils.py",
"Line Number": 117
},
{
"Declaring Class": "__call__",
"Method Name": "answer, self.gateway_client, self.target_id,
self.name)",
"File Name":
"/opt/amazon/spark/python/lib/py4j-0.10.9-src.zip/py4j/java_gateway.py",
"Line Number": 1305
},
{
"Declaring Class": "sql",
"Method Name": "return
DataFrame(self._jsparkSession.sql(sqlQuery), self._wrapped)",
"File Name":
"/opt/amazon/spark/python/lib/pyspark.zip/pyspark/sql/session.py",
"Line Number": 723
},
{
"Declaring Class": "<module>",
"Method Name": "spark.sql(query_create_tbl)",
"File Name": "/tmp/hudi-spark-sql-test.py",
"Line Number": 54
}
],
"Last Executed Line number": 54,
"script": "hudi-spark-sql-test.py"
}
2022-04-20 00:28:01,471 ERROR [main]
glueexceptionanalysis.GlueExceptionAnalysisListener
(Logging.scala:logError(9)): [Glue Exception Analysis] Last Executed Line
number from script hudi-spark-sql-test.py: 54
2022-04-20 00:28:01,477 INFO [main] glue.ResourceManagerSocketWriter
(SocketWriter.scala:start(34)): Socket client for
com.amazonaws.services.glue.ResourceManagerSocketWriter started correctly
2022-04-20 00:28:01,486 INFO [main] glue.ProcessLauncher
(Logging.scala:logInfo(57)): postprocessing
2022-04-20 00:28:01,487 INFO [main] glue.AnalyzerLogHelper$
(Logging.scala:logInfo(24)): Analyzer: Error stopping analyzer process null
2022-04-20 00:28:01,487 INFO [main] glue.AnalyzerLogHelper$
(Logging.scala:logInfo(24)): Analyzer: Error terminating analyzer process null
2022-04-20 00:28:01,488 INFO [main] glue.LogPusher
(Logging.scala:logInfo(57)): stopping
Continuous Logging: Shutting down cloudwatch appender.
Continuous Logging: Shutting down cloudwatch appender.
Continuous Logging: Shutting down cloudwatch appender.
Continuous Logging: Shutting down cloudwatch appender.
2022-04-20 00:28:01,504 INFO [shutdown-hook-0] spark.SparkContext
(Logging.scala:logInfo(57)): Invoking stop() from shutdown hook
2022-04-20 00:28:01,517 INFO [spark-listener-group-shared]
glueexceptionanalysis.EventLogFileWriter (FileWriter.scala:stop(70)): Logs,
events processed and insights are written to file
/tmp/glue-exception-analysis-logs/spark-application-1650414465125
2022-04-20 00:28:01,520 INFO [shutdown-hook-0] scheduler.JESSchedulerBackend
(Logging.scala:logInfo(57)): Shutting down all executors
2022-04-20 00:28:01,536 INFO [dispatcher-CoarseGrainedScheduler]
scheduler.JESSchedulerBackend$JESAsSchedulerBackendEndpoint
(Logging.scala:logInfo(57)): Asking each executor to shut down
2022-04-20 00:28:01,555 INFO [dispatcher-event-loop-3]
spark.MapOutputTrackerMasterEndpoint (Logging.scala:logInfo(57)):
MapOutputTrackerMasterEndpoint stopped!
2022-04-20 00:28:01,556 INFO [Thread-6] glue.AnalyzerLogHelper$
(Logging.scala:logInfo(24)): GlueJobEventsInputHandler Interrupted Last event
of a job received. Stop event handling.
2022-04-20 00:28:01,556 INFO [Thread-6] glue.AnalyzerLogHelper$
(Logging.scala:logInfo(24)): Stopping - analyzer netty server
2022-04-20 00:28:01,561 INFO [Thread-6] glue.AnalyzerLogHelper$
(Logging.scala:logInfo(24)): Stopped - analyzer netty server
2022-04-20 00:28:01,561 INFO [Thread-6] glue.AnalyzerLogHelper$
(Logging.scala:logInfo(24)): Processing remaining events in queue before
termination
2022-04-20 00:28:01,561 INFO [Thread-6] glue.AnalyzerLogHelper$
(Logging.scala:logInfo(24)): Closing rules engine
2022-04-20 00:28:01,562 INFO [Thread-6] glue.AnalyzerLogHelper$
(Logging.scala:logInfo(24)): Stopping analyzer log writer
2022-04-20 00:28:01,607 INFO [shutdown-hook-0] memory.MemoryStore
(Logging.scala:logInfo(57)): MemoryStore cleared
2022-04-20 00:28:01,607 INFO [shutdown-hook-0] storage.BlockManager
(Logging.scala:logInfo(57)): BlockManager stopped
2022-04-20 00:28:01,612 INFO [shutdown-hook-0] storage.BlockManagerMaster
(Logging.scala:logInfo(57)): BlockManagerMaster stopped
2022-04-20 00:28:01,616 INFO [dispatcher-event-loop-3]
scheduler.OutputCommitCoordinator$OutputCommitCoordinatorEndpoint
(Logging.scala:logInfo(57)): OutputCommitCoordinator stopped!
2022-04-20 00:28:01,622 INFO [shutdown-hook-0] spark.SparkContext
(Logging.scala:logInfo(57)): Successfully stopped SparkContext
2022-04-20 00:28:01,623 INFO [shutdown-hook-0] glue.LogPusher
(Logging.scala:logInfo(57)): uploading /tmp/spark-event-logs/ to
s3://glue-development-bucket/logs/
2022-04-20 00:28:01,656 INFO [shutdown-hook-0] util.ShutdownHookManager
(Logging.scala:logInfo(57)): Shutdown hook called
2022-04-20 00:28:01,657 INFO [shutdown-hook-0] util.ShutdownHookManager
(Logging.scala:logInfo(57)): Deleting directory
/tmp/spark-4a067bfa-1a27-4b95-b961-1e01f94c5caa/pyspark-c8194dc3-28fb-4e01-a412-cd5f425f032b
2022-04-20 00:28:01,662 INFO [shutdown-hook-0] util.ShutdownHookManager
(Logging.scala:logInfo(57)): Deleting directory
/tmp/spark-4a067bfa-1a27-4b95-b961-1e01f94c5caa
</body></html>
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]