我正在以编程方式添加和删除AWS IAM用户策略,并且我从这些策略的应用程序中获得了不一致的结果.
例如,这可能成功也可能不成功(我正在使用Java 1.6.6 SDK):
如果我在#3和#4之间插入断点并等待几秒钟,则用户无法从桶中读取,这正是我所期望的.如果我删除断点,用户可以从桶中读取,这是错误的.
(当我添加策略然后访问资源时,这也是不一致的)
我想知道策略更改何时对组件(S3,SQS等)产生影响,而不仅仅是在IAM系统上.有没有办法从中获得收据或确认?或者可能有一定的时间等待?
是否有关于政策申请内部的文件?
(仅供参考我从https://forums.aws.amazon.com/thread.jspa?threadID=140383&tstart=0复制了我的问题)
policy amazon-s3 amazon-web-services user-permissions amazon-iam
@XmlRootElement
public class Todo {
private String s = "test";
public String getS() {
return s;
}
public void setS(String s) {
this.s = s;
}
}
Run Code Online (Sandbox Code Playgroud)
和服务:
@Path("/test")
public class Service {
@GET
@Produces({MediaType.APPLICATION_JSON })
public List<Todo> getAllGadgets() {
return Arrays.asList(new Todo[] { new Todo() });
}
}
Run Code Online (Sandbox Code Playgroud)
我的web.xml:
<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.test</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
如果我将MediaType.APPLICATION_XML设置为生成注释,则所有这些都有效.但对于JSON,我得到以下异常:
严重:映射异常响应:500(内部服务器错误)javax.ws.rs.WebApplicationException:com.sun.jersey.api.MessageException:Java类java.util.Arrays $ ArrayList和Java类型java的消息体编写器找不到.util.List和MIME媒体类型application/json
我使用Jersey 1.6,根据教程,JSON格式应该可以在没有任何额外编程的情况下使用JAXB.怎么了?
会隐含地try-with-resources打个电话flush()吗?
如果是,请在以下代码段bw.flush()中安全删除?
static void printToFile1(String text, File file) {
try (BufferedWriter bw = new BufferedWriter(new FileWriter(file))) {
bw.write(text);
bw.flush();
} catch (IOException ex) {
// handle ex
}
}
Run Code Online (Sandbox Code Playgroud)
PS.我在官方文件中没有看到任何关于它的描述:
https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html
首先,一些背景.有一个工作人员扩展/解决了一堆短URL:
http://t.co/example -> http://example.com
Run Code Online (Sandbox Code Playgroud)
所以,我们只是按照重定向.而已.我们不会从连接中读取任何数据.在我们得到200之后,我们返回最终的URL并关闭InputStream.
现在,问题本身.在生产服务器上,其中一个解析程序线程挂起在InputStream.close()调用内:
"ProcessShortUrlTask" prio=10 tid=0x00007f8810119000 nid=0x402b runnable [0x00007f882b044000]
java.lang.Thread.State: RUNNABLE
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.skip(BufferedInputStream.java:352)
- locked <0x0000000561293aa0> (a java.io.BufferedInputStream)
at sun.net.www.MeteredStream.skip(MeteredStream.java:134)
- locked <0x0000000561293a70> (a sun.net.www.http.KeepAliveStream)
at sun.net.www.http.KeepAliveStream.close(KeepAliveStream.java:76)
at java.io.FilterInputStream.close(FilterInputStream.java:155)
at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.close(HttpURLConnection.java:2735)
at ru.twitter.times.http.URLProcessor.resolve(URLProcessor.java:131)
at ru.twitter.times.http.URLProcessor.resolve(URLProcessor.java:55)
at ...
Run Code Online (Sandbox Code Playgroud)
经过简单的研究,我明白skip()在将数据流发送回连接池之前会调用它来清理流(如果设置了keep-alive?).我仍然不明白如何避免这种情况.此外,我怀疑代码中是否存在一些不良设计或JDK中存在问题.
所以,问题是:
close()?例如,保证一些合理的超时.skip()被召唤......更新:
KeepAliveStream,第79行,close()方法:
// Skip past the data that's left in the Inputstream because
// some sort of error may have occurred. …Run Code Online (Sandbox Code Playgroud) 在我的应用程序管理事务的情况下,我要选择:
EntityManager并调用clear().分享EntityManager使用a ThreadLocal.EntityManager为每个事务创建一个新的.我对JPA没有多少经验.我的问题是哪一个在性能方面更好?
在通常的structured_kafka_wordcount.py代码中,
当我将线条分成udf如下所示的单词时,
my_split = udf(lambda x: x.split(' '), ArrayType(StringType()))
words = lines.select(
explode(
my_split(lines.value)
)
)
Run Code Online (Sandbox Code Playgroud)
警告将继续显示:
WARN CachedKafkaConsumer:CachedKafkaConsumer未在UninterruptibleThread中运行.当CachedKafkaConsumer的方法由于KAFKA-1894而中断时,它可能会挂起
另一方面,当我将线条分成单词时pyspark.sql.functions.split,一切都运行良好.
words = lines.select(
explode(
split(lines.value, ' ')
)
)
Run Code Online (Sandbox Code Playgroud)
为什么会这样,以及如何修复警告?
这是我试图在实践中执行的代码:
pattern = "(.+) message repeated (\\d) times: \\[ (.+)\\]"
prog = re.compile(pattern)
def _unfold(x):
ret = []
result = prog.match(x)
if result:
log = " ".join((result.group(1), result.group(3)))
times = result.group(2)
for _ in range(int(times)):
ret.append(log)
else:
ret.append(x)
return ret
_udf = udf(lambda x: …Run Code Online (Sandbox Code Playgroud) apache-kafka apache-spark spark-streaming apache-spark-sql pyspark
Spring 框架中包含以下注解。@GetMapping、@PostMapping、@PutMapping、@DeleteMapping 和 @PatchMapping,用于标准 Spring MVC 控制器方法,但 @HeadMapping 不是。这有什么意义?
我可以在创建表后立即读取它,但是如何在另一个Spark会话中再次读取它呢?
给定代码:
spark = SparkSession \
.builder \
.getOrCreate()
df = spark.read.parquet("examples/src/main/resources/users.parquet")
(df
.write
.saveAsTable("people_partitioned_bucketed"))
# retrieve rows from table as expected
spark.sql("select * from people_partitioned_bucketed").show()
spark.stop()
# open spark session again
spark = SparkSession \
.builder \
.getOrCreate()
# table not exist this time
spark.sql("select * from people_partitioned_bucketed").show()
```
Run Code Online (Sandbox Code Playgroud)
执行结果:
+------+----------------+--------------+
| name|favorite_numbers|favorite_color|
+------+----------------+--------------+
|Alyssa| [3, 9, 15, 20]| null|
| Ben| []| red|
+------+----------------+--------------+
Traceback (most recent call last):
File "/home//workspace/spark/examples/src/main/python/sql/datasource.py", line 246, in <module>
spark.sql("select * from …Run Code Online (Sandbox Code Playgroud) java ×4
apache-spark ×2
pyspark ×2
amazon-iam ×1
amazon-s3 ×1
apache-kafka ×1
http ×1
jackson ×1
jax-rs ×1
jpa ×1
jpa-2.0 ×1
json ×1
policy ×1
python ×1
rest ×1
spring ×1
spring-boot ×1
spring-mvc ×1
tcp ×1