启动配置单元服务器和配置单元web界面时面临hadoop问题

2wnc66cl  于 2021-06-03  发布在  Hadoop
关注(0)|答案(5)|浏览(455)

((1))
启动thrift server时出现以下错误:

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)

请帮忙。
提前谢谢!!

ryevplcw

ryevplcw1#

您的端口地址似乎被其他程序使用,您可以按照以下步骤操作:-
((1))使用另一个端口地址启动配置单元服务器

hive --service hiveserver -p 10001 &

((2))
a] 如果$hive\u home/conf folder b]中不存在hive-site.xml文件,请创建该文件,并在其中放入以下行

<?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] 启动配置单元web界面

hive --service hwi

d] 浏览localhost:9998/hwi/

ipakzgxi

ipakzgxi2#

如果出现这种问题

$ bin/metatool -listFSRoot

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

nzrxty8p

nzrxty8p3#

停止Hive;
在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-war文件的路径,相对于$hive\u home}
重新启动Hive
使用以下命令在配置单元服务器上启动hwi
nohup hive—服务硬件&
现在,您可以作为host:9999/hwi

taor4pac

taor4pac4#

我在这里遇到了同样的问题我得到了解决办法
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并再次启动服务器

xn1cxnb4

xn1cxnb45#

通常会出现这个问题。或者您正在更改主机名,以便您在metastore中创建的用户仍然引用旧的metastore主机名。
案例1元存储区未启动,这会引发上述错误,因此请运行bin/metatool-listfsroot如果运行时没有错误,则可以安全地连接配置单元。
但问题仍然没有解决案例2
案例2在配置单元中创建的表仍然指向指向旧主机名的旧配置单元用户,因此无法从配置单元表中提取记录。
解决方案:-用旧主机名还原所有文件中的主机名,然后依次运行hadoop和hive堆栈。
除此之外,如果任何人有其他解决方案,请分享。这是我在我的生产框解决。

相关问题