上下文
我想将Spark 2用于一些基本的ETL,但是我们的Hadoop管理员具有非常不同的优先级,并且暂时无法安装它。
问题
简单地说,我想知道是否可以将运行在本地计算机上的Spark会话配置为:
我没有服务器root用户访问权限。管理员策略禁止这些系统直接相互通信,但是我的本地计算机可以读取-或写入-。
这些先前回答的问题并未提供有效的解决方案:
非常感谢您的帮助! (即使只是说:“不,您必须在Hadoop群集上安装Spark才能读取其数据。”我只需要知道。)
答案 0 :(得分:1)
恐怕你能做到。您可以尝试的一件事是通过jdbc连接连接配置单元,并在本地Spark集群中读取它。您需要打开对端口10000的防火墙访问。
val sc = spark.sparkContext
val sqlContext = spark.sqlContext
val driverName = "org.apache.hive.jdbc.HiveDriver"
Class.forName(driverName)
val df = spark.read
.format("jdbc")
.option("url", "jdbc:hive2://localhost:10000/default")
.option("dbtable", "clicks_json")
.load()
如果您有繁琐的身份验证
使用jdbc:hive2://server.dom.com:10000/mydatabase;user=someuser@PRINCIPAL.DOM.COM;principal=hive/principal.dom.com@PRINCIPAL.DOM.COM