- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
环境:Hadoop 2.7.3、hive-2.2.0-SNAPSHOT、Tez 0.8.4
我的 core-site.xml:
<property>
<name>fs.s3a.aws.credentials.provider</name>
<value>
org.apache.hadoop.fs.s3a.SimpleAWSCredentialsProvider,
org.apache.hadoop.fs.s3a.BasicAWSCredentialsProvider,
com.amazonaws.auth.EnvironmentVariableCredentialsProvider
</value>
<property>
<name>fs.s3a.impl</name>
<value>org.apache.hadoop.fs.s3a.S3AFileSystem</value>
<description></description>
</property>
<property>
<name>fs.s3a.access.key</name>
<value>GOODKEYVALUE</value>
<description>AWS access key ID. Omit for Role-based authentication. </description>
</property>
<property>
<name>fs.s3a.secret.key</name>
<value>SECRETKEYVALUE</value>
<description>AWS secret key. Omit for Role-based authentication.</description>
</property>
我可以从 hadoop 命令行正确访问 s3a uri。我可以创建外部表和如下命令:
create external table mytable(a string, b string) location 's3a://mybucket/myfolder/';
select * from mytable limit 20;
正确执行,但是
select count(*) from mytable;
失败:
Error: org.apache.hive.service.cli.HiveSQLException: Error while processing statement: FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.tez.TezTask. Vertex failed, vertexName=Map 1, vertexId=vertex_1489267689011_0001_1_00, diagnostics=[Vertex vertex_1489267689011_0001_1_00 [Map 1] killed/failed due to:ROOT_INPUT_INIT_FAILURE, Vertex Input: url_sum_master initializer failed, vertex=vertex_1489267689011_0001_1_00 [Map 1], com.amazonaws.SdkClientException: Unable to load AWS credentials from any provider in the chain
at com.amazonaws.auth.AWSCredentialsProviderChain.getCredentials(AWSCredentialsProviderChain.java:131)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.getCredentialsFromContext(AmazonHttpClient.java:1110)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.runBeforeRequestHandlers(AmazonHttpClient.java:759)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:723)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:716)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:699)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:667)
at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:649)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:513)
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4194)
at com.amazonaws.services.s3.AmazonS3Client.getBucketRegionViaHeadRequest(AmazonS3Client.java:4949)
at com.amazonaws.services.s3.AmazonS3Client.fetchRegionFromCache(AmazonS3Client.java:4923)
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4178)
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4141)
at com.amazonaws.services.s3.AmazonS3Client.headBucket(AmazonS3Client.java:1313)
at com.amazonaws.services.s3.AmazonS3Client.doesBucketExist(AmazonS3Client.java:1270)
at org.apache.hadoop.fs.s3a.S3AFileSystem.initialize(S3AFileSystem.java:297)
at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2669)
at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:94)
at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2703)
at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2685)
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:373)
at org.apache.hadoop.fs.Path.getFileSystem(Path.java:295)
at org.apache.hadoop.mapred.FileInputFormat.singleThreadedListStatus(FileInputFormat.java:258)
at org.apache.hadoop.mapred.FileInputFormat.listStatus(FileInputFormat.java:229)
at org.apache.hadoop.mapred.FileInputFormat.getSplits(FileInputFormat.java:315)
at org.apache.hadoop.hive.ql.io.HiveInputFormat.addSplitsForGroup(HiveInputFormat.java:365)
at org.apache.hadoop.hive.ql.io.HiveInputFormat.getSplits(HiveInputFormat.java:483)
at org.apache.hadoop.hive.ql.exec.tez.HiveSplitGenerator.initialize(HiveSplitGenerator.java:196)
at org.apache.tez.dag.app.dag.RootInputInitializerManager$InputInitializerCallable$1.run(RootInputInitializerManager.java:278)
at org.apache.tez.dag.app.dag.RootInputInitializerManager$InputInitializerCallable$1.run(RootInputInitializerManager.java:269)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1698)
at org.apache.tez.dag.app.dag.RootInputInitializerManager$InputInitializerCallable.call(RootInputInitializerManager.java:269)
at org.apache.tez.dag.app.dag.RootInputInitializerManager$InputInitializerCallable.call(RootInputInitializerManager.java:253)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
]Vertex killed, vertexName=Reducer 2, vertexId=vertex_1489267689011_0001_1_01, diagnostics=[Vertex received Kill in INITED state., Vertex vertex_1489267689011_0001_1_01 [Reducer 2] killed/failed due to:OTHER_VERTEX_FAILURE]DAG did not succeed due to VERTEX_FAILURE. failedVertices:1 killedVertices:1
at org.apache.hive.service.cli.operation.Operation.toSQLException(Operation.java:393)
at org.apache.hive.service.cli.operation.SQLOperation.runQuery(SQLOperation.java:250)
at org.apache.hive.service.cli.operation.SQLOperation.access$800(SQLOperation.java:91)
at org.apache.hive.service.cli.operation.SQLOperation$BackgroundWork$1.run(SQLOperation.java:340)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1698)
at org.apache.hive.service.cli.operation.SQLOperation$BackgroundWork.run(SQLOperation.java:353)
让它工作的唯一方法是在 uri 本身中使用 accesskey:secretkey,这对于生产代码是不可能的。
谢谢。
最佳答案
你是对的,你不想在 URI 中拥有 secret 。很快 Hadoop 就会告诉你不要这样做,在某个时候它可能会完全停止它。
查看 latest s3a docs 的故障排除 S3a 部分.
如果您自己构建 Hadoop(您的 SDK 版本选择暗示),则构建 Hadoop 2.8/2.9 并在 s3a 包中启动调试。那里有更多的安全日志记录,但仍然有意记录比您想要的少的日志记录,以保密这些 key 。
您也可以尝试在目标机器上设置 AWS 环境变量。这并不能解决问题,但可以帮助隔离问题。
关于hadoop - hive 与 Tez : Unable to load AWS credentials from any provider in the chain,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42742086/
我正在使用 git-credential-store与我的存储库。但是我注意到当我运行 git push 它启动git-credential-cache--daemon 并且在我关闭终端之前不会关闭它
这些是我正在使用的导入: import com.novell.ldap.*; import java.io.UnsupportedEncodingException; 我正在尝试进行一个非常简单的密码
我的 hdp 集群配置了带有 AD 的 kerberos。所有 HDP 服务帐户都生成了主体和 key 表,包括 spark。 我知道服务帐户没有密码并设置为未过期。现在在执行 kinit -kt s
服务器不能只是将临时凭证“升级”为 token 凭证并保留相同的 key 和 secret 吗? 然后,客户端可以在收到来自服务器的说明临时凭据已“升级”的回调后立即开始进行经过身份验证的调用。 当然
Apache Camel 与 AWS S3 接口(interface)良好,但我发现它没有正确构建的场景。回顾我在网上看到的所有 Camel 示例,我从未见过有人在非本地环境中使用推荐的行业标准 AW
大家好,我遇到了一个问题,这是我第一次为支付门户设置 Mutial SSL,下面的代码是我正在使用的代码,我得到的错误是: System.Web.Services.Protocols.SoapExce
我创建了一个 server.keystore,然后是一个 client.keyStore 和一个 client.crt,我用它来做 client.truststore 别名为 devmyserverk
我正在尝试从 AngularJS 页面连接到 ASP.NET Web-API Web 服务,我得到以下信息 Credentials 标志为“true”,但“Access-Control-Allow-C
Windows 更新后,出现保存凭据问题,rdp 总是询问密码,无法保存。原因是 Windows Defender Credential Guard。如何解决这个问题? 最佳答案 我的解决方案在这里,
我正在使用 react-native-facebook-login 包来登录用户。目前流程运行良好,在用户输入他们的详细信息后,我成功地看到了一个带有他们信息的对象。 当我尝试使用 signInWit
在使用 Sourcetree 时,我不断收到错误 git: 'credential-oskeychain' is not a git command. See 'git --help'. 我很确定应该
“根账户凭证”和“IAM 用户凭证”之间有什么区别? 还有一个问题: 根据描述,建议使用“IAM 用户凭据”,但无法使用“IAM 用户凭据”在 S3 中访问 你能解释一下这是为什么吗? 最佳答案 您的
Spring 3.1Tomcat 6.* 我正在制作一个 Spring 3.1 webapp,使用 LDAP 进行身份验证。 我用我编写的 JNDI 风格的 Java 程序(引述如下)测试了 LDAP
Authentication authentication = authenticationManager.authenticate( new UsernamePasswordAuthenti
我正在使用 firebase Admin SDK,但我在运行时收到此错误: Error:(22, 36) java: cannot access com.google.auth.Credentials
vscode 1.45.1版本使用克隆存储库时,我收到“Bad credentials”。最近我在github上换了用户名。可能就是这个原因。我如何告诉vs code?
我已经为 Classroom API 实现了 Java QuickStart,但在运行时收到错误消息“java.io.FileNotFoundException:未找到资源:/credentials.
我正在使用 Jenkins 主/从设置。我希望 Jenkins 有一个凭证信息“来源”。不是散落在各处的 key /密码。 因此,我不想在 Jenkins 中定义我的 SCM(使用来自 Jenkins
使用azure aks get-credentials --admin可以获取kubernetes管理配置文件,azure aks get-credentials只能获取azure上的用户配置文件。
使用azure aks get-credentials --admin可以获取kubernetes管理配置文件,azure aks get-credentials只能获取azure上的用户配置文件。
我是一名优秀的程序员,十分优秀!