当前位置: 首页 > 面试题库 >

在SQLClient中访问Hive表,但不能从Putty访问

鲁烨熠
2023-03-14
问题内容

我是Hive,MapReduce和Hadoop的新手。我正在使用Putty连接到配置单元表并访问表中的记录。因此,我要做的是-
打开Putty并输入主机名-vip.name.com然后单击Open。然后我输入了用户名和密码,然后输入了一些命令来访问Hive
sql。以下是我的工作清单

$ bash
bash-3.00$ hive
Hive history file=/tmp/rkost/hive_job_log_rkost_201207010451_1212680168.txt
hive> set mapred.job.queue.name=mdhi-technology;
hive> select * from table LIMIT 1;

所以我的问题是

还有其他方法可以在任何Sql客户端(例如Sql Developer或Squirel SQL Client)中执行相同的操作,而不是从命令提示符处执行。
如果有的话,考虑到我vip.name.com从Putty登录时的示例,执行此操作的分步过程是什么?

同样,如果我需要在Windows机器中通过JDBC程序进行操作,那我该怎么做。借助JDBC程序,我将如何访问Hive表并获取结果。据我所知,如何使用oracle表做到这一点。但是我唯一的困惑是,因为我正在使用此主机名vip.name.com登录Putty。我希望这个问题很清楚。任何建议将不胜感激。

简而言之,我的问题是:是否可以在任何SQLClient中执行相同的操作,而不是从Putty中进行日志记录?

更新-

我尝试按照马克建议的方式做。但是我总是在-Hive: Could not establish connection to vip.host.com:10000/default: java.net.ConnectionException: Connection timed out: connect


问题答案:

您对Putty所做的工作是将SSH连接到已安装并设置Hive的计算机中。然后,您从Hive命令行发出Hive查询。这是发出Hive查询的一种方法。还有其他一些不需要SSH的方法,您可能需要的一种方法是通过JDBC进行连接。

下面是描述如何连接到通过JDBC使用SQuirreL
Amazon的EMR集群上的蜂巢安装的文章。该文章似乎是特定于Amazon的,但并非如此。只要您在群集的一个节点上运行了Hive服务器,并且没有防火墙阻止客户端计算机与一个正在运行的Hive之间的连接,您就应该能够连接。

您可能需要牢记与上述链接有关的几件事:

  • 您可以忽略步骤3,除非您使用EMR,否则它会要求您创建SSH隧道。
  • 在您的情况下,您在连接URI中输入的端口可能会有所不同。用运行Hive的计算机的标准域名替换localhost。要查明Hive服务器正在侦听哪个端口,您可以查看log目录中的Hive服务器保姆日志文件(其位置取决于您的安装)或运行简单的netstat -a命令。我相信10000是默认端口号,因此直接尝试10000可能有意义。


 类似资料:
  • 问题内容: 因此,从pyspark运行时,我会输入(不指定任何上下文): ..而且效果很好。 但是,当我从运行脚本时,例如 我把以下内容 但这给我一个错误 pyspark.sql.utils.AnalysisException:u’未找到表:experian_int_openings_latest_orc;’ 所以它没有看到我的桌子。 我究竟做错了什么?请帮忙 PS Spark版本在Amazon

  • 我正在尝试使用HttpClient从我的代码访问网站: 这是我得到的错误: 我从浏览器检查了证书,它似乎是正确的,具有正确的名称。不确定它从哪里拾取。 如果我使用代理,代码确实有效。在StackOverflow上遇到了很多类似的问题,但在大多数情况下,服务器处于用户的控制之下。就我而言,这是一个已经存在的网站。我只有这个网站才有这个问题。 会不会是我的环境有问题? 更新: 我发现两个网站(和)都有

  • 使用的openJDK版本是: STS4智能感知错误

  • 在同一个openshift项目中,我在POD1中有一个application1(APP1),在POD2中有另一个application(APP2)。 这两个应用程序都提供REST API服务。这两个应用程序可以使用两种不同的openshift路线访问。 从PAAS外部访问这两个应用程序(openshift)工作正常:这意味着使用来自PAAS外部客户端的openhsft路由执行到APP1/APP2的

  • 问题内容: 我有两个包。我要从第一个包中导入的类声明为PUBLIC。尽管如此,当我从第二个软件包测试文件时,它向我显示了如下编译错误: PUBLICclass在mypackage中不是公共的;无法从外部包访问 我试图从第一个程序包中向该类添加一个公共构造函数,但没有任何区别。 你有什么想法?我使用Netbeans 7。 第一个包中的类如下所示: 问题答案: 让我猜猜 您最初的课堂声明不是公开的,然

  • 问题内容: 我在HDFS中有一些数据,我需要使用python访问该数据,有人可以告诉我如何使用python从蜂巢访问数据吗? 问题答案: 您可以使用hive库从python访问hive,因为要从hive导入ThriveHive导入hive类 下面的例子