前言

hive默认使用的是内嵌据库derby,Derby 是一个嵌入式数据库,可以轻松地以库的形式集成到应用程序中。它不需要独立的服务器进程,所有的数据存储在应用程序所在的文件系统中。为了支持hive服务更方便的使用,我们使用mysql数据库的方式,使得服务部署更加灵活。数据库是分开部署的,使用十分灵活,性能也相对更高。

正文

  • 上传mysql安装包和驱动到服务器/opt/softeware目录

  • 创建一个mysql5.7-inst目录,将mysql安装包解压到mysql目录 

- mkdir mysql5.7-inst

- tar -xf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar -C mysql5.7-inst/

  •  卸载系统自带的mariadb数据库,没有则跳过此步骤

命令:sudo rpm -qa | grep mariadb | xargs sudo rpm -e --nodeps

  • 安装mysql 

- 安装mysql依赖

sudo rpm -ivh mysql-community-common-5.7.28-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-libs-5.7.28-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-libs-compat-5.7.28-1.el7.x86_64.rpm

- 安装mysql客户端

sudo rpm -ivh mysql-community-client-5.7.28-1.el7.x86_64.rpm

- 安装mysql服务

sudo rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm

  • 启动mysql服务,查看mysql状态 ,验证mysql是否安装完成

- 启动mysql服务:sudo systemctl start mysqld

- mysql设置为开机自启动:sudo systemctl enable mysqld

  • 修改mysql密码 

- 查看mysql密码:sudo cat /var/log/mysqld.log | grep password

- 使用临时密码登录mysql:sudo mysql -uroot -p'TGZ.#v4fDqLJ'

- 更改mysql密码策略,并修改mysql密码

set global validate_password_policy=0;
set global validate_password_length=4;
set password=password("root");

 

- 进入mysql数据库,将root访问权限改为%

use mysql;
#查看访问权限
select user, host from user;
#修改访问权限
update user set host="%" where user="root";
#刷新权限
flush privileges;

  •  删除derby数据库默认的元数据库信息

  • 连接mysql数据库,创建metastore数据库用于hive使用

  • 将mysql的数据库驱动拷贝至hive安装目录下的lib目录

 - 命令:cp /opt/software/mysql-connector-java-5.1.37.jar $HIVE_HOME/lib

  • 使用vi编辑器,创建hive-site.xml文件用于mysql连接等相关hive的配置

- hive-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
    <!-- jdbc连接的URL -->
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://hadoop101:3306/metastore?useSSL=false</value>
    </property>

    <!-- jdbc连接的Driver-->
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>

    <!-- jdbc连接的username-->
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
    </property>

    <!-- jdbc连接的password -->
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>root</value>
    </property>

    <!-- Hive默认在HDFS的工作目录 -->
    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>/hadoop/hive/warehouse</value>
    </property>
</configuration>

  •  初始化hive元数据库

- 命令:bin/schematool -dbType mysql -initSchema -verbose

- 启动hive,验证是否安装成功

结语

至此,关于使用mysql作为数据源存储的hive服务安装部署到这里就结束了,我们下期见。。。。。。。

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐