2

((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))

启动配置单元 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)

请帮忙。

提前致谢!!

4

5 回答 5

3

您的端口地址似乎被其他程序使用,您可以按照以下步骤操作:-

((1)) 使用另一个端口地址启动 hive 服务器

    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/

于 2013-04-18T09:49:06.347 回答
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 并再次启动服务器

于 2013-10-02T01:27:12.850 回答
0

停止蜂巢;

在 hive-site.xml 中添加以下属性

1) hive.hwi.listen.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 战争文件的路径,相对于 $HIVE_HOME}

再次启动 Hive

使用命令在 Hive 服务器上启动 HWI

nohup hive --service hwi &

现在,您可以以 host:9999/hwi 的身份访问 HWI

于 2014-04-02T11:28:01.510 回答
0

如果出现此类问题,请运行

$ bin/metatool -listFSRoot 

如果它运行没有错误然后尝试运行metastore然后检查配置单元是否可以从表中获取记录。

于 2014-08-27T14:09:50.567 回答
0

通常会出现这个问题。您正在更改主机名,以便您在元存储中创建的用户仍然引用旧的元存储主机名。

案例 -1 或者 Metastore 未启动,这会引发上述错误,因此如果运行 bin/metatool -listFSRoot 没有错误,则您可以安全地连接配置单元。

但问题仍未解决案例-2

Case-2 在配置单元中创建的表仍然指向指向旧主机名的旧配置单元用户,因此您无法从配置单元表中获取记录。

解决方案:- 使用旧主机名恢复所有文件中的主机名,然后依次运行 hadoop 和 hive 堆栈。

除此之外,如果有人有其他解决方案,请分享。我在我的生产框中解决了这个问题。

于 2014-08-27T14:19:12.113 回答