Hive安装部署

 目录

1:官网下载安装包 Index of /dist/hive 。

2:解压缩安装包

3:修改 hive配置。

        a- 指定hive的元数据 存储位置

        b- 指定元数据库的驱动程序(以 mysql为元数据库为例)

        c- 指定元数据库的 用户名和密码

         d- 指定数据在HDFS上的存储路径

         e- 设置方便操作,查看的属性。 在 命令行 中显示 数据库名和数据的表头

        f-  设置小规模数据时,使用本地模式,提高效率。本机练习时常用        

 4:将对应的mysql驱动程序拷贝到 hive-2.3.7/lib 下。

5:配置环境变量 。

6:初始化 元数据库

7:启动 hive,验证是否部署成功

二: 生产环境的元数据管理

1- 在全部的节点上解压安装hive。

2- 启动hive metastore服务

3- 修改hive 客户端的 hdfs-site.xml。

4- 启动hive客户端

 5- 高可用测试


前提: 安装了 hadoop(提供数据的存储HDFS) 和 mysql (作为hive的元数据库)。

 hadoop的安装文档: hadoop安装部署(学习)

mysql新建了hive的用户。 用户名为 hive , 密码为 "12345678"

软件 node1 node2 node3
hadoop
hive
mysql

1:官网下载安装包 Index of /dist/hive 。

         以hive-2.3.7为例

2:解压缩安装包

         以 安装目录为 /opt/cluster/servers 为例,

# 解压到hive 到 /opt/cluster/servers/

tar zxvf apache-hive-2.3.7-bin.tar.gz -C /opt/cluster/servers/

# 重命名

mv /opt/cluster/servers/apache-hive-2.3.7-bin /opt/cluster/servers/hive-2.3.7

3:修改 hive配置。

        可以拷贝 conf下的 hive-default.template.xml。也可以新建配置文件。
        以新建 hive-site.xml为例。新建文件后,新增内容.


        a- 指定hive的元数据 存储位置

        b- 指定元数据库的驱动程序(以 mysql为元数据库为例)

        c- 指定元数据库的 用户名和密码

         d- 指定数据在HDFS上的存储路径

         e- 设置方便操作,查看的属性。 在 命令行 中显示 数据库名和数据的表头

        f-  设置小规模数据时,使用本地模式,提高效率。本机练习时常用
        





    
	
		javax.jdo.option.ConnectionURL
		jdbc:mysql://node3:3306/hivemetadata?createDatabaseIfNotExist=true&useSSL=false
		JDBC connect string for a JDBC metastore
	

	
	
		javax.jdo.option.ConnectionDriverName
		com.mysql.jdbc.Driver
		Driver class name for a JDBC metastore
	
	
	
	
		javax.jdo.option.ConnectionUserName
		hive
		username to use against metastore database
	
	
	
	
		javax.jdo.option.ConnectionPassword
		12345678
		password to use against metastore database
	

	
    
    	hive.metastore.warehouse.dir
	    /user/hive/warehouse
	

    
	
		hive.cli.print.current.db
		true
	

	
	
		hive.cli.print.header
		true
	

	
	
		hive.exec.mode.local.auto
		true
	

注意jdbc的连接串,如果没有 useSSL=false 会有大量警告

在xml文件中 & 表示 &

 4:将对应的mysql驱动程序拷贝到 hive-2.3.7/lib 下。


        注意驱动程序版本要对应
        我的mysql是 5.7.24, 驱动程序版本是 5.1.46, mysql-connector-java-5.1.46.jar

5:配置环境变量 。

        配置hive的环境变量。方便后续的使用。

vi /etc/profile

# 在 /etc/profile 文件中增加环境变量

export HIVE_HOME=/opt/cluster/servers/hive-2.3.7
export PATH=$PATH:$HIVE_HOME/bin

# 执行并生效
source /etc/profile

6:初始化 元数据库

schematool -dbType mysql -initSchema

7:启动 hive,验证是否部署成功

# 启动hive服务之前,请先启动hdfs、yarn的服务

[root@node123 ~]$ hive
hive> show functions;

二: 生产环境的元数据管理
 

        上面的配置,在hdfs-site.xml中暴露了元数据库(mysql)的连接信息(地址,驱动,用户名和密码)。所以在生产环境一般不采用这种方式。而是在上层暴露一个服务metastore,这个服务协议thift要兼容多语言(java,python等),多驱动(mysql,oracle等),为外部访问Hive元数据提供入口,通过它来屏蔽了 数据库访问的地址,驱动,用户名和密码

        第一种的元数据管理模式(元数据存在mysql,hdfs-site.xml中配置元数据库的连接信息),一般叫本地模式。每个hive 服务 都内嵌一个metastore(metastore是管理元数据的服务)。

Hive安装部署_第1张图片

      生产环境一般采用的是远程模式,单独起一个metastore服务,通过它统一对外面提供元数据访问入口。它自己去元数据库mysql拿元数据。

Hive安装部署_第2张图片

           生产环境中元数据管理的远程模式配置,以3个节点为例,服务配置如下,配置2个hive metastore,可以作为HA,提高可用性

节点 hive metastore hive client
node1
node2
node3

1- 在全部的节点上解压安装hive。

        参考之前解压安装的步骤,并配置hive的环境变量 

2- 在hive metastore的节点上配置mysql信息。

    在这里就是 node1 和 node3 。编辑 hive-site.xml





    
	
		javax.jdo.option.ConnectionURL
		jdbc:mysql://node3:3306/hivemetadata?createDatabaseIfNotExist=true&useSSL=false
		JDBC connect string for a JDBC metastore
	

	
	
		javax.jdo.option.ConnectionDriverName
		com.mysql.jdbc.Driver
		Driver class name for a JDBC metastore
	
	
	
	
		javax.jdo.option.ConnectionUserName
		hive
		username to use against metastore database
	
	
	
	
		javax.jdo.option.ConnectionPassword
		12345678
		password to use against metastore database
	

	
    
    	hive.metastore.warehouse.dir
	    /user/hive/warehouse
	

    
	
		hive.cli.print.current.db
		true
	

	
	
		hive.cli.print.header
		true
	

	
	
		hive.exec.mode.local.auto
		true
	

3- 在hive节点上,放入 mysql的驱动,并初始化元数据库

     拷贝 mysql的驱动到 $HIVE_HOME/lib 下,注意要和mysql的版本对应上

      初始化元数据库,在node1 和3 执行命令

schematool -dbType mysql -initSchema

4- 启动hive metastore服务并检查启动结果

        在 node1 和 node3 中执行

nohup hive --service metastore &

     metastore的默认服务端口是9083, 我这里使用的是lsof命令,其他的网络检查端口也可以。

lsof -i:9083

5- 修改hive 客户端的 hdfs-site.xml。

    告知客户端metastore的地址,不需要配置元数据库(mysql)的连接信息。




  
  
    
        hive.metastore.uris
        thrift://node1:9083,thrift://node2:9083
    

    
    
    	hive.metastore.warehouse.dir
	    /user/hive/warehouse
	

    
	
		hive.cli.print.current.db
		true
	

	
	
		hive.cli.print.header
		true
	

	
	
		hive.exec.mode.local.auto
		true
	
 

6- 启动hive客户端

        在node2 执行

hive

 7- 高可用测试

        7.1-进入hive客户端,随便执行命令。比如show databases

show databases;

        7.2- 查看目前连接在哪个节点的metastore

        分别在 node1,node3上执行

# metastore默认的服务端口是 9083
lsof -i:9083

       在 链接的节点上会有两条信息

        7.3- 杀死已连接的 metastore进程

         到对应的节点  kill 9

kill 9 

        7.4- 再执行show databases;还是能正常执行命令。且链接到另外一个节点上

你可能感兴趣的:(hive,大数据组件安装,hive,hadoop,hive,metastore)