标签: qubole

如何优雅地杀死hadoop工作/拦截`hadoop job -kill`

我的Java应用程序在mapper上运行,并使用Qubole API创建子进程.应用程序存储子qubole queryIDs.我需要在退出之前拦截kill信号并关闭子进程.hadoop job -kill jobIdyarn application -kill applicationId命令以SIGKILL方式查杀,我不知道如何拦截关机.是否有可能以某种方式拦截作业终止或配置hadoop以给予应用程序机会优雅地关闭?

应用程序在本地运行时使用ShutdownHook成功拦截关闭,而不是在映射器容器中并且能够杀死它的子进程.

请建议如何在mapper中运行时拦截关机,或者我做错了什么?

java hadoop mapreduce qubole

6
推荐指数
1
解决办法
1090
查看次数

Hive 中的分层抽样

下面返回按 的值分层10%AX列的样本X

  select A, X from(
  select A, 
      count(*) over (partition by X) as cnt, 
      rank() over (partition by X order by rand()) as rnk
      from my_table) table 
  where rnk <= cnt*0.1
Run Code Online (Sandbox Code Playgroud)

换句话说,如果X取值,[X0, X1]它返回以下的并集:

  • 10% 的行 X = X0
  • 10% 的行 X = X1

如何按多列(例如,)的元组值对查询进行分层?XY

例如,如果X采用 values[X0, X1]而 Y 采用 values [Y0, Y1],我想得到一个样本,它是以下各项的并集:

  • 10% 的行在哪里X = X0和 …

sql hive qubole

5
推荐指数
1
解决办法
3488
查看次数

将Spark DataFrame数据划分为单独的文件

我从s3文件输入以下DataFrame,需要将数据转换为以下所需的输出.我使用Spark版本1.5.1和Scala,但可以用Python改为Spark.欢迎任何建议.

DataFrame输入:

name    animal   data
john    mouse    aaaaa
bob     mouse    bbbbb
bob     mouse    ccccc
bob     dog      ddddd
Run Code Online (Sandbox Code Playgroud)

期望的输出:

john/mouse/file.csv
bob/mouse/file.csv
bob/dog/file.csv

terminal$ cat bob/mouse/file.csv
bbbbb
ccccc

terminal$ cat bob/dog/file.csv
ddddd
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的现有Spark Scala代码:

val sc = new SparkContext(new SparkConf())
val sqlc = new org.apache.spark.sql.SQLContext(sc)
val df = sqlc.read.json("raw.gz")
val cols = Seq("name", "animal")
df.groupBy(cols.head, cols.tail: _*).count().take(100).foreach(println)
Run Code Online (Sandbox Code Playgroud)

电流输出:

[john,mouse,1]
[bob,mouse,2]
[bob,dog,1]
Run Code Online (Sandbox Code Playgroud)

我现有代码的一些问题是groupBy返回一个GroupedData对象,我可能不想对该数据执行count/sum/agg函数.我正在寻找一种更好的技术来分组和输出数据.数据集非常大.

scala amazon-s3 dataframe apache-spark qubole

4
推荐指数
1
解决办法
1545
查看次数

自动扩展EMR-是否需要?我应该只使用EC2吗?我应该只使用Qubole吗?

为了减少配置时间,我们决定保留一个具有5个实例的专用EMR集群(我们预计需要大约5个).如果我们需要更多,我们认为我们需要实现某种自动缩放.

我对EMR一点都不熟悉 - 它是否支持自动缩放?我在文档中找到了这个:http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-manage-resize.html

这是寻找自动缩放的正确位置,还是我误解了"调整大小"的含义.我已经读过EMR的一个好处是"按需处理",我认为它在ec2实例之间分配负载而不指定多少个实例,所以这给我的印象就是它自己对ec2实例进行扩展,这意味着我们不需要自我修改.我误解了"按需处理"的含义吗?

如果我提供的调整大小链接适合我正在尝试做的事情,有没有人有确定何时调整大小的经验?该文档仅描述了如何但不是,例如,如何为何时调整大小设置警报.我已经使用了他们的常规自动缩放服务,它允许你根据某些条件调整大小,但我在这里没有看到.

我仍然不确定自动调节EMR是否是一个坏主意 - 它是否过于复杂(因为像Qubole这样的整个公司提供了这个)或者可能不是很有用,因为EMR已经使用了它需要的任何计算能力?我不太了解EMR究竟提供了什么,所以也许这就是为什么我感到困惑.

hadoop amazon-web-services emr autoscaling qubole

1
推荐指数
1
解决办法
1775
查看次数