0


Linux配置hive(远程模式)

首先:

配置好三台虚拟机、免密、hadoop

我这边用node、node1、node2

远程模式:

将hive中的相关进程比如hiveserver2或者metastore这样的进程单独开启,使用客户端工具或者命令行进行远程连接这样的服务,即远程模式。客户端可以在任何机器上,只要连接到这个server,就可以进行操作。客户端可以不需要密码。

我把node1作为服务端,node作为客户端

先在node1里下载安装hive

解压、改名、授权

  1. hive/conf/里面新建 ** hive-site.xml**
<!--hive仓库在hdfs的位置-->
<property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/user/hive/warehouse</value>
    <description>location of default database for the warehouse</description>
</property>

<!-- 该参数主要指定Hive的临时文件存储目录  -->
<property>
    <name>hive.exec.scratchdir</name>
    <value>/tmp/hive</value>
</property>

<!--连接mysql的url地址-->
<property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://node2:3306/hive?createDatabaseIfNotExist=true&amp;characterEncoding=latin1</value>
</property>
<!--mysql的驱动类-->
<property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
</property>
<!--mysql的用户名-->
<property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>
</property>
<!--mysql的密码-->
<property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>123456</value>
</property>

<!--hive工作的本地临时存储空间-->
<property>
    <name>hive.exec.local.scratchdir</name>
    <value>/usr/local/src/hive/iotmp/root</value>
</property>
<!--如果启用了日志功能,则存储操作日志的顶级目录-->
<property>
    <name>hive.server2.logging.operation.log.location</name>
    <value>/usr/local/src/hive/iotmp/root/operation_logs</value>
</property>
<!--Hive运行时结构化日志文件的位置-->
<property>
    <name>hive.querylog.location</name>
    <value>/usr/local/src/hive/iotmp/root</value>
</property>
<!--用于在远程文件系统中添加资源的临时本地目录-->
<property>
    <name>hive.downloaded.resources.dir</name>
    <value>/usr/local/src/hive/iotmp/${hive.session.id}_resources</value>
</property>

2.使用远程模式,需要在hadoop的core-site.xml文件中添加以下属性 三台机器全部要改

<property>
    <name>hadoop.proxyuser.root.hosts</name>
    <value>*</value>
</property>
<property>
    <name>hadoop.proxyuser.root.groups</name>
    <value>*</value>
</property>

可以在一台机器上改完然后传过去

# scp core-site.xml node1:/usr/local/src/hadoop/etc/hadoop/
# scp core-site.xml node2:/usr/local/src/hadoop/etc/hadoop/

然后删除hadoop的

log

tmp        也是三台

再刷新

hadoop namenode-format

再道node上安装hive

解压改名授权环境变量,其他不管

上面完成之后就可以启用远程模式了

hive的两种服务说明

第一种服务:hiveserver2

**启动 在服务端 **node1

hive --service hiveserver2 &
​
然后jps会有一个RunJar的进程就是启动成功了

连接 在用户端node

hiveserver2得用beeline来连接

在node里
# beeline       进入beeline界面
# !connect jdbc:hive2://node1:10000
​
然后输入账号、密码
就可以连接成功了

第二种服务:metastore

准备:

这个服务需要修改node的hive-site.xml配置

vim hive-site.xml (其他的都不要,只需要下面一小段)

<configuration>
    <property>
        <name>hive.metastore.uris</name> 
        <value>thrift://ndoe1:9083</value>
    </property>
</configuration>

如果刚刚使用了hiveserver2服务就先

kill

掉之前的进程

kill -9 8000

现在就可以启动 metastore 服务了

启动

hive --service metastore &
​
然后jps会有一个RunJar的进程就是启动成功了
(node1)

连接 node里

hive                直接敲hive就行
标签: hive linux hadoop

本文转载自: https://blog.csdn.net/m0_53504112/article/details/127981336
版权归原作者 小果叮123 所有, 如有侵权,请联系我们删除。

“Linux配置hive(远程模式)”的评论:

还没有评论