所以我有两台机器,我正在尝试用另一台机器连接到hive服务器。我只需输入
$hive -h<IP> -p<PORT>
然而,它说我需要安装hadoop。我只想远程连接。那为什么我需要hadoop?有没有办法绕过这个?
答案 0 :(得分:2)
hive
程序取决于hadoop
程序,因为它通过读取HDFS,启动map-reduce作业等工作。(在Hive中,与典型的数据库服务器不同,命令行接口实际上执行所有查询处理,将其转换为底层实现;因此您通常不会以您期望的方式运行“Hive服务器”。)这并不意味着您需要实际安装此计算机上的Hadoop集群,但您需要安装基本软件才能连接到Hadoop集群。
绕过这个的一种方法是在具有Hadoop基础结构的盒子上运行Hive JDBC / Thrift服务器 - 也就是说,使用命令行选项运行hive
程序以将其作为Hive-server运行在所需的端口等 - 然后使用您最喜欢的支持JDBC的SQL客户端连接到它。这更接近于典型DBMS的数据库服务器模型(尽管它仍然不同,因为它仍然保留了通过此服务器不的其他hive
连接的可能性)。 (注意:设置起来有点棘手。我不确定它现在是否比以前更容易。)
这可能是显而易见的,但为了完整性:绕过此限制的另一种方法是使用ssh
,并在具有Hadoop基础结构的框上实际运行hive
。 : - )
答案 1 :(得分:0)
较新的Hive CLI实际上允许连接到远程Thrift服务器。请参阅https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Cli的开头。远程计算机应运行Hive服务器以使其正常工作。
您不需要本地邮箱成为Hadoop集群的一部分。但是,您可能需要Hadoop程序/ jar来为Hive工作。如果从标准存储库安装Hive,它应该包含Hadoop发行版。