我正在本地运行spark并希望访问位于远程Hadoop集群中的Hive表.
我可以通过SPARK_HOME下的直线访问蜂巢表
[ml@master spark-2.0.0]$./bin/beeline 
Beeline version 1.2.1.spark2 by Apache Hive
beeline> !connect jdbc:hive2://remote_hive:10000
Connecting to jdbc:hive2://remote_hive:10000
Enter username for jdbc:hive2://remote_hive:10000: root
Enter password for jdbc:hive2://remote_hive:10000: ******
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/ml/spark/spark-2.0.0/jars/slf4j-log4j12-1.7.16.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
16/10/12 19:06:39 INFO jdbc.Utils: Supplied authorities: remote_hive:10000
16/10/12 19:06:39 INFO jdbc.Utils: Resolved authority: remote_hive:10000
16/10/12 19:06:39 INFO jdbc.HiveConnection: Will try to open client transport …我正在使用Apache Spark 2.1.1,我在$SPARK_HOME/conf文件夹中放了以下hive-site.xml :
<?xml version="1.0"?>
<configuration>
<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://mysql_server:3306/hive_metastore?createDatabaseIfNotExist=true</value>
  <description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
  <name>javax.jdo.option.ConnectionDriverName</name>
  <value>com.mysql.jdbc.Driver</value>
  <description>Driver class name for a JDBC metastore</description>
</property>
<property>
  <name>javax.jdo.option.ConnectionUserName</name>
  <value>hive</value>
  <description>username to use against metastore database</description>
</property>
<property>
  <name>javax.jdo.option.ConnectionPassword</name>
  <value>password</value>
  <description>password to use against metastore database</description>
</property>
<property>
  <name>hive.metastore.schema.verification</name>
  <value>false</value>
  <description>password to use against metastore database</description>
</property>
<property>
  <name>hadoop.tmp.dir</name>
  <value>${test.tmp.dir}/hadoop-tmp</value>
  <description>A base for other temporary directories.</description>
</property>
<property>
  <name>hive.metastore.warehouse.dir</name>
  <value>hdfs://hadoop_namenode:9000/value_iq/hive_warehouse/</value>
  <description>Warehouse Location</description>
</property>
</configuration>
当我启动thrift服务器时,我的MySQL数据库上创建了Metastore模式但未使用,而是使用了Derby.
在thrift服务器日志文件中找不到任何错误,唯一引起我注意的是它尝试在first( …
我正在使用Spark 2.3节俭服务器进行临时Sql查询。我的spark参数在spark-defaults.conf文件中设置如下:
spark.executor.memory 24G
spark.executor.cores 40
spark.executor.instances 3
但是,当我检查spark web ui时,如图所示,spark核心与活动任务并不相等:

活动任务的数量如何大于分配的核心?有任何想法吗?谢谢!
我们正在使用Spark Thrift Server对Spark EMR集群运行SQL查询,并且我们看到,当SQL查询(转换为Spark作业)完成时,位于其下方的shuffle文件/mnt/yarn/usercache/root/appcache不会被清除。这No space left on device最终导致在运行几个查询之后。
如果我们停止Spark Thrift Server,则将清理随机文件。有没有什么方法可以使清理不仅在应用程序停止之后运行,而且在每个作业运行之后运行?我们尝试设置以下参数
yarn.nodemanager.localizer.cache.cleanup.interval-ms=6000
yarn.nodemanager.localizer.cache.target-size-mb=1000
但是文件仍未清除。知道为什么会发生以及如何避免它吗?
shuffle amazon-emr hadoop-yarn apache-spark spark-thriftserver
我正在 EMR 上运行 Spark Thrift 服务器。我通过以下方式启动 Spark Thrift 服务器:
  sudo -u spark /usr/lib/spark/sbin/start-thriftserver.sh --queue interactive.thrift --jars /opt/lib/custom-udfs.jar
请注意,我有一个客户 UDF jar,我想将其添加到 Thrift Server 类路径,因此我在上面的命令中添加了 --jars /opt/lib/custom-udfs.jar。
进入 EMR 后,我发出以下命令来连接到 Spark Thrift 服务器。
beeline -u jdbc:hive2://localhost:10000/default
然后我就可以发出像显示数据库这样的命令。但是如何访问自定义 UDF?我认为通过在 Thrift Server 启动脚本中添加--jars选项,也可以添加供 Hive 资源使用的 jar。
我现在访问自定义 UDF 的唯一方法是将客户 UDF jar 添加到 Hive 资源
add jar /opt/lib/custom-udfs.jar
然后创建UDF的函数。
问题: 有没有一种方法可以自动配置自定义 UDF jar,而无需每次都将 jar 添加到 Spark 会话?
谢谢!
我想使用 JDBC 连接到 Delta,并想在本地模式下运行 Spark Thrift Server (STS) 以进行测试。
我使用以下命令启动 STS:
$SPARK_HOME/sbin/start-thriftserver.sh \
  --conf spark.sql.extensions=io.delta.sql.DeltaSparkSessionExtension \
  --conf spark.sql.catalog.spark_catalog=org.apache.spark.sql.delta.catalog.DeltaCatalog \
  --packages 'io.delta:delta-core_2.12:1.0.0'
尝试使用 beeline 连接时出现以下错误:
Beeline version 2.3.7 by Apache Hive
beeline> !connect jdbc:hive2://localhost:10000
Connecting to jdbc:hive2://localhost:10000
Enter username for jdbc:hive2://localhost:10000:
Enter password for jdbc:hive2://localhost:10000: 
Error: Could not open client transport with JDBC Uri: jdbc:hive2://localhost:10000: Failed to open new session: org.apache.spark.SparkException: Cannot find catalog plugin class for catalog 'spark_catalog': org.apache.spark.sql.delta.catalog.DeltaCatalog (state=08S01,code=0)
查看 thrift 服务器日志,我没有看到任何明显的错误,并且 delta jar 文件的加载也没有任何错误。
Spark Command: /Users/sandbox/.sdkman/candidates/java/8.0.282.j9-adpt/bin/java -cp …任何人都可以帮助我启动 spark thrift 服务器吗?我在独立模式下运行我的脚本,我想在我的商业智能工具中获取数据。
为了做到这一点,我需要启动节俭服务器。我尝试运行 shell 脚本:
$SPARK_HOME/sbin/start-thriftserver.sh
但我收到一个错误:
错误“ps 未知选项--0”
apache-spark ×6
hive ×3
amazon-emr ×2
delta-lake ×1
hadoop-yarn ×1
metastore ×1
mysql ×1
shuffle ×1