0

我找到了一篇讨论通过 Hive SQL 将 Tableau 连接到 Elastic Search的帖子。我想知道是否有办法通过 Spark SQL 连接到 Elastic Search,因为我对 hive 不太熟悉。

谢谢。

4

3 回答 3

1

@busybug91,

正确的驱动程序在这里,请尝试使用这个。可以解决你的问题。

于 2015-03-01T19:43:13.247 回答
1

@NicholasY 经过几次试验,它得到了解决。我采取的两个步骤:-

  • 我没有使用正确的驱动程序进行连接。我正在使用datastax企业驱动程序。但是,他们也有 spark sql 的驱动程序。我使用的是 Windows 64 位版本的驱动程序。使用 MapR Hadoop Hive 和 Hortonworks Hadoop Hive 驱动程序没有像我使用 Apache hive 那样工作。
  • 当我使用正确的驱动程序(来自 DataStax)时,我意识到我的配置单元元存储和 spark-thrift-server 在同一个端口上运行。我将 spark-thrift-server 的端口更改为 10001 并建立了成功的连接。

一个新问题:我在 hive 中创建了外部表。我也可以查询数据。我将 hive-metastore 作为服务启动。但是,正如在此链接中提到的, 我无法在 Spark SQL 的配置单元中看到我的表。除非我从 hive 元存储中看到表,否则我将 Tableau 与 Spark Sql 的连接毫无用处!当我显示表格时;在 spark sql 中(通过 spark-sql shell 和 hive metastore 作为服务同时运行),它运行一个作业,它也给出了完成时间,但现在是表名。我通过 localhost:4040 对其进行了监控,我看到输入和输出大小为 0.0。我相信我无法在 spark sql 中从 hive 获取表,这就是为什么在从 Tableau 建立到 spark sql 的连接后我看不到任何表的原因。

编辑 我将元存储从 derby 更改为 mysql,用于 hive 和 spark sql。

于 2015-02-27T19:17:30.710 回答
0

我正在尝试这样做,所以也许我可以帮助您警告一些事情。

首先,使用 Hive 和 thrift Server (ver 0.13) 编译 Spark SQL 版本:

export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m"

mvn -Pyarn -Phadoop-2.4 -Dhadoop.version=2.4.0 -Phive -Phive-thriftserver -DskipTests clean package

您需要正确配置 hive-site.xml 以使用 Hive 并将其复制到 spark/conf 文件夹。

然后,您必须使用 elasticsearch-hadoop jar 路径设置 $CLASSPATH。

当心 !Spark SQL 1.2.0 不适用于 elasticsearch-hadoop-2.0.x。您必须使用此处提供的 elasticsearch-hadoop-2.1.0-Beta4 或 BUILD-SNAPSHOT 。

要完成,您必须使用类似的东西运行 thriftserver:

./start-thriftserver.sh --master spark://master:7077 --driver-class-path $CLASSPATH --jars /root/spark-sql/spark-1.2.0/lib/elasticsearch-hadoop-2.1.0.Beta4.jar --hiveconf hive.server2.thrift.bind.host 0.0.0.0 --hiveconf hive.server2.thrift.port 10000

它适用于我,但仅适用于小型 docType(5000 行),数据托管似乎不起作用。我正在寻找一种解决方案来在每个 Spark 工作人员上移动 elasticsearch-hadoop.jar,就像ryrobes为 Hadoop 所做的那样。

如果您找到一种方法来定位对弹性搜索的访问,请告诉我;)

高温下,

于 2015-02-24T17:44:53.620 回答