为 phoenix 映射 hbase 端口
Mapping hbase ports for phoenix
我正在尝试使用独立的 hbase 和 phoenix 创建一个 docker 图像。为了连接到凤凰,它说我需要映射所有区域服务器端口。但是他们 运行 在不同的 ip 上。在 /etc/hosts
.
中使用本地 DNS
<property>
<name>hbase.regionserver.ipc.address</name>
<value>0.0.0.0</value>
</property>
这有帮助,但 localhost:16010
中的所有链接仍然通过具有不同 ip 的 /etc/hosts
。而且端口每次都在变化。
bash-5.0# netstat -lntu
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:2181 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:16010 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:34319 0.0.0.0:* LISTEN
tcp 0 0 172.17.0.2:40207 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:37433 0.0.0.0:* LISTEN
bash-5.0# cat /etc/hosts
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.2 8474f280b183
根据 localhost:16010
区域服务器在 34319
上用于特定容器。有没有办法修复所有端口并将它们映射到容器外部,或者我如何从容器外部连接到 phoenix?
bash-5.0# hbase version
HBase 1.3.6
Source code repository git://Sakthis-MacBook-Pro-2.local/Users/sakthi/dev/hbase revision=806dc3625c96fe2cfc03048f3c54a0b38bc9e984
Compiled by sakthi on Tue Oct 15 01:55:41 PDT 2019
From source with checksum d587feefff2057a2e5001da5db4a6fac
显然独立模式的实现不能有固定的端口。使用伪分布式模式但不使用 HDFS 似乎可以解决这个问题。
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
然后手动启动3个守护进程
CMD hbase-daemon.sh start zookeeper && \
hbase-daemon.sh start regionserver && \
hbase-daemon.sh foreground_start master
此外,添加这 2 个属性可以解决 /etc/hosts
的问题
<property>
<name>hbase.master.hostname</name>
<value>localhost</value>
</property>
<property>
<name>hbase.regionserver.hostname</name>
<value>localhost</value>
</property>
P.S。仍然无法连接到 phoenix,但这似乎是一个完全不同的问题。
P.S。其实是有关系的。还需要加上
<property>
<name>hbase.master.ipc.address</name>
<value>0.0.0.0</value>
</property>
<property>
<name>hbase.regionserver.ipc.address</name>
<value>0.0.0.0</value>
</property>
我正在尝试使用独立的 hbase 和 phoenix 创建一个 docker 图像。为了连接到凤凰,它说我需要映射所有区域服务器端口。但是他们 运行 在不同的 ip 上。在 /etc/hosts
.
<property>
<name>hbase.regionserver.ipc.address</name>
<value>0.0.0.0</value>
</property>
这有帮助,但 localhost:16010
中的所有链接仍然通过具有不同 ip 的 /etc/hosts
。而且端口每次都在变化。
bash-5.0# netstat -lntu
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:2181 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:16010 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:34319 0.0.0.0:* LISTEN
tcp 0 0 172.17.0.2:40207 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:37433 0.0.0.0:* LISTEN
bash-5.0# cat /etc/hosts
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.2 8474f280b183
根据 localhost:16010
区域服务器在 34319
上用于特定容器。有没有办法修复所有端口并将它们映射到容器外部,或者我如何从容器外部连接到 phoenix?
bash-5.0# hbase version
HBase 1.3.6
Source code repository git://Sakthis-MacBook-Pro-2.local/Users/sakthi/dev/hbase revision=806dc3625c96fe2cfc03048f3c54a0b38bc9e984
Compiled by sakthi on Tue Oct 15 01:55:41 PDT 2019
From source with checksum d587feefff2057a2e5001da5db4a6fac
显然独立模式的实现不能有固定的端口。使用伪分布式模式但不使用 HDFS 似乎可以解决这个问题。
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
然后手动启动3个守护进程
CMD hbase-daemon.sh start zookeeper && \
hbase-daemon.sh start regionserver && \
hbase-daemon.sh foreground_start master
此外,添加这 2 个属性可以解决 /etc/hosts
<property>
<name>hbase.master.hostname</name>
<value>localhost</value>
</property>
<property>
<name>hbase.regionserver.hostname</name>
<value>localhost</value>
</property>
P.S。仍然无法连接到 phoenix,但这似乎是一个完全不同的问题。
P.S。其实是有关系的。还需要加上
<property>
<name>hbase.master.ipc.address</name>
<value>0.0.0.0</value>
</property>
<property>
<name>hbase.regionserver.ipc.address</name>
<value>0.0.0.0</value>
</property>