我试图使用亚马逊数据管道和我的错误从S3(.csv文件)复制到RDS(MySQL):
复制记录时出错
原因:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链接失败成功发送到服务器的最后一个数据包是0毫秒前.驱动程序未收到来自服务器的任何数据包.
原因:通信链路故障成功发送到服务器的最后一个数据包是0毫秒前.驱动程序未收到来自服务器的任何数据包.
原因:连接超时
注意:我尝试使用相同的连接字符串RDS TO S3,它工作正常!但S3到RDS不起作用不确定原因.
在Amazon数据管道中,我正在创建使用Hive将S3复制到EMR的活动.为了实现它,我必须将两个输入参数作为一个步骤传递给EMR作业.我搜索了所有数据管道文档,但没有找到指定多个输入参数的方法.我还与AWS支持团队讨论,但他们也不清楚.他们建议的方式/技巧也不起作用.
下面是我的步骤参数和Hive查询.如果有人有想法实现它,请告诉我.
脚步:
s3://us-east-1.elasticmapreduce/libs/script-runner/script-runner.jar,s3://us-east-1.elasticmapreduce/libs/hive/hive-script,--base-path,s3://us-east-1.elasticmapreduce/libs/hive/,--hive-versions,latest,--run-hive-script,--args,-f,s3://gwbpipeline-test/scripts/multiple_user_sample_new.hql, -d, "output1=#{output.directoryPath}", -d,"input1=s3://gwbpipeline-test/temp/sb-test/#{format(@scheduledStartTime,'YYYY-MM-dd hh-mm-ss')}/input/tbl_users/", -d,"input2=s3://gwbpipeline-test/temp/sb-test/#{format(@scheduledStartTime,'YYYY-MM-dd hh-mm-ss')}/input/tbl_user_children/"
Run Code Online (Sandbox Code Playgroud)
Hive查询:
drop table if exists tbl_users;
CREATE EXTERNAL TABLE tbl_users (
user_id string, user_first_name string, user_last_name string, user_email string, user_dob string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LOCATION '${input1}';
drop table if exists tbl_user_children;
CREATE EXTERNAL TABLE tbl_user_children (
id string, full_name string, birthday string, type string, user_id string, facebook_id string, date_added string
)ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LOCATION '${input2}';
drop table if exists tbl_users_child_output;
CREATE EXTERNAL …
Run Code Online (Sandbox Code Playgroud) 我想知道将SQL数据从CSV插入MySQL的SQL查询格式是什么.它给出的模板是"INSERT INTO tablename(col1,col2,col3)VALUES(?,?,?);"
由于每个CSV文件中的值都是动态且不同的,因此他们在寻找什么来替换问号?
这是指向模板的一般格式的链接.
http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-template-copys3tords.html
最好,
kakkman
mysql csv amazon-s3 amazon-web-services amazon-data-pipeline
我想将AWS数据管道定义升级到EMR 4.x或5.x,这样我就可以利用Hive的最新功能(版本2.0+),例如CURRENT_DATE
and CURRENT_TIMESTAMP
等。
从EMR 3.x到4.x / 5.x的更改要求使用releaseLabel
in EmrCluster
,vs amiVersion
。
当我使用时"releaseLabel": "emr-4.1.0"
,出现以下错误:失败:执行错误,从org.apache.hadoop.hive.ql.exec.tez.TezTask返回代码1
以下是我针对EMR 3.x的数据管道定义。它运作良好,所以我希望其他人觉得这很有用(包括emr 4.x / 5.x的答案),因为从文件将数据导入DynamoDB的常见答案/建议是使用数据管道,但实际上没有人提出了一个坚实而简单的工作示例(例如自定义数据格式)。
{
"objects": [
{
"type": "DynamoDBDataNode",
"id": "DynamoDBDataNode1",
"name": "OutputDynamoDBTable",
"dataFormat": {
"ref": "DynamoDBDataFormat1"
},
"region": "us-east-1",
"tableName": "testImport"
},
{
"type": "Custom",
"id": "Custom1",
"name": "InputCustomFormat",
"column": [
"firstName", "lastName"
],
"columnSeparator" : "|",
"recordSeparator" : "\n"
},
{
"type": "S3DataNode",
"id": "S3DataNode1",
"name": "InputS3Data",
"directoryPath": "s3://data.domain.com",
"dataFormat": { …
Run Code Online (Sandbox Code Playgroud) amazon-web-services amazon-emr elastic-map-reduce amazon-data-pipeline
我正在使用 AWS Data Pipeline 创建 CSV 和 TSV 文件。文件创建得很好,但我不知道如何创建带有列标题的文件。
起初,我希望标头会根据我为获取导出而运行的 SQL 查询自动生成。那没有用,但没关系。
然后我向 DefaultDataFormat3 特征/节点的“列”属性添加了一个列定义列表。
{
"escapeChar": "\\",
"name": "DefaultDataFormat3",
"column": [
"id INT",
"field1 STRING",
"field2 STRING"
],
"columnSeparator": "|",
"id": "DataFormatId_jEXqL",
"type": "TSV",
"recordSeparator": "\\n"
}
Run Code Online (Sandbox Code Playgroud)
我仍然只获得导出中没有标题行的 CSV 和 TSV。
我有一个用例,需要将 ttl 列添加到现有表中。目前,该表拥有超过20亿条记录。
是否有任何现有的解决方案围绕相同的构建?或者应该是 emr 是前进的道路吗?
amazon-emr emr amazon-dynamodb amazon-data-pipeline data-pipeline
当我尝试使用AWS Data Pipeline创建EC2资源时,我没有看到和选项来定义将与该计算引擎相关联的EBS卷.是否可以设置音量大小?如果是,有人可以给我一个例子.
amazon-ec2 amazon-ebs amazon-web-services amazon-data-pipeline
我正在尝试将已上传到 S3 的 JSON 文件导入 DynamoDB
我按照亚马逊给出的教程进行操作
http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-importexport-ddb-console-start.html
但是当我尝试激活管道时,组件 TableLoadActivity 失败并且 DDBDestinationTable 说 CASCADE_FAILED
两者都给出错误
在 org.apache.hadoop.mapreduce.JobSubmitter.writeOldSplits(JobSubmitter.java:520) 在 org.apache.hadoop.mapreduce.JobSubmitter.writeSplits(JobSubmitter.java:512) 在 org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal (JobSubmitter.java:394)在org.apache.hadoop.mapreduce.Job $ 10.run(Job.java:1285)在org.apache.hadoop.mapreduce.Job $ 10.run(Job.java:1282)在java。 security.AccessController.doPrivileged(本机方法)在javax.security.auth.Subject.doAs(Subject.java:415)在org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1548)在org.apache。 hadoop.mapreduce.Job.submit(Job.java:1282) 在 org.apache.hadoop.mapred.JobClient$1.run(JobClient.java:562) 在 org.apache.hadoop.mapred.JobClient$1.run(JobClient. java:557)在java.security.AccessController.doPrivileged(本机方法)在javax.security.auth.Subject.doAs(Subject.java:415)在org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:第1548章
任何帮助,将不胜感激
我有两个DynamoDB表:Table_1和Table_2。我正在尝试弃用Table_1,并将信息从Table_1复制到Table_2,Table_1具有不同的GSI和不同的LSI。
Table_1属性是:Id,状态,isReused,空,正常
Table_2属性是:UserId,Status,isOld,normal
Id映射到UserId,状态映射到状态,法线映射到法线,从Table_2中删除空值,如果状态为“ OLD”,则isOld设置为true。
从Table_1导出数据,对属性/数据进行转换,然后将信息加载回Table_2的最佳方法是什么?
当前,我可以使用AWS Data Pipeline使用给定的模板将数据从Table_1导入/导出到Table_2,但是不会进行转换。我猜想我需要使用EMR进行转换。
我还使用DynamoDB流使表保持同步,但是据我了解,DynamoDB流仅流更新信息,而不流表中已经存在的信息。
我试图以某种方式将现有的 AWS Data Pipeline任务导出到Terraform基础架构。
因此,对于此问题,没有对数据管道的直接支持,但是使用CloudFormation模板(terraform resource)仍然可以实现。
问题是我找不到将现有管道导出到CloudFormation模板的方法。
用我的特定定义语法导出管道将无法正常工作,因为我还没有找到将该定义包含到CloudFormation中的方法。CloudFormer也不支持导出管道。
是否有人知道如何将管道导出到CloudFormation或通过其他方式通过Terraform自动化实现AWS Data Pipeline?
谢谢您的帮助!
amazon-web-services aws-cloudformation amazon-data-pipeline terraform
amazon-emr ×3
amazon-s3 ×3
csv ×2
amazon-ebs ×1
amazon-ec2 ×1
amazon-rds ×1
emr ×1
hadoop ×1
mysql ×1
terraform ×1