小编Wil*_*emM的帖子

Elastic Search:聚合、按字段计数

我将这些数据插入到弹性搜索中:

[
  { "name": "Cassandra Irwin",  "location": "Monzon de Campos" ..     },
  { "name": "Gayle Mooney",     "location": "Villarroya del Campo" .. },
  { "name": "Angelita Charles", "location": "Revenga de Campos" ..    }, 
  { "name": "Sheppard Sweet",   "location": "Santiago del Campo" ..   },
  ..
  ..
Run Code Online (Sandbox Code Playgroud)

旁注:重现: 1)下载: http: //wmo.co/20160928_es_query/bulk.json 2)执行:curl -s -XPOST ' http://localhost:9200/testing/external/_bulk?pretty ' --数据二进制@bulk.json

问题:获取每个“位置”有多少条记录的计数。

解决方案 1:桶聚合..没有给出期望的结果

curl -s -XPOST 'localhost:9200/testing/_search?pretty' -d '
{
  "aggs": {  "location_count": { "terms": { "field":"location",   "size":100 }}}
}' | jq  '.aggregations'
Run Code Online (Sandbox Code Playgroud)

结果: …

json elasticsearch

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

无法让pyspark作业在hadoop群集的所有节点上运行

摘要:我无法让我的python-spark作业在hadoop集群的所有节点上运行。我已经安装了hadoop'spark-1.5.2-bin-hadoop2.6'的火花。启动java spark作业时,负载分布在所有节点上,而启动python spark作业时,只有一个节点承担负载。

设置

  • 为xen虚拟服务器上运行的4个节点配置的hdfs和yarn:nk01(namenode),nk02,nk03,nk04
  • 版本:jdk1.8.0_66,hadoop-2.7.1,spark-1.5.2-bin-hadoop2.6
  • hadoop已安装所有4个节点
  • 仅在nk01上安装了spark

我将一堆古腾堡文件(谢谢约翰内斯!)复制到hdfs上,并尝试使用Java和python在文件的子集(以'e'开头的文件)上进行单词计数:

Python

使用自制的python脚本进行字数统计:

/opt/spark/bin/spark-submit wordcount.py --master yarn-cluster \
    --num-executors 4 --executor-cores 1
Run Code Online (Sandbox Code Playgroud)

Python代码分配了4个部分:

tt=sc.textFile('/user/me/gutenberg/text/e*.txt',4)
Run Code Online (Sandbox Code Playgroud)

在60秒内在4个节点上加载:

加载

Java的

使用在spark发行版中找到的JavaWordCount

/opt/spark/bin/spark-submit --class JavaWordCount --master yarn-cluster \
    --num-executors 4 jwc.jar '/user/me/gutenberg/text/e*.txt'
Run Code Online (Sandbox Code Playgroud)

加载

结论:java版本将其负载分布在整个群集中,而python版本仅在1个节点上运行。

问题:如何同时获得python版本以在所有节点之间分配负载?

hadoop apache-spark pyspark

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

标签 统计

apache-spark ×1

elasticsearch ×1

hadoop ×1

json ×1

pyspark ×1