这不是与编程相关的问题,请耐心等待。
我目前在 GCP 上设置了两个实例——一个是 R studio server PRO,另一个是我的 Hive DB 集群。我希望使用我的 rstudio server pro 访问配置单元中的数据库。两者都在 GCP 上运行。
有人可以指导我吗? (我看过有关 rstudio 桌面的文章 ---> hive 连接以及从 spark 集群中运行 rstudio-server 的文章,但我必须将 Rstudio server PRO 链接到 hive db,两者都在 GCP 上运行:O)
最佳答案
供将来引用:R studio - Dataproc -
在这种特殊情况下,我将数据从 HiveDB 推送到 Spark 并使用 sparklyr 包在同一集群内的 R studio 服务器中建立连接。如果您希望直接与 Hive 连接,您还可以检查“Hive-R-JDBC”连接。
GCP 在计算引擎上提供 R studio server PRO,但它的成本效益不高。我已经使用了大约 8 小时,并被收取了大约 21 美元的费用。每周 5 天,您的收入 > 100 美元。希望以下步骤对您有所帮助:
R studio 在端口 8787 上运行。您必须将此端口添加到防火墙网络规则中。滚动到 GCP 中的汉堡包图标并向下滚动到 VPC 网络,单击防火墙规则并添加 8787。之后它应该看起来像这样
根据您的要求和位置设置数据处理集群。然后通过 SSH 进入浏览器窗口或通过 gcloud 命令行运行。当它提示在 Cloud Shell 中运行时,只需按回车键。
进入 window/gcloud 命令行后,为 R 服务器添加一个用户:
sudo adduser rstudio
为其设置密码。记住它。
接下来访问 R studio 网站,链接:https://dailies.rstudio.com/然后点击 Ubuntu for R studio server。复制链接地址
回到你的窗口/命令行并安装它。像这样在 sudo wget 后面粘贴链接地址:
sudo wget https://s3.amazonaws.com/rstudio-ide-build/server/trusty/amd64/rstudio-server-1.2.650-amd64.deb
然后运行:
sudo apt-get install gdebi-core
后跟:注意这是上面链接中的 r 版本。
sudo gdebi rstudio-server-1.2.650-amd64.deb
按 yes 接受,您应该会看到消息 R server active (running)。 现在导航到 GCP 中的 Compute Engine 选项卡并复制主集群(第一个)的外部 IP。现在打开一个新的浏览器并输入:
http://<yourexternalIPaddress>:8787
这应该打开 R studio 服务器,现在输入使用的 id 作为“rstudio”和您之前设置的密码。现在您已经启动并从您的数据处理集群运行 R studio 服务器。
** hive **:
回到终端输入
beeline -u jdbc:hive2://localhost:10000/default -n *myusername*@*clustername-m* -d org.apache.hive.jdbc.HiveDriver
我们将从我们的 HDFS 即 Google 云存储中将数据导入 Hive。在这里,我们只是将数据从我们的存储桶复制到我们的配置单元表中。输入命令:
CREATE EXTERNAL TABLE <giveatablename>
(location CHAR(1),
dept CHAR(1),
eid INT,
emanager VARCHAR(6))
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LOCATION 'gs://<yourgooglestoragebucket>/<foldername>/<filename.csv>';
现在您在 Hive yourtablename 中有了一个表,其中包含功能 -> location、dept、eid 和 emanager -> 从你的 google 云存储中的 csv 文件 -> gs ://
现在退出配置单元 (CTRL+Z) 并输入:
ln -s /etc/hive/conf/hive-site.xml /etc/spark/conf/hive-site.xml
这是一个指向您在 hive 中的配置文件的链接。这样做比将文件复制到该位置更好。因为可能会有混淆。
Spark :
通过键入以下内容登录到 spark-shell:
spark-shell
现在输入:
spark.catalog.listTables.show
检查 HiveDb 中的表是否存在。
现在转到 Rstudio 服务器浏览器并运行以下命令:
library(sparklyr)
library(dplyr)
sparklyr::spark_install()
#config
Sys.setenv(SPARK_HOME="/usr/lib/spark")
config <- spark_config()
#connect
sc <- spark_connect(master="yarn-client",config = config,version="2.2.1")
现在在右侧,您将在环境旁边看到一个名为“连接”的新选项卡。这是您的 Spark 集群连接,单击它,它应该会显示来自 Hive 的 yourtablename。
关于hadoop - 在 GCP 上连接 b/w R studio server pro 和 hive,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50325464/