elasticsearch 通过Spark SQL将tableau与弹性搜索连接起来
我发现了一个关于通过配置单元SQL将Tableau连接到弹性搜索的讨论。我想知道是否有一种方法可以通过Spark SQL连接到弹性搜索,因为我对hive不太熟悉elasticsearch 通过Spark SQL将tableau与弹性搜索连接起来,elasticsearch,hive,tableau-api,apache-spark-sql,elasticsearch,Hive,Tableau Api,Apache Spark Sql,我发现了一个关于通过配置单元SQL将Tableau连接到弹性搜索的讨论。我想知道是否有一种方法可以通过Spark SQL连接到弹性搜索,因为我对hive不太熟悉 谢谢。我正试着这么做,也许我可以帮你提醒一下 首先,使用配置单元和thrift Server(0.13版)编译Spark SQL版本: export-MAVEN\u OPTS=“-Xmx2g-XX:MaxPermSize=512M-XX:ReservedCodeCacheSize=512M” mvn-Pyarn-Phadoop-2.4-
谢谢。我正试着这么做,也许我可以帮你提醒一下 首先,使用配置单元和thrift Server(0.13版)编译Spark SQL版本:
export-MAVEN\u OPTS=“-Xmx2g-XX:MaxPermSize=512M-XX:ReservedCodeCacheSize=512M”
mvn-Pyarn-Phadoop-2.4-Dhadoop.version=2.4.0-Phive-Phive-thiftserver-DskipTests干净包
您需要正确配置一个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--主机spark://master:7077 --驱动程序类路径$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 workers上移动elasticsearch-hadoop.jar,就像在hadoop上一样
如果您找到查找elasticsearch访问权限的方法,请告诉我;)
嗯,@NicholasY经过几次试验后,问题解决了。我采取了两个步骤:-
- 我没有使用正确的驱动程序进行连接。我使用的是Datasax企业驱动程序。然而,他们也有spark sql的驱动程序。我使用了windows 64位版本的驱动程序。使用MapR Hadoop配置单元和Hortonworks Hadoop配置单元驱动程序并不像我使用Apache配置单元那样有效
- 当我使用正确的驱动程序(来自DataStax)时,我意识到我的hive元存储和spark thrift服务器运行在同一个端口上。我将spark thrift服务器的端口更改为10001,并成功建立了连接
正确的驱动程序是,请试试这个。可以解决您的问题。我已将配置单元配置为使用MySQL metastore运行。我也在hive中创建了一个外部表。类路径设置为mySql connecter和elasticsearch hadoop快照jar。将相同的配置单元配置复制到SPARK_HOME/conf。使用-Phive和-Phive thriftserver构建SPARK。虚拟机上安装了Simba Spark SQL驱动程序。使用tableau的连接到其他数据库(ODBC)连接到spark thrift服务器。Spark服务器、thirft服务器和elastic search都在运行。我仍然无法连接到它。您能否提供更多的细节,说明可能的错误。Tableau和Spark返回的错误消息是什么?您是否在元存储上创建了一个表来映射ES<代码>创建由“org.elasticsearch.hadoop.hive.EsStorageHandler”TBLProperty存储的外部表mytable(值类型,…)('es.resource'='index/doctype','es.nodes'='node1','es.port'='9200','es.query'='?q=*')代码>经过几次试验后得到解决。我没有使用正确的驱动程序进行连接。当我使用正确的驱动程序(来自DataStax)时,我意识到我的hive元存储和spark thrift服务器运行在同一个端口上。我将spark thrift服务器的端口更改为10001,并成功建立了连接。@Nicholas您在哪里创建了此表。我在配置单元中创建了我的表,但在spark中看不到该表。@busybug91例如,您可以从spark SQL Shell或从Hive Shell.yesp创建它。我上周下载了这个驱动程序,并且能够连接到Spark SQL。但是,我看不到任何桌子。