((1))
启动thrift服务器时出现以下错误:
hive --service hiveserver
Starting Hive Thrift Server
org.apache.thrift.transport.TTransportException: Could not create ServerSocket on address 0.0.0.0/0.0.0.0:10000.
当我运行netstat端口10000时已经在使用..
$ netstat -nl | grep 10000
tcp6 0 0 :::10000 :::* LISTEN
如何解决此问题?
((2))
启动hive web界面时出现以下错误
hive --service hwi
$ hive --service hwi
13/01/01 22:05:36 INFO hwi.HWIServer: HWI is starting up
13/01/01 22:05:37 INFO mortbay.log: Logging to org.slf4j.impl.Log4jLoggerAdapter(org.mortbay.log) via org.mortbay.log.Slf4jLog
13/01/01 22:05:37 INFO mortbay.log: jetty-6.1.26
13/01/01 22:05:37 INFO mortbay.log: Extract /opt/hive/lib/hive-hwi-0.9.0.jar to /tmp/Jetty_127_0_0_1_3606_hive.hwi.0.9.0.jar__hwi__.6ogsv5/webapp
13/01/01 22:05:37 WARN mortbay.log: failed SocketConnector@127.0.0.1:3606: java.net.BindException: Address already in use
13/01/01 22:05:37 WARN mortbay.log: failed Jetty20SShims$Server@21e554: java.net.BindException: Address already in use
Exception in thread "main" java.net.BindException: Address already in use
at java.net.PlainSocketImpl.socketBind(Native Method)
请帮忙。
提前致谢!!
答案 0 :(得分:3)
您的端口地址似乎被其他程序使用,您可以按照以下步骤操作: -
((1))使用另一个端口地址启动配置单元服务器
hive --service hiveserver -p 10001 &
((2))
a]如果$ HIVE_HOME / conf文件夹中没有,则创建hive-site.xml文件 b]在其中加入以下行
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hive.hwi.listen.host</name>
<value>localhost</value>
</property>
<property>
<name>hive.hwi.listen.port</name>
<value>9998</value>
</property>
<property>
<name>hive.hwi.war.file</name>
<value>lib/hive-hwi-0.10.0.war</value>
<description>This sets the path to the HWI war file, relative to ${HIVE_HOME}. </description>
</property>
</configuration>
c]启动hive web界面
hive --service hwi
d]浏览localhost:9998 / hwi /
答案 1 :(得分:1)
我遇到同样的问题是我得到的解决方案
1)设置端口数
export HIVE_PORT=10000
2)检查哪些服务正在收听
sudo lsof -i -P | grep -i "listen"
3)如果有与端口10000相关的进程将其杀死
kill -9 pid
4)启动配置单元服务器
$HIVE_HOME/bin --service hiveserver
如果不起作用,请转到步骤2并再次启动服务器
答案 2 :(得分:0)
停止蜂巢;
在hive-site.xml中添加以下属性
1)hive.hwi.listen.host = host
2)hive.hwi.listen.port = 9999
3)hive.hwi.war.file = /lib/hive-common-0.12.0.2.0.6.1-102.jar {这设置HWI war文件的路径,相对于$ HIVE_HOME}
再次启动Hive
使用命令
在Hive服务器上启动HWInohup hive --service hwi&amp;
现在,您可以作为主机访问HWI:9999 / hwi
答案 3 :(得分:0)
如果出现此类问题
$ bin/metatool -listFSRoot
如果它运行时没有出现错误,那么尝试运行metastore
,然后检查配置单元是否可以从表中获取记录。
答案 4 :(得分:0)
通常会出现此问题。 您要么更改主机名,以便您在元数据库中创建的用户仍然引用旧的Metastore主机名。
情况-1,如果没有Metastore会抛出上面的错误,那么运行bin / metatool -listFSRoot,如果它运行没有错误,那么你就可以安全地连接hive。
但仍然没有解决案例-2
案例2在hive中创建的表仍然指向旧的hiveuser,它指向旧的主机名,因此你不能从hive表中获取记录。
解决方案: - 使用旧主机名恢复所有文件中的主机名,然后依次运行hadoop和hive堆栈。
除此之外,如果有人有其他解决方案,请分享。我在生产箱中解决了。