从任何远程计算机将Apache Phoenix JDBC客户端(我使用sqlline.py进行测试)连接到Hbase时遇到问题。
我测试的方式如下:
我ssh到另一台运行linux的机器,然后尝试连接到我的zookeeper仲裁(目前只有一台机器:christianwith-KP):
hadoopuser@mike-iMac ~/phoenix-4.4.0-HBase-1.0-bin/bin $./sqlline.py christianwirth-KP
Setting property: [isolation, TRANSACTION_READ_COMMITTED]
issuing: !connect jdbc:phoenix:christianwirth-KP none none org.apache.phoenix.jdbc.PhoenixDriver
Connecting to jdbc:phoenix:christianwirth-KP
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
15/08/06 14:11:36 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
尝试连接后,命令行什么也不做,几分钟后我得到了很多Java错误消息。
这是来自日志文件Zookeeper.out的,看起来Zookeeper正在接受来自运行sqlline.py的远程客户端的连接,因为IP地址与我试图连接的远程计算机匹配。
2015-08-06 14:10:37,720 [myid:] - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxnFactory@197] - Accepted socket connection from /192.168.59.148:39731
2015-08-06 14:10:37,721 [myid:] - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:ZooKeeperServer@868] - Client attempting to establish new session at /192.168.59.148:39731
2015-08-06 14:10:37,726 [myid:] - INFO [SyncThread:0:ZooKeeperServer@617] - Established session 0x14f02da342b001b with negotiated timeout 40000 for client /192.168.59.148:39731
2015-08-06 14:10:37,785 [myid:] - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxnFactory@197] - Accepted socket connection from /192.168.59.148:39732
2015-08-06 14:10:37,786 [myid:] - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:ZooKeeperServer@868] - Client attempting to establish new session at /192.168.59.148:39732
2015-08-06 14:10:37,794 [myid:] - INFO [SyncThread:0:ZooKeeperServer@617] - Established session 0x14f02da342b001c with negotiated timeout 40000 for client /192.168.59.148:39732
2015-08-06 14:11:37,045 [myid:] - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxnFactory@197] - Accepted socket connection from /192.168.59.148:39736
2015-08-06 14:11:37,047 [myid:] - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:ZooKeeperServer@868] - Client attempting to establish new session at /192.168.59.148:39736
2015-08-06 14:11:37,052 [myid:] - INFO [SyncThread:0:ZooKeeperServer@617] - Established session 0x14f02da342b001d with negotiated timeout 40000 for client /192.168.59.148:39736
2015-08-06 14:11:37,702 [myid:] - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxnFactory@197] - Accepted socket connection from /192.168.59.148:39737
2015-08-06 14:11:37,702 [myid:] - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:ZooKeeperServer@868] - Client attempting to establish new session at /192.168.59.148:39737
2015-08-06 14:11:37,707 [myid:] - INFO [SyncThread:0:ZooKeeperServer@617] - Established session 0x14f02da342b001e with negotiated timeout 40000 for client /192.168.59.148:39737
如果我尝试在本地机器上连接,一切正常。我确定了凤凰号的两个版本是一样的...
现在让我们进入我的设置,我使用以下版本:
我单独运行我的zookeeper,而不是通过HBase。
这是我的hbase-site.xml:
<configuration>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:9000/hbase</value>
</property>
<property>
<name>zookeeper.znode.parent</name>
<value>/hbase</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>christianwirth-kp</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
<description>Property from ZooKeeper's config zoo.cfg.
The port at which the clients will connect.
</description>
</property>
<property>
<name>hbase.regionserver.wal.codec</name>
<value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
</property>
<property>
<name>phoenix.query.timeoutMs</name>
<value>1800000</value>
</property>
<property>
<name>phoenix.query.threadPoolSize</name>
<value>8</value>
</property>
<property>
<name>hbase.rpc.timeout</name>
<value>1800000</value>
</property>
<property>
<name>hbase.client.scanner.timeout.period</name>
<value>600000</value>
<source>hbase-default.xml</source>
</property>
</configuration>
这是我的etc/hosts:
192.168.60.43 hbase christianwirth-KP localhost
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
这是我的输出,当运行JPS时:
6555 HMaster
6435 QuorumPeerMain
13614 Jps
6300 SecondaryNameNode
6658 HRegionServer
5746 NameNode
6002 DataNode
---开始编辑:10.08.15
我刚刚意识到的另一件事是,如果我只是把
christianwirth-KP
文件hbase/conf/regionservers,但如果我将
localhost
在里面...
---结束编辑:10.08.15
我已经检查了很多与我的问题相关的其他主题,但似乎没有任何解决方案有帮助。如果有人知道这里出了什么问题,我会非常感谢你的帮助。
最好的,
克里斯
经过几个小时的沮丧和无奈,我找到了解决办法:你必须使用的IP地址的机器,而不是名称。
我对hbase-site.xml进行了如下编辑:
<property>
<name>hbase.zookeeper.quorum</name>
<value>192.168.59.81</value>
</property>
我的regionservers-file看起来像:
localhost
而我的zoo.cfg包含:
# Define Quorum-Servers
server.1=192.168.59.81:2888:3888
希望这能帮助一些遇到同样问题的人远程连接到伪分布式hbase集群。
问题内容: 我为远程服务器编写了以下hbase客户端类: 它引发了一些异常: 您能告诉我为什么会引发异常,代码有什么问题以及如何解决它。 问题答案: 由于您的HBase服务器的hosts文件,因此会发生此问题。 您只需要编辑HBase服务器的/ etc / hosts文件。 从该文件中删除localhost条目,然后将localhost条目放在HBase服务器IP的前面。 例如,您的HBase服务
我们在谷歌云平台上一直面临着一个相当奇怪的问题。我们试图在google cloud上设置一个Hbase独立实例,并使用静态IP地址,然后通过Java API远程连接到该实例。 如果代码被编入Jar并部署在HBase服务器上,则运行良好,但是从本地机器上运行,尽管它打开了所有端口并完全访问,但拒绝通过Zookeeper进行连接。 搜了无数论坛,都没能成功。 已经更改了etc/hosts文件,在hba
我正在尝试通过Phoenix连接HBase集群。首先,我已经将Phoenix客户端和查询服务器jars文件复制到HMaster和HRegion lib文件夹,并重新启动HBase服务。 服务器-通过/bin/queryserver.py启动Phoenix服务器。运转正常。 客户端- 它工作在伪节点集群上。但在启用HA的Hadoop集群中失败。 在高可用性集群中,我已经为文件中的属性设置了活动名称代
我已经用serversocket和套接字类在Java语言上创建了一个客户机服务器程序,带有datainputstream和dataoutputstream用于发送和接收数据。 但问题是,当我在LAN(局域网)或本地主机上运行时,它可以正常工作,但当我试图通过WAN(广域网)连接客户端和服务器时,它甚至连服务器都没有连接 并且为了通过WAN连接它,我输入了服务器端程序的ip地址作为socket类的C
编辑问题以包含所需的行为、特定问题或错误以及重现问题所需的最短代码。这将帮助其他人回答问题。 我有一个nodejs客户端,它使用bramqp连接到RabbitMQ服务器。我的客户端可以连接到localhost中的Rabbit MQ服务器,运行良好。但它无法连接到另一台机器上的远程RabbitMQ服务器。我在远程服务器中打开了端口5672,因此我认为问题在于rabbitMQ服务器的配置。我如何解决这
我有两个AWS EC2实例。服务器和客户端节点JS应用程序。 在本地,我的代码运行良好。但是在AWS,客户端会在一段时间后(例如30秒)关闭,没有任何警告/异常(由于某种原因,它无法找到并连接到服务器) 两个AWS实例都在运行:Windows Server 2016 Base。 两个AWS实例都有自己的服务器“AWS安全组”。只是为了确保我没有阻止两个安全组当前允许的任何东西:“所有流量到任何IP