有一台电脑需要通过beeline的方式连接到CDH cloudera hadoop集群,提示报错。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有一台电脑需要通过beeline的方式连接到CDH cloudera hadoop集群,提示报错。相关的知识,希望对你有一定的参考价值。

目前客户端服务器已经开通了3000-60000的端口访问权限,请问还需要开通哪些权限。谢谢!

17/11/14 09:19:40 WARN conf.HiveConf: DEPRECATED: Configuration property hive.metastore.local no longer has any effect. Make sure to provide a valid value for hive.metastore.uris if you are connecting to a remote metastore.

Logging initialized using configuration in jar:file:/opt/cloudera/parcels/CDH-5.3.1-1.cdh5.3.1.p0.5/lib/hive/lib/hive-common-0.13.1-cdh5.3.1.jar!/hive-log4j.properties
Exception in thread "main" java.lang.RuntimeException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient
at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:367)
at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:689)
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:633)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.hadoop.util.RunJar.main(RunJar.java:212)
Caused by: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient
at org.apache.hadoop.hive.metastore.MetaStoreUtils.newInstance(MetaStoreUtils.java:1426)
at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.<init>(RetryingMetaStoreClient.java:63)
at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.getProxy(RetryingMetaStoreClient.java:73)
at org.apache.hadoop.hive.ql.metadata.Hive.createMetaStoreClient(Hive.java:2562)
at org.apache.hadoop.hive.ql.metadata.Hive.getMSC(Hive.java:2581)
at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:361)
... 7 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.apache.hadoop.hive.metastore.MetaStoreUtils.newInstance(MetaStoreUtils.java:1424)
... 12 more
Caused by: MetaException(message:Could not connect to meta store using any of the URIs provided. Most recent failure:

参考技术A u 参考技术B 不懂 你在找找高手吧 参考技术C 请专业人员远程看看

ssh反向连接配置

需求

今天同事提出这样一个需求,我们在客户那放了一台linux服务器,这个服务器在局域网内,但是我们又需要通过ssh连接到此服务器进行调试,但是又不能通过端口映射的方式来操作。所以就需要通过ssh反向连接的方式来进行操作。

ssh反向连接

ssh反向连接即某一台主机在局域网内,但是我们有需要连接它的时候,这个时候可以让这台主机连接到一台公网的服务器,并把它的ssh端口映射到公网这台服务器的某一端口,然后我们连接公网服务器的指定端口既可以连接到局域网这台主机。
这是之前的状态:

这是做了ssh反向连接之后的状态:

配置方法

  1. 在局域网主机执行如下命令
ssh -NfR 2022:localhost:22 root@192.168.200.222    #连接到192.168.200.222这台公网主机,然后把自己的22端口映射到公网主机的2022端口,-N:不执行任何命令,用于进行端口转发;-f:后台执行;-R:将远程主机的某个端口转发到本地的指定端口,如果是特权端口,则只能通过root登录才能转发

注意ssh两个端口位置代表的意义:
ssh -NfR remote_port:localhost:localsshport

  1. 此时在公网主机通过netstat -tnl命令可以看到已经启用了2022端口,但是此端口只监听到127.0.0.1的地址,此时连接还需要先登录到公网服务器,然后再通过公网服务器ssh自己的2022端口才能连接到局域网主机。如果需要直接ssh公网服务器的2022端口则需要再做一次转发:
ssh -fCNL "*:2033:localhost:2022" localhost    #在公网服务器把本地的2022端口映射到2033端口,这样通过直接ssh公网服务器的2033端口既可以连接到局域网主机

改进

实际工作过程中发现通过ssh做转发的时候连接隧道总是断掉,可能端口还在,但是就是连接不上。所以通过autossh代替ssh,autossh可以监听隧道,如果隧道断了会自动重连。

autossh -M 5678 -NR 2022:localhost:22 root@192.168.200.222    #-M 5678表示通过5678端口监听隧道状态,如果隧道关闭则自动重连,-NR表示进行端口转发,autossh不需要-f选项,因为其默认即在后台运行

这样端口转发的问题就解决了。

以上是关于有一台电脑需要通过beeline的方式连接到CDH cloudera hadoop集群,提示报错。的主要内容,如果未能解决你的问题,请参考以下文章

通过远程jdbc方式连接到hive数据仓库

VPN连接到一台可以上网的电脑,如何共享网络

华为交换机如何配置路由

一台电脑如何连接到另外一台电脑的虚拟机即里面安装的系统

如何通过局域网内的另一台电脑(windows Server2012)访问互联网

TortoiseSVN的服务器如何转移到另一台电脑?