原生Hive的启动和停止详解

原生的Hive没有提供启动的脚本,需要调用命令来启动和停止,启动用nohup结合hive命令来启动,启动Hive的时候,需要把metastore和hiveserver2一起启动,分别来讲解

一、Hive启动命令

nohup hive --service metastore > /tmp/hivemetastore.log  2>&1 &
nohup hive --service hiveserver2 > /tmp/hiveserver2.log  2>&1 &

二、命令详解讲解

nohup 正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中。

nohup的命令格式一般为:nohup command [ Arg … ] [ & ]

这里用个例子来讲解:

nohup command > myout.file 2>&1 &

在上面的例子中,0 – stdin (standard input),1 – stdout (standard output),2 – stderr (standard error) ;

2>&1是将标准错误(2)重定向到标准输出(&1),标准输出(&1)再被重定向输入到myout.file文件中。

结合我们的启动命令来讲解:

 nohup hive --service metastore > /tmp/hivemetastore.log  2>&1 & 

启动命令hive --service metastore,把标准错误(2),重定向到标准输出(&1),然后再被重定向到/tmp/hivemetastore.log文件中

nohup和&的区别:

& : 指在后台运行

nohup : 不挂断的运行,注意并没有后台运行的功能,,就是指,用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们断开SSH连接都不会影响他的运行,注意了nohup没有后台运行的意思;&才是后台运行

nohub后面如果不加上&,则一直会占据终端,当用Crtl+C退出终端的时候,命令也会跟着退出

三、Hive停止的命令

Hive没有提供停止的命令,需要用kill来杀掉进程,通常的格式为:

ps -ef|grep hive

找到metastore和hiveserver2的进程号,用kill -9 pid杀掉进程号,Hive就停止了

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐