草庐IT

amazon-lex

全部标签

hadoop - 将中间 Amazon EMR 任务输出写入 S3

我正在运行一个输出数千GB数据的EMR作业。每个map任务输出10GB的数据,据我所知,这些中间输出存储在运行map任务的机器的磁盘上。因此,在同一台机器处理了多个map任务后,它会耗尽磁盘空间来存储这些map任务的中间结果。我知道如何在S3上存储最终结果(在reducer运行之后),但是有没有办法将中间输出(映射器的结果)也存储在S3上?不幸的是,仅仅分配更多的机器(或具有更多内存的机器)并不是一个实际的解决方案,因为我将在数百TB的数据上运行相同的作业。如有任何帮助,我们将不胜感激。 最佳答案 为了防止其他人遇到这个问题,我无法

hadoop - 步骤因 exitCode、Amazon Emr Hadoop、S3DistCp 而失败

我正在尝试创建一个“步骤”并将许多小文件收集到一个文件中,这样我就可以将它分开几天。问题是我正在跑intetando却不让我跑。执行它对我来说效果很好命令:hadoopdistcps3n://buket-name/output-files-hive/*s3n://buket-name/files-hive/test但是如果我已经输入了命令“groupby”或“srcPattern”,它不会让我有任何东西。在AmazonEMR控制台中创建“步骤”后,始终出现错误。你指出了文件命令:awsemradd-steps--cluster-idj-XXXXXXX--stepsName="S3Dis

ruby - 如何通过 Ruby 连接到 Amazon EMR Hive?

我想从Ruby连接到AWSEMRHive实例。我找到了https://github.com/forward3d/rbhive,但不确定服务器地址是否与Hadoop服务器地址相同,也不确定Hive正在监听的端口。 最佳答案 对于AWSEMRHive,这是您连接到默认版本的方式。RBHive.tcli_connect('',10_000)do|connection|connection.fetch('SHOWTABLES')end并且Hive监听端口10000以获取Hive0.13.1版本。如果您想连接到不同的版本,请检查此链接。htt

amazon-web-services - 由 s3 透明支持的 EMR hdfs

有了hadoop,我可以使用s3作为存储url。但目前我有很多使用hdfs://...的应用程序,我想将整个集群和应用程序迁移到EMR和s3。我是否必须将每个应用程序中的url从hdfs://...更改为s3://...或者是否可以以某种方式告诉EMR存储s3上的hdfs内容所以每个应用程序仍然可以使用hdfs://...但实际上它会指向s3?如果是,怎么办? 最佳答案 这是一个很好的问题。有协议(protocol)欺骗这样的东西吗?您真的可以通过编写覆盖协议(protocol)处理方式的内容来影响此行为吗?老实说,这种解决方案让我

hadoop - 用于 sqoop 导入的 Oozie 工作流在 Amazon emr hue 中失败

我创建了一个oozie工作流来执行从mysql到hive系统的sqoop导入。我用于创建sqoop作业的Sqoop作业成功运行,但是当我尝试执行作业以从MySQL导入Hive时,它​​失败了。这里我附上了日志sqoop--hive-import(失败的sqoop操作所做的)分两步发生。首先将sqoop导入到HDFS目录(我的xml中引用了targetDir)。然后将此sqoop导入的输出移动并导入到Hive中。当我通过oozie运行我的sqoop作业时,我在targetDir中看到一个_SUCCESS文件,表明sqoop导入成功。只有后期(第2步)失败了。我以hue用户身份运行Oozi

amazon-web-services - AWS EMR jupyter 密码

我正在使用EMR并想使用jupyter(ipython),所以我向集群添加了引导操作:s3://elasticmapreduce.bootstrapactions/ipython-notebook/install-ipython-notebook我执行了端口隧道以从我的本地主机访问jupyter并且工作正常,但它要求输入登录密码,尝试为空,尝试hadoop,但没有运气,有人知道jypyter密码是什么吗? 最佳答案 当我使用相同的引导操作时,我也遇到了这个问题。我试着加入Args=[--password,jupyter]我也无法工作

amazon-web-services - Amazon S3 错误代码 403 禁止进入 EMR 集群

我知道这个问题可能被问过多次,但我尝试了这些解决方案,但没有成功。因此,在新线程中询问它以获得确定的解决方案。我创建了一个具有S3只读权限(在所有S3资源上获取和列出)的IAM用户,但是当我尝试使用HDFS命令从EMR集群访问S3时,它会针对某些文件夹抛出“错误代码403禁止访问”异常。其他帖子的人回答是权限问题;我没有找到正确的解决方案,因为它是“禁止”而不是“拒绝访问”。此错误的行为仅针对存储桶内的某些文件夹(包含对象)和某些空文件夹出现。据观察,如果我使用nativeAPI调用,那么它会正常工作,如下所示:使用s3a调用时出现“禁止”异常:hdfsdfs-lss3a:///使用s

amazon-web-services - AWS Data Pipeline 中有任何东西可以通过决策脚本停止执行特定事件吗?

我们的数据管道中有5个管道,它们在以下基础上执行:管道1-管道4=每天管道5-月底。我们正在考虑为管道5创建单独管道的选项,因为它对其他管道没有任何依赖性。有没有什么办法可以执行除管道5之外的所有管道,就像我们在OOZIE中所做的那样,它可以成功地忽略管道5的执行并完成管道而没有任何“错误”/“等待依赖项”状态? 最佳答案 您最好创建多个管道并将它们设置在不同的时间表上。如果您想让事情变得有趣,您可以使用Cloudwatch调度和AWSLambda以类似cron的方式安排管道创建/删除。您还可以使用AWSStep函数来定义每个组件的

amazon-web-services - 在策略中列出 dynamo 的所有权限将不起作用,但通配符可以 dynamodb :*

所以我试图从一个步骤中找出EMR集群创建配置单元表所需的最低权限。我发现它需要来自dynamodb的东西,因为它不会工作,除非策略中有“dynamodb:*”(它确实在集群上设置了一致的View)。我想知道它需要的特定权限,而不是通配所有权限。这样做的一种蛮力方法是,我使用一个列出所有dynamodb操作的策略,然后我将它们一个一个地删除,并在集群上的一个步骤中再次创建该表,以查看它是否失败。但是当我使用通配符时它起作用了,但列出所有通配符却不起作用。当我使用时:{"Version":"2012-10-17","Statement":[...(otherstuff){"Effect":

hadoop - Amazon EMR - 从站上的 Yum 更新引导操作失败

打算重写这个问题,因为我得到了很多更新的信息。我的问题如下:我有一个包含1个主节点和1个从节点的EMR集群。从节点配置为可以不受限制地访问开放互联网(我知道这是一个安全风险)。当我使用简单调用sudoyum-yupdate的引导操作设置此集群时,它失败了,表示引导操作在从属节点上失败(它总是在主节点上成功)但是,如果SSH进入从节点并手动尝试执行sudoyum-yupdate,则操作会在5.5.0EMR包上成功。我无法进一步调试为什么会发生这种情况,因为尽管据我所知已正确配置它,但EMR不会将任何日志复制到S3(日志复制最多是零星的)并且CloudWatch不会获取任何日志来自VPC,