我试图通过org.apache.spark.sql.hive.thriftserver.HiveThriftServer2.startWithContext()
方法以编程方式运行HiveThriftServer2,但是我无法在端口上创建套接字,因为那里已经运行了HiveServer2。如果我也杀了它,服务器会重新启动。
$ sudo netstat -nlp | grep 9999
tcp 0 0 0.0.0.0:9999 0.0.0.0:* LISTEN 3325/java
$ ps -ef | grep 3325
hive 3325 1 2 10:29 ? 00:00:07 /usr/lib/jvm/java-openjdk
/bin/java -Xmx1000m -Dhive.log.dir=/var/log/hive -Dhive.log.file=hive-
server2.log -Dhive.log.threshold=INFO -server -Dhadoop.log.dir=/usr
/lib/hadoop/logs -Dhadoop.log.file=hadoop.log -Dhadoop.home.dir=/usr
/lib/hadoop -Dhadoop.id.str= -Dhadoop.root.logger=INFO,console
-Djava.library.path=:/usr/lib/hadoop-lzo/lib/native:/usr/lib/hadoop
/lib/native -Dhadoop.policy.file=hadoop-policy.xml
-Djava.net.preferIPv4Stack=true -Djava.io.tmpdir=/var/log/hive/tmp
-XX:MaxPermSize=128m -Dhadoop.security.logger=INFO,NullAppender
-Dsun.net.inetaddr.ttl=30 org.apache.hadoop.util.RunJar /usr/lib/hive/lib
/hive-service-1.0.0-amzn-0.jar org.apache.hive.service.server.HiveServer2
--hiveconf hive.aux.jars.path=file:///usr/lib/hive/auxlib/emr-ddb-hive.jar,
file:///usr/lib/hive/auxlib/emr-hive-goodies.jar,
file:///usr/lib/hive/auxlib/emr-kinesis-hive.jar
hadoop 5048 11886 0 10:34 pts/1 00:00:00 grep 3325
如何阻止这种情况发生,以便我可以通过编程方式启动自己的ThriftServer?
答案 0 :(得分:1)
关于EMR 3.x.x AMI'
ls /etc/init.d/
可以告诉您用于停止/启动/重启HS2守护程序的hive-serverd
脚本。
要停止/启动/重启HS2,您可以
sudo service hive-serverd restart
sudo service hive-serverd stop
sudo service hive-serverd start
在EMR 4.x.x& 5.x.x AMI' s,
服务管理由upstart处理,而不是传统的SysVInit脚本。可以使用upstart cookbook
中的upstart命令查询服务有关EMR的服务清单:
grep -ir "env DAEMON=" /etc/init/ | cut -d"\"" -f2
hadoop-yarn-resourcemanager
oozie
hadoop-hdfs-namenode
hive-hcatalog-server
hadoop-mapreduce-historyserver
hue
hadoop-kms
hadoop-yarn-proxyserver
hadoop-httpfs
hive-server2
hadoop-yarn-timelineserver
停止/启动HS2的示例命令:
status hive-server2
sudo stop hive-server2
sudo start hive-server2
sudo reload hive-server2