从AWS官方文档的相关部分来看,提出了以下要求:
创建负载均衡器时,您必须从至少两个可用区指定一个公有子网。您只能为每个可用区指定一个公有子网。
为了确保负载均衡器可以正常扩展,请验证负载均衡器的每个子网是否都有一个至少具有 /27 位掩码(例如 10.0.0.0/27)的 CIDR 块,并且至少有 8 个可用 IP 地址。您的负载均衡器使用这些 IP 地址与目标建立连接。
然而,我不明白为什么——关于要求8 个免费 IP 地址的部分。有人可以解释一下吗?提前致谢!
我在互联网上搜索了一下,但找不到很好的解释。我认为理解这个要求可能会帮助我理解ELB是如何工作的(我确实读过“ ELB如何工作”章节,但我仍然很困惑)
我对在开发工具上gradle
的Spring Boot 文档建议的文件中使用的这段代码感到困惑
configurations {
developmentOnly
runtimeClasspath {
extendsFrom developmentOnly
}
}
dependencies {
developmentOnly("org.springframework.boot:spring-boot-devtools")
}
Run Code Online (Sandbox Code Playgroud)
我想我必须声明developmentOnly
配置,因为它要在dependencies {}
块中使用,但为什么我需要这些行runtimeClasspath
?我实际上尝试删除我的项目中的行,并且该项目构建得非常好。
configurations {
developmentOnly
}
dependencies {
developmentOnly("org.springframework.boot:spring-boot-devtools")
}
Run Code Online (Sandbox Code Playgroud)
是否runtimeClasspath
被 Java Plugin 使用?(正如本文档所建议的)如果我不包含这些行,会不会有任何不好的副作用runtimeClasspath
?
更新 (2019-12-10)
我还可以确认在没有runtimeClasspath
指令的情况下构建的可执行 jar运行完全正常。所以我真的不知道该指令在做什么。
是真的,Hive
并且SparkSQL
不支持 的数据类型datetime
吗?
从我对参考文献的阅读来看,它们似乎只支持date
和timestamp
。前者没有时间分量(即小时、分钟和秒);后者具有高精度(低至毫秒),但不是人类可读的(它总是需要由from_unixtime()
or转换date_format()
,结果将是一个字符串,而不是一个datetime
类型)。
相比之下,其他数据库系统,例如MySQL
确实具有datetime
. (例如,请参阅此参考)
有什么好的建议/技巧来解决这个限制吗?
这些是我的参考:
更新:关于人类可读性
这里我举一个例子MySQL
来说明我关于人类可读性的观点:
-- MySQL code
select
cast(now() as date) as asDate, -- human readable
cast(now() as dateTime) as asDateTime, -- human readable
unix_timestamp(now()) as asUnixTimestamp, -- not H/R
cast(from_unixtime(unix_timestamp(now()))
as dateTime)
asDateTimeAgain -- cast into dateTime to make it H/R
Run Code Online (Sandbox Code Playgroud)
显示将是这样的:
(注意第四列asDateTimeAgain
,这是人类可读的)
+------------+---------------------+-----------------+---------------------+ …
Run Code Online (Sandbox Code Playgroud) 这是一个与此问题相关的问题:Hive / Hadoop间歇性故障:无法将源移动到目标
我们发现通过将设置fs.hdfs.impl.disable.cache
为,可以避免“无法移动源...文件系统已关闭”的问题。true
但是,我们还发现,SparkSQL查询变得非常慢-过去几秒钟内完成的查询现在需要30到40秒钟以上的时间才能完成(即使查询非常简单,例如读取一个小表)。
这正常吗?
我对为fs.hdfs.impl.disable.cache
true的理解意味着,FileSystem#get()
总会createFileSystem()
代替返回已缓存的FileSystem
。此设置可以防止一个FileSystem
对象被多个客户端共享,这确实是有道理的,因为它可以防止例如两个调用者FileSystem#get()
彼此关闭文件系统。
(例如,请参阅此讨论)
此设置会使事情变慢,但可能不会那么慢。
/**
* Returns the FileSystem for this URI's scheme and authority. The scheme of
* the URI determines a configuration property name,
* <tt>fs.<i>scheme</i>.class</tt> whose value names the FileSystem class.
* The entire URI is passed to the FileSystem instance's initialize method.
*/
public static FileSystem get(URI uri, Configuration conf)
throws …
Run Code Online (Sandbox Code Playgroud) 有人可以向我展示使用 AWS CLI 命令的示例吗aws logs list-tags-log-group
?
我可以将它与名称没有斜杠的日志组一起使用(例如fooTestLogGroup
),但是当我对名称有正斜杠的任何日志组使用相同的命令时(例如/aws/codebuild/logGroup1
,或者/ecs/logGroup2
然后我收到此错误
An error occurred (ServiceUnavailableException) when calling the
ListTagsLogGroup operation (reached max retries: 4): The server failed to
fulfill the request. Please try again.
Run Code Online (Sandbox Code Playgroud)
我使用的命令是:
$ aws logs list-tags-log-group --log-group-name fooTestLogGroup
Run Code Online (Sandbox Code Playgroud)
我在网上搜索并查找了AWS CLI 文档,但找不到答案
我是 Spark SQL 新手。我搜索了Hive/SparkSQL 的语言手册并用 google 搜索答案,但找不到明显的答案。
0xffff
在 MySQL 中,我们可以像这样表达十六进制文字:
mysql>select 0+0xffff;
+----------+
| 0+0xffff |
+----------+
| 65535 |
+----------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
但在 Spark SQL 中(我使用的是 beeline 客户端),我只能执行以下操作,其中数值以十进制而不是十六进制表示。
> select 0+65535;
+--------------+--+
| (0 + 65535) |
+--------------+--+
| 65535 |
+--------------+--+
1 row selected (0.047 seconds)
Run Code Online (Sandbox Code Playgroud)
如果我执行以下操作,则会出现错误:
> select 0+0xffff;
Error: org.apache.spark.sql.AnalysisException:
cannot resolve '`0xffff`' given input columns: []; line 1 pos 9;
'Project [unresolvedalias((0 + '0xffff), None)]
+- OneRowRelation$ (state=,code=0) …
Run Code Online (Sandbox Code Playgroud) 在MySQL中,我可以这样查询:
select
cast(from_unixtime(t.time, '%Y-%m-%d %H:00') as datetime) as timeHour
, ...
from
some_table t
group by
timeHour, ...
order by
timeHour, ...
Run Code Online (Sandbox Code Playgroud)
其中timeHour
在GROUP BY
为一个选择的表达的结果。
但是我只是尝试了一个类似于中的查询Sqark SQL
,但出现了错误
Error: org.apache.spark.sql.AnalysisException:
cannot resolve '`timeHour`' given input columns: ...
Run Code Online (Sandbox Code Playgroud)
我的查询Spark SQL
是这样的:
select
cast(t.unixTime as timestamp) as timeHour
, ...
from
another_table as t
group by
timeHour, ...
order by
timeHour, ...
Run Code Online (Sandbox Code Playgroud)
这种结构可能Spark SQL
吗?
hive ×3
java ×2
amazon-ec2 ×1
amazon-elb ×1
amazon-vpc ×1
apache-spark ×1
aws-cli ×1
docker ×1
gradle ×1
hadoop ×1
hdfs ×1
jax-rs ×1
jersey ×1
mysql ×1
scala ×1
spring-boot ×1
sql ×1