Hadoop 连接GCP上的studio server pro和配置单元

Hadoop 连接GCP上的studio server pro和配置单元,hadoop,hive,google-cloud-platform,google-cloud-dataproc,rstudio-server,Hadoop,Hive,Google Cloud Platform,Google Cloud Dataproc,Rstudio Server,这不是一个与编程相关的问题,请耐心听我说 我目前在GCP上设置了两个实例——一个是R studio server PRO,另一个是我的带有Hive DB的集群。我希望使用rstudio server pro访问配置单元中的数据库。两者都在GCP上运行 有谁能在这方面指导我吗?(我看过关于rstudio desktop->hive connection以及从spark集群中运行rstudio server的文章,但我必须将rstudio server PRO链接到hive db,两者都在GCP:O

这不是一个与编程相关的问题,请耐心听我说

我目前在GCP上设置了两个实例——一个是R studio server PRO,另一个是我的带有Hive DB的集群。我希望使用rstudio server pro访问配置单元中的数据库。两者都在GCP上运行


有谁能在这方面指导我吗?(我看过关于rstudio desktop->hive connection以及从spark集群中运行rstudio server的文章,但我必须将rstudio server PRO链接到hive db,两者都在GCP:O上运行)

供将来参考:R studio-Dataproc-

在本例中,我将数据从HiveDB推送到Spark中,并使用SparkyR包在同一集群内的R studio server中建立连接。如果希望直接连接到Hive,还可以检查“Hive-R-JDBC”连接

GCP在计算引擎上提供了R studio server PRO,但并不经济。我用了大约8小时,每周大约5天的账单是21美元,而你现在看到的是>100美元。我希望以下步骤将对您有所帮助:

R studio在端口8787上运行。您必须将此端口添加到防火墙网络规则中。滚动到GCP中的汉堡包图标,向下滚动到VPC网络,单击防火墙规则并添加8787。之后应该是这样的

根据您的要求和位置设置dataproc群集。然后SSH进入浏览器窗口或通过gcloud命令行运行。当提示在CloudShell中运行时,只需按enter键

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

 sudo adduser rstudio 
为它设置密码。记住它

接下来进入R studio网站,链接:并单击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(正在运行)。 现在导航到GCP中的Compute Engine选项卡,并复制主集群的外部IP(第一个)。现在打开新浏览器并输入:

http://<yourexternalIPaddress>:8787 

我们将从HDFS(即谷歌云存储)将数据导入Hive。在这里,我们只是将数据从bucket复制到配置单元表中。输入命令:

 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>';
这是指向配置单元中要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")
库(年)
图书馆(dplyr)
SparkyR::spark_安装()
#配置
Sys.setenv(SPARK_HOME=“/usr/lib/SPARK”)

配置您如何在RStudio中运行Spark?您需要修改
hive site.xml
以指向您的配置单元数据库(例如,只需从Dataproc集群复制
hive site.xml
)。同一VPC网络上的GCE虚拟机确实可以相互通信。顺便说一句,您可能需要查看RStudio init操作。您可能需要设置
$SPARK\u HOME
,它才能工作:。以下是EMR的说明,但安装后的部分应类似:hi@KarthikPalaniappan。谢谢你的回答。他们很有帮助,因为这让我找到了更好的解决方案。我可以通过SparkyR包spark_connect将我的表格从蜂巢放到spark shell>中,然后在我的rstudio环境中获得这些表格。从集群内运行r studio server比运行google cloud r server PRO更经济划算。再次感谢@9减4你能根据这些评论给出一个答案吗?我认为社区最好能有一个答案,说明从dataproc集群运行R studio比您最初要求的更高效,并说明如何实现。@Lefteris这是一个很好的建议!希望能有帮助
    spark.catalog.listTables.show 
  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")