当前位置:   article > 正文

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

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)

四、配置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

  1. 在 MySQL 5 中,可以使用以下步骤创建用户:
  2. 1. 连接到 MySQL 数据库服务器,可以使用如下命令进行连接:
  3. ```
  4. mysql -u root -p
  5. ```
  6. 这将要求你输入 MySQL 的 root 用户的密码。
  7. 2. 执行以下 SQL 语句来创建一个新用户:
  8. ```
  9. CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
  10. ```
  11. 将 `username` 替换为你要创建的用户名,将 `password` 替换为用户的密码。`localhost` 表示该用户只能从本地连接,如果要允许从远程连接,请将 `localhost` 更改为允许的主机名或 IP 地址。
  12. 3. 授予用户适当的权限。例如,如果你想将用户授予对特定数据库的全部权限,可以使用以下命令:
  13. ```
  14. GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
  15. ```
  16. 将 `database_name` 替换为你要授予权限的数据库名。
  17. 4. 最后,使用以下命令刷新权限以使更改生效:
  18. ```
  19. FLUSH PRIVILEGES;
  20. ```
  21. 在 MySQL 8 版本中,创建用户并为其远程赋权的步骤如下:
  22. 1. 连接到 MySQL 数据库服务器,可以使用以下命令进行连接:
  23. ```
  24. mysql -u root -p
  25. ```
  26. 这将要求你输入 MySQL 的 root 用户的密码。
  27. 2. 执行以下 SQL 语句来创建一个新用户:
  28. ```
  29. CREATE USER 'username'@'%' IDENTIFIED BY 'password';
  30. ```
  31. 将 `username` 替换为你要创建的用户名,将 `password` 替换为用户的密码。`%` 表示该用户可以从任何主机连接。
  32. 3. 授予用户适当的权限。例如,如果你想将用户授予对所有数据库的全部权限,可以使用以下命令:
  33. ```
  34. GRANT ALL PRIVILEGES ON *.* TO 'username'@'%';
  35. ```
  36. 如果你只想给予用户对特定数据库的权限,可以使用以下命令:
  37. ```
  38. GRANT ALL PRIVILEGES ON `database_name`.* TO 'username'@'%';
  39. ```
  40. 将 `database_name` 替换为你要授予权限的数据库名。
  41. 4. 最后,使用以下命令刷新权限以使更改生效:
  42. ```
  43. FLUSH PRIVILEGES;
  44. ```
  45. 请注意,默认情况下,MySQL 8 版本的新安装不允许远程连接,你可能需要进行一些额外的配置来确保你的 MySQL 服务器可以接受远程连接。如果有需要,请参考 MySQL 官方文档或者基于你使用的操作系统的相关文档进行配置。
  46. 在 MySQL 8 版本中,要允许远程连接,需要执行以下步骤:
  47. 1. 连接到 MySQL 数据库服务器,可以使用以下命令进行连接:
  48. ```
  49. mysql -u root -p
  50. ```
  51. 这将要求你输入 MySQL 的 root 用户的密码。
  52. 2. 运行以下 SQL 语句以创建一个新用户并授予其远程连接权限:
  53. ```
  54. CREATE USER 'username'@'%' IDENTIFIED BY 'password';
  55. GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION;
  56. ```
  57. 将 `'username'` 替换为你想要创建的用户名,将 `'password'` 替换为用户的密码。
  58. 3. 在配置文件中更新绑定地址(如果需要):
  59. - 打开 MySQL 配置文件,在 Linux 上通常是 `/etc/mysql/mysql.conf.d/mysqld.cnf`,在 Windows 上通常是 `C:\ProgramData\MySQL\MySQL Server 8.0\my.ini`。
  60. - 查找 `bind-address` 参数,并将其设置为数据库服务器所在的 IP 地址或 `0.0.0.0` 表示允许所有 IP 连接。例如:`bind-address = 0.0.0.0`。
  61. - 保存并关闭配置文件。
  62. 4. 重启 MySQL 服务器以使配置更改生效。在 Linux 上可以使用以下命令进行重启:
  63. ```
  64. sudo service mysql restart
  65. ```
  66. 在 Windows 上可以通过服务管理器重启 `MySQL80` 服务。
  67. 完成以上步骤后,你已经成功允许 MySQL 8 版本的远程连接。请确保通过防火墙配置允许从远程主机访问 MySQL 服务器的端口(默认为 3306)。同时,为了安全起见,请注意控制用户的权限,并仔细审查授权。
  68. 如果你还遇到其他问题,请提供更多的具体信息,我将尽力帮助你。

操作如下

检测:

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

创建数据库:

三、准备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)配置是否显示当前数据名称

总配置文件:

  1. <?xml version="1.0"?>
  2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
  3. <configuration>
  4. <!-- 选择当前的模式-->
  5. <property>
  6. <name>hive.metastore.local</name>
  7. <value>true</value>
  8. </property>
  9. <!-- 配置存储元数据mysql相关配置 -->
  10. <property>
  11. <name>javax.jdo.option.ConnectionURL</name>
  12. <value>jdbc:mysql://hadooptest:3306/hive_metadata?createDatabaseIfNotExist=true&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8</value>
  13. </property>
  14. <!-- useSSL=false和true的区别:
  15. 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!!! -->
  16. <!-- 配置mysql的驱动 -->
  17. <property>
  18. <name>javax.jdo.option.ConnectionDriverName</name>
  19. <value>com.mysql.cj.jdbc.Driver</value>
  20. </property>
  21. <!-- 配置mysql用户名-->
  22. <property>
  23. <name>javax.jdo.option.ConnectionUserName</name>
  24. <value>myhive</value>
  25. </property>
  26. <!-- 配置mysql登录的密码-->
  27. <property>
  28. <name>javax.jdo.option.ConnectionPassword</name>
  29. <value>123456</value>
  30. </property>
  31. <!--配置hive的环境为本地模式-->
  32. <property>
  33. <name>hive.exec.mode.local.auto</name>
  34. <value>true</value>
  35. <description>Let Hive determine whether to run in local mode automatically</description>
  36. </property>
  37. <!--是否显示当前的表头-->
  38. <property>
  39. <name>hive.cli.print.header</name>
  40. <value>true</value>
  41. </property>
  42. <!--是否显示当前的数据库名称-->
  43. <property>
  44. <name>hive.cli.print.current.db</name>
  45. <value>true</value>
  46. </property>
  47. </configuration>

五、测试安装

1、启动我们Hadoop集群

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

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

报错:

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

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

再次执行!

结果!

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

4、登入beeline

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/785737
推荐阅读
相关标签
  

闽ICP备14008679号