1

我是 Hive、MapReduce 和 Hadoop 的新手。我正在使用 Putty 连接到 hive 表并访问表中的记录。所以我所做的是 - 我打开了 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 客户端)中执行相同的操作,而不是从命令提示符处执行。如果它在那里,那么考虑到我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

4

1 回答 1

1

你用 Putty 做什么是通过 SSH 连接到安装和设置 Hive 的机器。然后,您将从 Hive 命令行发出 Hive 查询。这是发出 Hive 查询的一种方式。还有其他不需要 SSH 的方法,您可能需要的一种方法是通过 JDBC 连接。

是一篇文章,描述了如何使用 SQuirreL 通过 JDBC 连接到 Amazon EMR 集群上的 Hive 安装。这篇文章可能看起来是亚马逊特有的,但事实并非如此。只要您在集群的一个节点上运行 Hive 服务器,并且没有防火墙阻碍客户端计算机和一台运行 Hive 之间的连接,您就应该能够连接。

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

  • 您可以忽略步骤 3,它要求您创建 SSH 隧道,除非您使用 EMR。
  • 您在连接 URI 中输入的端口可能与您的情况不同。将 localhost 替换为运行 Hive 的机器的完全限定域名。要找出 Hive 服务器正在侦听的端口,您可以查看日志目录中存在的 Hive 服务器保姆日志文件(其位置取决于您的安装)或运行一个简单的netstat -a命令。我相信 10000 是默认端口号,因此直接尝试 10000 可能有意义。
于 2012-07-01T16:19:31.697 回答