hadoop - 在 GCP 上连接 b/w R studio server pro 和 hive

标签 hadoop hive google-cloud-platform google-cloud-dataproc rstudio-server

这不是与编程相关的问题,请耐心等待。

我目前在 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。之后它应该看起来像这样 enter image description here

根据您的要求和位置设置数据处理集群。然后通过 SSH 进入浏览器窗口或通过 gcloud 命令行运行。当它提示在 Cloud Shell 中运行时,只需按回车键。 enter image description here

进入 window/gcloud 命令行后,为 R 服务器添加一个用户:

 sudo adduser rstudio 

为其设置密码。记住它。

接下来访问 R studio 网站,链接:https://dailies.rstudio.com/然后点击 Ubuntu for R studio server。复制链接地址enter image description here

回到你的窗口/命令行并安装它。像这样在 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  

enter image description here

我们将从我们的 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 中的表是否存在。

enter image description here

现在转到 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")

enter image description here

现在在右侧,您将在环境旁边看到一个名为“连接”的新选项卡。这是您的 Spark 集群连接,单击它,它应该会显示来自 Hive 的 yourtablename

关于hadoop - 在 GCP 上连接 b/w R studio server pro 和 hive,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50325464/

相关文章:

hadoop - totalOrderPartitioner 中的拆分数

amazon-web-services - 在具有默认配置的EMR群集模式下会发生什么?

hive 不会更改 Parquet 架构

hadoop - HIVE 1.x ACID 功能 - 更新和删除不起作用

google-analytics - BigQuery 和 Google 分析兼容性问题

google-cloud-platform - 将我自己的 SSL 证书与 Google Cloud Run(完全托管)一起用于 SSL 固定

java - Hadoop 中的动态节点

hadoop - MR3上的HIVE:错误[main] client.ClientLocalResourceUtils $:getUriFileStatuses()中的无效URI $ {liburis}

google-cloud-platform - 无法使用 GPU 创建 GCP 深度学习 VM 实例

hadoop - hbase崩溃后数据如何存储到primary