CentOS6.5环境如何安装伪分布式的hive3版本

目录

一、安装须知

二、MySQL端配置元数据管理数据库

三、准备hive环境

1、将hive安装包解压至/home/hadoop,解压完成后将文件夹重名为hive3

 2、准备MySQL对应版本的驱动包,并将Java驱动拷贝至hive的jar包文件夹下(lib)

1)查看MySQL版本

2)上传驱动的hive的jar包库里边

3)检验查看

4)由于hive中的guava.jar包与hadoop中的guava.jar包的版本不一致,会导致版本冲突,这里将高版本替换低版本

5)配置环境变量(因为我的环境基本上都是用户级别的环境变量~/.bash_profile,如果是系统环境变量的朋友,那就配置/etc/profile)

扫描二维码关注公众号,回复: 16871839 查看本文章

四、配置hive文件

1、进入hive安装目录下的配置文件目录,然后修改配置文件(cd /home/hadoop/software/hive3.1.2/conf)

2、然后在改目录下配置hive-env.sh和hive-default.xml

3、配置hive-env.sh,修改之后source一下进行刷新

4、配置hive-default.xml文件

五、测试安装

1、启动我们Hadoop集群

2、初始化元数据库(schematool -dbType mysql -initSchema)

3、登录hive,漂亮,完成!

4、登入beeline


一、安装须知

        前提,有对应的Hadoop分布式环境(这里由于我最近需要使用到伪分布式,所以我的演示环境为伪分布式的环境),并且版本必须要兼容,我Hadoop的版本为3,所以这里选择的版本也是3,这个是大数据环境必须要关注到的。还必须要有一个元数据管理的宿主,这里的话我们使用MySQL来管理我们hive元数据,相关链接:

Hadoop分布式的安装

MySQL的安装

二、MySQL端配置元数据管理数据库

1、创建MySQL用户,这里就myhive

在 MySQL 5 中,可以使用以下步骤创建用户:

1. 连接到 MySQL 数据库服务器,可以使用如下命令进行连接:
   ```
   mysql -u root -p
   ```
   这将要求你输入 MySQL 的 root 用户的密码。

2. 执行以下 SQL 语句来创建一个新用户:
   ```
   CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
   ```
   将 `username` 替换为你要创建的用户名,将 `password` 替换为用户的密码。`localhost` 表示该用户只能从本地连接,如果要允许从远程连接,请将 `localhost` 更改为允许的主机名或 IP 地址。

3. 授予用户适当的权限。例如,如果你想将用户授予对特定数据库的全部权限,可以使用以下命令:
   ```
   GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
   ```
   将 `database_name` 替换为你要授予权限的数据库名。

4. 最后,使用以下命令刷新权限以使更改生效:
   ```
   FLUSH PRIVILEGES;
   ```



在 MySQL 8 版本中,创建用户并为其远程赋权的步骤如下:

1. 连接到 MySQL 数据库服务器,可以使用以下命令进行连接:
   ```
   mysql -u root -p
   ```
   这将要求你输入 MySQL 的 root 用户的密码。

2. 执行以下 SQL 语句来创建一个新用户:
   ```
   CREATE USER 'username'@'%' IDENTIFIED BY 'password';
   ```
   将 `username` 替换为你要创建的用户名,将 `password` 替换为用户的密码。`%` 表示该用户可以从任何主机连接。

3. 授予用户适当的权限。例如,如果你想将用户授予对所有数据库的全部权限,可以使用以下命令:
   ```
   GRANT ALL PRIVILEGES ON *.* TO 'username'@'%';
   ```
   如果你只想给予用户对特定数据库的权限,可以使用以下命令:
   ```
   GRANT ALL PRIVILEGES ON `database_name`.* TO 'username'@'%';
   ```
   将 `database_name` 替换为你要授予权限的数据库名。

4. 最后,使用以下命令刷新权限以使更改生效:
   ```
   FLUSH PRIVILEGES;
   ```

请注意,默认情况下,MySQL 8 版本的新安装不允许远程连接,你可能需要进行一些额外的配置来确保你的 MySQL 服务器可以接受远程连接。如果有需要,请参考 MySQL 官方文档或者基于你使用的操作系统的相关文档进行配置。


在 MySQL 8 版本中,要允许远程连接,需要执行以下步骤:

1. 连接到 MySQL 数据库服务器,可以使用以下命令进行连接:
   ```
   mysql -u root -p
   ```
   这将要求你输入 MySQL 的 root 用户的密码。

2. 运行以下 SQL 语句以创建一个新用户并授予其远程连接权限:
   ```
   CREATE USER 'username'@'%' IDENTIFIED BY 'password';
   GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION;
   ```
   将 `'username'` 替换为你想要创建的用户名,将 `'password'` 替换为用户的密码。

3. 在配置文件中更新绑定地址(如果需要):
   - 打开 MySQL 配置文件,在 Linux 上通常是 `/etc/mysql/mysql.conf.d/mysqld.cnf`,在 Windows 上通常是 `C:\ProgramData\MySQL\MySQL Server 8.0\my.ini`。
   - 查找 `bind-address` 参数,并将其设置为数据库服务器所在的 IP 地址或 `0.0.0.0` 表示允许所有 IP 连接。例如:`bind-address = 0.0.0.0`。
   - 保存并关闭配置文件。

4. 重启 MySQL 服务器以使配置更改生效。在 Linux 上可以使用以下命令进行重启:
   ```
   sudo service mysql restart
   ```
   在 Windows 上可以通过服务管理器重启 `MySQL80` 服务。

完成以上步骤后,你已经成功允许 MySQL 8 版本的远程连接。请确保通过防火墙配置允许从远程主机访问 MySQL 服务器的端口(默认为 3306)。同时,为了安全起见,请注意控制用户的权限,并仔细审查授权。

如果你还遇到其他问题,请提供更多的具体信息,我将尽力帮助你。

操作如下

检测:

创建专门存放元数据的数据库

创建数据库:

三、准备hive环境

1、将hive安装包解压至/home/hadoop,解压完成后将文件夹重名为hive3

解压:tar -zxvf 压缩包文件包

重命名:mv 旧文件名 新文件名

 2、准备MySQL对应版本的驱动包,并将Java驱动拷贝至hive的jar包文件夹下(lib)

可以直接进行上传到文件夹下

1)查看MySQL版本

2)上传驱动的hive的jar包库里边

3)检验查看

4)由于hive中的guava.jar包与hadoop中的guava.jar包的版本不一致,会导致版本冲突,这里将高版本替换低版本

查看hive这边的版本

查看hadoop这边的版本(/home/hadoop/software/hadoop-3.3.0/share/hadoop/common/lib)

删除hive端的低版本

复制hadoop端的到hive端( cp guava-27.0-jre.jar /home/hadoop/software/hive3/lib)

查看

5)配置环境变量(因为我的环境基本上都是用户级别的环境变量~/.bash_profile,如果是系统环境变量的朋友,那就配置/etc/profile)

退出编辑模式,之后:wq保存之后,刷新环境变量:source ~/.bash_profile

四、配置hive文件

1、进入hive安装目录下的配置文件目录,然后修改配置文件(cd /home/hadoop/software/hive3.1.2/conf)

2、然后在改目录下配置hive-env.sh和hive-default.xml

3、配置hive-env.sh,修改之后source一下进行刷新

4、配置hive-default.xml文件

1)配置元数据的管理方式

2)配置mysql的驱动

注意:

mysql 5版本的设置为:com.mysql.jdbc.Driver

mysql 8版本的设置为:com.mysql.cj.jdbc.Driver

3)配置连接mysql的用户名

4)配置连接mysql的密码

5)配置mysql登录密码

6)配置hive的模式

7)配置是否显示当前表的表头信息

8)配置是否显示当前数据名称

总配置文件:

<?xml version="1.0"?> 
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> 
<configuration> 
    <!-- 选择当前的模式-->
    <property> 
        <name>hive.metastore.local</name> 
        <value>true</value> 
    </property> 

    <!-- 配置存储元数据mysql相关配置 -->
    <property> 
        <name>javax.jdo.option.ConnectionURL</name> 
         <value>jdbc:mysql://hadooptest:3306/hive_metadata?createDatabaseIfNotExist=true&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8</value> 
    </property> 

<!-- useSSL=false和true的区别:
       SSL(Secure Sockets Layer 安全套接字协议),在mysql进行连接的时候,如果mysql的版本是5.7之后的版本必须要加上useSSL=false,mysql5.7以及之前的版本则不用进行添加useSSL=false,会默认为false,一般情况下都是使用useSSL=false,尤其是在将项目部署到linux上时,一定要使用useSSL=false!!!,useSSL=true是进行安全验证,一般通过证书或者令牌什么的,useSSL=false就是通过账号密码进行连接,通常使用useSSL=false!!! -->
    
    <!-- 配置mysql的驱动 -->
    <property> 
        <name>javax.jdo.option.ConnectionDriverName</name> 
        <value>com.mysql.cj.jdbc.Driver</value> 
    </property> 

    <!-- 配置mysql用户名-->
    <property> 
        <name>javax.jdo.option.ConnectionUserName</name> 
        <value>myhive</value> 
    </property>

    <!-- 配置mysql登录的密码-->
    <property> 
        <name>javax.jdo.option.ConnectionPassword</name> 
        <value>123456</value> 
    </property>

    <!--配置hive的环境为本地模式-->
    <property>
        <name>hive.exec.mode.local.auto</name>
        <value>true</value>
    <description>Let Hive determine whether to run in local mode automatically</description>
    </property>

    <!--是否显示当前的表头-->
    <property>
	<name>hive.cli.print.header</name>
	<value>true</value>
    </property> 

    <!--是否显示当前的数据库名称-->
    <property>
	<name>hive.cli.print.current.db</name>
	<value>true</value>
    </property>
</configuration> 

五、测试安装

1、启动我们Hadoop集群

2、初始化元数据库(schematool -dbType mysql -initSchema)

初始化metadata
cd /usr/local/bigdata/apache-hive-3.1.2-bin
bin/schematool -initSchema -dbType mysql -verbos
#初始化是否成功验证标准:初始化成功会在mysql中创建74张表

报错:

Caused by: com.ctc.wstx.exc.WstxParsingException: Illegal character entity: expansion character (code 0x8)。根据引用中的信息,解决这个问题的方法是进入hive-site.xml文件,找到对应行数,删除里面的特殊字符"&#8"即可。

这里我将其进行注释(如何快速定位

再次执行!

结果!

3、登录hive,漂亮,完成!

4、登入beeline

猜你喜欢

转载自blog.csdn.net/qq_57492774/article/details/133091807