hive(二) -- hive部署

启动元数据服务

# 前台启动
hive --service metastore
# 元数据服务会一直在前台运行,需要克隆一个session进行其他操作 或者使用ctrl+z将它挂起到后台

# 后台启动
hive --service metastore &
# 在后台启动 若退出终端 则会退出

nohup hive --service metastore &
# 这种方式 即使退出终端 服务也会继续运行 启动日志会在当前目录下的 nohup.out中
nohup hive --service metastore 1>/dev/null 2>1 &
# 这种方式将 启动日志 写入到黑洞 不显示任何内容

# /dev/null :代表空设备文件
# >  :代表重定向到哪里,例如:echo "123" > /home/123.txt
# 1  :表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"
# 2  :表示stderr标准错误输出
# &  :表示等同于的意思,2>&1,表示2的输出重定向等同于1

# 1>/dev/null:首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息。
# 2>&1:接着,标准错误输出重定向标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。


# 检查启动额端口
# 端口存在说明元数据服务启动成功
netstat -nltp | grep 9083

命令行客户端

Hive发展至今,总共历经了两代客户端工具。

第一代客户端( deprecated不推荐使用)︰$HIVE_HOME/bin/hive,是一个shellUtil。主要功能∶一是可用于以交互或批处理模式运行Hive查询;二是用于Hive相关服务的启动,比如metastore服务。

第二代客户端( recommended推荐使用)∶$HIVE_HOME/bin/beeline,是一个JDBC客户端,是官方强烈推荐使用的Hive命令行工具,和第一代客户端相比,性能加强安全性提高。

第一代客户端Hive

本地访问

# 先启动元数据服务 注意如果已经启动不能再次启动 会报错
nohup hive --service metastore & 
# 启动后直接使用hive命令即可
# 进入后可以使用正常的SQL语句.
# 退出客户端的命令
exit;
quit;

远程访问

# 我们是远程连接模式是可以使用其他计算机来进行访问的.
# 如果使用其他计算机访问 首先这台计算机需要安装hive
# linux02 和 linux03 上传 hive的压缩包并解压
# linux02
tar -zxf apache-hive-3.1.2.tar.gz
mv apache-hive-3.1.2-bin/ /opt/apps/hive-3.1.2/
rm -rf apache-hive-3.1.2.tar.gz
scp -r /opt/apps/hive-3.1.2 linux03:/opt/apps/

# 这里只需要配置 hive-env.sh
# linux02 linux03
cp /opt/apps/hive-3.1.2/conf/hive-env.sh.template /opt/apps/hive-3.1.2/conf/hive-env.sh
vim /opt/apps/hive-3.1.2/conf/hive-env.sh

export HADOOP_HOME=/opt/apps/hadoop-3.1.1
export HIVE_CONF_DIR=/opt/apps/hive-3.1.2/conf
export HIVE_AUX_JARS_PATH=/opt/apps/hive-3.1.2/lib

vim /opt/apps/hive-3.1.2/conf/hive-site.xml
# 需要在hive-site.xml中配置 元数据服务的地址 其他什么都不需要配置了
 <configuration>
    <property>
        <name>hive.metastore.uris</name>
        <value>thrift://linux01:9083</value>
    </property>
    </configuration>
# 之后就可以直接访问
# 注意若没有配置hive环境变量 则需要到/opt/apps/hive-3.1.2/bin 下使用hive命令
cd /opt/apps/hive-3.1.2/bin
./hive

第二代客户端Beeline

本地访问

# 先启动Metastore服务  如果已经启动可以忽视
nohup hive --service metastore & 
# 然后才启动hiveserver2服务 端口号10000 在hive-site.xml中进行的配置
nohup hive --service hiveserver2 &
# 启动后可以使用 来进行验证 检查10000端口
netstat -nltp | grep 10000
# 查看WEB页面http://linux01:10002/

# 使用beeline命令 进入后输入相关连接的uri
!connect jdbc:hive2://linux01:10000
# 需要输入用户名 root 密码为空 不输入 直接回车

# 退出命令 !quit  或者直接ctrl+c

# 也可以直接以下命令进行连接
# beeline -u jdbc:hive2://linux01:10000 -n root

远程访问

# 使用其他计算机访问的话首先保证 linux01的Metastore和 hiveserver2都已经启动
# linux02 和 linux03 上传 hive的压缩包并解压
# linux02
tar -zxf apache-hive-3.1.2.tar.gz
mv apache-hive-3.1.2-bin/ /opt/apps/hive-3.1.2/
rm -rf apache-hive-3.1.2.tar.gz
scp -r /opt/apps/hive-3.1.2 linux03:/opt/apps/

# 这里只需要配置 hive-env.sh
# linux02 linux03
cp /opt/apps/hive-3.1.2/conf/hive-env.sh.template /opt/apps/hive-3.1.2/conf/hive-env.sh
vim /opt/apps/hive-3.1.2/conf/hive-env.sh

export HADOOP_HOME=/opt/apps/hadoop-3.1.1
export HIVE_CONF_DIR=/opt/apps/hive-3.1.2/conf
export HIVE_AUX_JARS_PATH=/opt/apps/hive-3.1.2/lib

# 由于不直接访问Metastore 所以不需要配置hive-site.xml 直接使用beeline正常访问即可

非交互式操作

不进入到hive中 直接执hql语句或者hql文件 ,执行完毕后返回linux命令行

使用 –e 参数来直接执行hql的语句

hive -e "show databases;"

使用 –f 参数通过指定文本文件来执行hql的语句

vi a.sql
show databases;
# 执行sql文件
hive -f a.sql
# 执行sql文件 将执行结果写入到另一个文件中
hive -f a.sql > b.sql

Hive可视化工具

DBeaver和idea都可以对hive进行连接
都需要添加jdbc驱动
DBeaver社区版,开源免费.
idea提示很好

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
您可以按照以下步骤将 Hive 的配置文件 `hive-site.xml` 导入 SparkSQL 中: 1. 将 `hive-site.xml` 文件复制到 Spark 的配置目录下。默认情况下,Spark 的配置目录是 `$SPARK_HOME/conf`,其中 `$SPARK_HOME` 是 Spark 的安装路径。 2. 在 SparkSQL 中创建一个 `SparkSession` 对象,并在创建之前设置一些相关的配置项。可以参考下面的示例代码: ```scala import org.apache.spark.sql.SparkSession val spark = SparkSession .builder() .appName("SparkSQL with Hive integration") .config("spark.sql.warehouse.dir", "/user/hive/warehouse") // 设置 Hive 仓库目录 .config("hive.metastore.uris", "thrift://localhost:9083") // 设置 Hive Metastore 的连接地址 .enableHiveSupport() // 启用 Hive 支持 .getOrCreate() ``` 在上面的示例中,您需要根据您的实际环境修改 `spark.sql.warehouse.dir` 和 `hive.metastore.uris` 的值。`spark.sql.warehouse.dir` 是 Hive 仓库目录的路径,`hive.metastore.uris` 是 Hive Metastore 的连接地址。 3. 使用 `spark.sql` 对象执行 Hive 相关的操作。例如,您可以执行 SQL 查询、创建表等。下面是一个简单的示例: ```scala spark.sql("SELECT * FROM my_table").show() ``` 上述代码将执行一条查询语句,从名为 `my_table` 的 Hive 表中检索数据,并将结果显示在控制台上。 请注意,您还需要确保 Spark 和 Hive 的版本兼容,并且 Hive Metastore 服务正在运行。另外,如果您的 Spark 集群和 Hive Metastore 服务部署在不同的机器上,您需要相应地修改 `hive.metastore.uris` 的值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

野生的狒狒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值