hive的启动和停止

一、启动后台运行

打出日志便于差错,如不需要可省略。
[hadoop ~]# nohup hive --service metastore >> ~/metastore.log 2>&1 &        ##hivemetastore
[hadoop ~]# nohup  hive --service hiveserver2 >> ~/hiveserver2.log 2>&1 &   ##hiveserver2,jdbc连接需要
建议指定日志路径,方便查找问题。否则都会存到nohup.out文件中。
~/hiveserver2.log

 

二、停止后台进程

1、先查看端口信息

[hadoop ~]# vi ../hive/conf/hive-site.xml
  <property>
    <name>hive.metastore.port</name>
    <value>9083</value>
    <description>Hive metastore listener port</description>
  </property>
  <property>
    <name>hive.server2.thrift.port</name>
    <value>10000</value>
    <description>Port number of HiveServer2 Thrift interface when hive.server2.transport.mode is 'binary'.</description>
  </property>

2、查看进程

1) 方法一、使用netstat查找端口号的进程

[hadoop ~]# netstat  -lnp|grep 9083
tcp    LISTEN     0      50        *:9083                  *:*                   users:(("java",pid=33253,fd=546))
[hadoop ~]# netstat  -lnp|grep 10000
tcp    LISTEN     0      50        *:10000                 *:*                   users:(("java",pid=33322,fd=572))

2) 方法二、centos 中,使用ss命令代替netstat查找端口号的进程

[hadoop ~]# ss -lnp|grep 9083
tcp    LISTEN     0      50        *:9083                  *:*                   users:(("java",pid=33253,fd=546))
[hadoop ~]# ss -lnp|grep 10000
tcp    LISTEN     0      50        *:10000                 *:*                   users:(("java",pid=33322fd=572))

3) 方法三、查看hive进程

[hadoop ~]# ps -aux|grep hive

hadoop 33253 0.4 14.9 2330148 357316 pts/2 Sl 04:38 1:22 /usr/local/jdk1.8.0_161/bin/java -Xmx512m -Djava.net.preferIPv4Stack=true -Dhadoop.log.dir=/usr/local/hadoop/logs -Dhadoop.log.file=hadoop.log -Dhadoop.home.dir=/usr/local/hadoop -Dhadoop.id.str=hadoop -Dhadoop.root.logger=INFO,console -Djava.library.path=/usr/local/hadoop/lib/native -Dhadoop.policy.file=hadoop-policy.xml -Djava.net.preferIPv4Stack=true -Xmx512m -Dlog4j.configurationFile=hive-log4j2.properties -Djava.util.logging.config.file=/usr/local/hive2/conf/parquet-logging.properties -Dhadoop.security.logger=INFO,NullAppender org.apache.hadoop.util.RunJar /usr/local/hive2/lib/hive-metastore-2.2.0.jar org.apache.hadoop.hive.metastore.HiveMetaStore

hadoop 33322 1.1 17.1 2331028 407888 pts/2 Sl 04:38 3:23 /usr/local/jdk1.8.0_161/bin/java -Xmx512m -Djava.net.preferIPv4Stack=true -Dhadoop.log.dir=/usr/local/hadoop/logs -Dhadoop.log.file=hadoop.log -Dhadoop.home.dir=/usr/local/hadoop -Dhadoop.id.str=hadoop -Dhadoop.root.logger=INFO,console -Djava.library.path=/usr/local/hadoop/lib/native -Dhadoop.policy.file=hadoop-policy.xml -Djava.net.preferIPv4Stack=true -Xmx512m -Dlog4j.configurationFile=hive-log4j2.properties -Djava.util.logging.config.file=/usr/local/hive2/conf/parquet-logging.properties -Dhadoop.security.logger=INFO,NullAppender org.apache.hadoop.util.RunJar /usr/local/hive2/lib/hive-service-2.2.0.jar org.apache.hive.service.server.HiveServer2

3、根据方法1、2、3的pid,杀死进程

[hadoop ~]# kill -9 33253
[hadoop ~]# kill -9 33322

<think>嗯,用户之前问过Hive的默认端口是不是10000,现在又想知道如何启动Hive。看起来他们可能是在搭建或者维护Hive环境,遇到了连接问题,或者刚开始学习Hive,需要了解基本操作。 首先,我需要确定用户的使用场景。可能是他们配置了Hive的端口,但无法连接,所以需要启动服务。或者他们刚刚安装完Hive,现在需要启动服务进行后续操作。因此,回答如何启动Hive需要详细但清晰的步骤,避免遗漏关键点。 接下来,用户的身份可能是大数据工程师、数据分析师,或者是学生。不同身份可能需要不同的详细程度。工程师可能需要更技术性的细节,比如配置文件的位置或日志排查,而学生可能需要更基础的步骤说明。所以,回答应该兼顾不同层次,提供基础步骤进阶内容。 用户的需求是启动Hive,但可能隐含的问题是如何正确启动相关服务,比如HiveServer2或Metastore,以及如何处理常见错误。比如,用户可能在启动时遇到端口冲突或者依赖服务未启动的问题,所以需要包含这些问题的解决方法。 另外,之前的回答中提到了Hive的端口配置,特别是HiveServer2的默认端口10000。所以在启动Hive时,可能需要确保HiveServer2正确启动,并且端口没有被占用。因此,启动步骤应该包括HiveServer2Metastore的启动方法,以及如何验证服务是否正常运行。 还要考虑Hive的不同模式,比如本地模式还是远程模式,是否使用了MySQL作为元存储,或者是否集成HadoopYARN。这些因素会影响启动流程,需要提醒用户检查前置条件,比如Hadoop是否运行正常,Metastore的数据库配置是否正确。 可能用户遇到的常见问题包括环境变量未正确设置、依赖服务未启动、配置文件错误等。因此,在回答中需要包含这些排查步骤,比如检查日志文件,验证端口占用情况,以及如何通过命令行测试连接。 最后,确保回答结构清晰,分步骤说明,便于用户跟随操作。同时,提供示例命令配置片段,让用户可以直接复制使用。另外,提醒用户注意生产环境学习环境的不同配置,比如高可用设置可能需要Zookeeper,而单机环境可能更简单。</think>以下是Hive服务的启动步骤详解,需根据实际部署模式操作: --- ### **一、启动前的必备条件** 1. **确认Hadoop集群已正常运行** ```bash jps # 检查NameNode、DataNode、ResourceManager等进程 ``` 2. **配置元数据存储**(如使用MySQL需提前启动) ```bash systemctl start mysqld # 根据实际数据库类型操作 ``` --- ### **二、本地模式启动(嵌入式Derby数据库)** > 适用于单机测试,**不支持多会话并发** ```bash # 1. 进入Hive安装目录 cd $HIVE_HOME # 2. 初始化Derby元数据库(仅第一次使用需要) bin/schematool -dbType derby -initSchema # 3. 启动Hive CLI bin/hive # 此时自动启动内置服务 ``` --- ### **三、远程模式启动(生产环境常用)** #### **步骤1:启动Hive Metastore服务** > 元数据管理服务,默认端口9083 ```bash # 后台运行Metastore nohup hive --service metastore > /tmp/metastore.log 2>&1 & # 验证启动 netstat -an | grep 9083 tail -f /tmp/metastore.log # 查看日志 ``` #### **步骤2:启动HiveServer2** > 提供JDBC/ODBC连接服务,默认端口10000 ```bash # 启动命令 nohup hive --service hiveserver2 > /tmp/hiveserver2.log 2>&1 & # 验证服务状态 netstat -an | grep 10000 beeline -u jdbc:hive2://localhost:10000 # 测试连接 ``` --- ### **四、通过脚本快速启动(推荐)** 1. 创建启动脚本`start-hive.sh`: ```bash #!/bin/bash hive --service metastore & sleep 10 # 等待Metastore初始化 hive --service hiveserver2 & ``` 2. 赋予执行权限并运行: ```bash chmod +x start-hive.sh ./start-hive.sh ``` --- ### **五、常见问题排查** 1. **端口冲突**: ```bash lsof -i :10000 # 检查端口占用 kill -9 <PID> # 结束冲突进程 ``` 2. **元数据库连接失败**: - 检查`hive-site.xml`中JDBC配置 - 确认MySQL用户权限 3. **Hadoop权限问题**: ```bash hadoop fs -chmod -R 777 /tmp # 临时解决写入权限问题 ``` --- ### **六、停止服务** ```bash # 查找进程ID并终止 ps -ef | grep metastore | awk '{print $2}' | xargs kill ps -ef | grep hiveserver2 | awk '{print $2}' | xargs kill ``` > 提示:生产环境建议使用`systemd`管理服务,或通过Ambari/Cloudera Manager等工具统一控制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值