Hive 安装及使用详细教程

打印 上一主题 下一主题

主题 843|帖子 843|积分 2529

在大数据处理的世界
一、Hive 安装

(一) 安装前预备

确保系统中已经安装了 jdk、hadoop 以及 mysql,这些是 Hive 运行的根本依靠。
(二)下载并解压 Hive 安装包



  • 从指定网盘下载 hive3.1.3 的安装包 apache - hive - 3.1.3 - bin.tar.gz。
  • 使用以下下令将安装包上传到 Centos7 系统(假设已通过相干工具毗连到 Centos7)。
  • 在 Centos7 系统中执行解压下令:
 

(三)环境变量配置

(1)编辑 /etc/profile 文件
使用 vi 编辑器打开 /etc/profile 文件:
  1. vi /etc/profile
复制代码

(2)在文件末尾添加以下内容(假设 Hive 安装在/usr/local/apache - hive - 3.1.3 - bin目次下):
(3)使环境变量生效,执行以下下令使配置生效:
  1. source /etc/profile
复制代码
(四)Hive 配置文件设置 


  • 进入 Hive 配置文件目次
    1. cd $HIVE_HOME/conf
    复制代码
  • 创建 hive - site.xml 文件
    1. vi hive-site.xml
    复制代码
  • 在文件中添加以下配置信息(根据现实情况修改 mysql 地点、用户名和密码):

  • 保存并退出文件。

(五)上传 mysql 驱动


  • 从网盘下载 mysql - connector - java - 8.0.15.jar 驱动文件到本地。
  • 使用 scp 下令将驱动上传到 Hive 安装目次的 lib 路径下(假设驱动文件在本地当前目次,且 Hive 安装在/usr/local/apache - hive - 3.1.3 - bin目次下):
    1. scp mysql-connector-java-8.0.15.jar root@192.168.40.225:/usr/local/apache-hive-3.1.3-bin/lib
    复制代码
(六)处理 guava 版本题目


  • 删除旧版本的 guava - 19.0.jar
    1. rm $HIVE_HOME/lib/guava-19.0.jar
    复制代码
  • 拷贝新的 guava 版本(假设 Hadoop 安装在/usr/local/hadoop - 2.7.1目次下)
    1. cp $HADOOP_HOME/share/hadoop/common/lib/guava-27.0-jre.jar $HIVE_HOME/lib
    复制代码

(七)创建 mysql 数据库


  • 登录 mysql
    1. mysql -u root -p
    复制代码
  • 输入密码后,执行以下下令创建数据库:
    1. CREATE DATABASE hive_metadata DEFAULT CHARACTER SET UTF8;
    复制代码
  • 退出 mysql
    1. exit;
    复制代码
(八)启动相干服务


  • 启动 hadoop(假如已经运行则无需启动)

  • 执行 Hive 初始化下令
    1. schematool -initSchema -dbType mysql
    复制代码

(九)验证安装

在下令行中输入hive下令,假如可以或许成功进入 Hive 交互界面,如表现类似以下信息,则说明安装成功:

二、Hive 使用

(一)建库操纵

在 Hive 交互界面中,使用以下下令创建数据库(以创建名为hive_test的数据库为例):

(二)建表及加载数据


  • 建表
    在hive_test库中创建student表,包罗name(String 范例)、id(String 范例)、age(int 范例)三个字段:

  • 加载数据(预备数据文件student.csv,内容如下)
    1. ligl, master1, 28
    2. ligl2, master2, 29
    复制代码
    使用 LOAD DATA 下令将数据加载到student表中:
    1. load data local inpath "/root/student.csv" into table student;
    复制代码
(三)查询语句 select 应用


  • 查询所有行所有列
    1. select * from student;
    复制代码

  • 条件查询
    查询vin003的所有数据(假设存在candata表且包罗vin字段):
    1. select * from candata where vin="vin003";
    复制代码
  • 排序
    按照vin对数据进行降序排列(假设存在candata表且包罗vin字段):
    1. select * from candata order by vin desc;
    复制代码
  • 分组聚合
    盘算每个vin上报的最大车速(假设存在candata表且包罗vin和speed字段):
    1. select vin, max(speed) from candata group by vin;
    复制代码
  • 连表查询
    通过内毗连查询两个表的数据(假设存在vin表和candata表且包罗vin字段用于毗连):
    1. select * from candata inner join vin on candata.vin = vin.vin;
    复制代码
(四)Java 操纵 Hive 示例


  • 启动 hiveserver2
    1. nohup hive --service hiveserver2 >/dev/null 2>&1 &
    复制代码
  • 在 hadoop 的core - site.xml文件中添加以下配置(假设 Hadoop 安装在/usr/local/hadoop - 2.7.1目次下):
    1. <configuration>
    2.   <property>
    3.     <name>fs.defaultFS</name>
    4.     <value>hdfs://master:9000</value>
    5.   </property>
    6.   <property>
    7.     <name>hadoop.tmp.dir</name>
    8.     <value>/usr/local/hadoop - 2.7.1/data</value>
    9.   </property>
    10.   <property>
    11.     <name>hadoop.proxyuser.root.hosts</name>
    12.     <value>*</value>
    13.   </property>
    14.   <property>
    15.     <name>hadoop.proxyuser.root.groups</name>
    16.     <value>*</value>
    17.   </property>
    18. </configuration>
    复制代码
  • 重启 hadoop。
  • 创建 Java 项目,引入 Hive 的依靠包(从网盘下载hive - 3.1.3 - jars.zip并解压后引入项目)。
  • 编写 Java 步调查询hive_test库的student表的数据:
    1. import java.sql.Connection;
    2. import java.sql.DriverManager;
    3. import java.sql.ResultSet;
    4. import java.sql.SQLException;
    5. import java.sql.Statement;
    6. public class HiveJdbcTest {
    7.     public static void main(String[] args) throws ClassNotFoundException, SQLException {
    8.         // 加载驱动
    9.         Class.forName("org.apache.hive.jdbc.HiveDriver");
    10.         // 创建jdbc连接
    11.         Connection conn = DriverManager.getConnection("jdbc:hive2://192.168.40.225:10000/hive_test", "root", "");
    12.         // 创建Statement对象并执行select查询
    13.         Statement statement = conn.createStatement();
    14.         String sql = "select * from student";
    15.         // 执行查询并获取结果
    16.         ResultSet resultSet = statement.executeQuery(sql);
    17.         // 遍历结果集并输出数据
    18.         while (resultSet.next()) {
    19.             String name = resultSet.getString("name");
    20.             String id = resultSet.getString("id");
    21.             int age = resultSet.getInt("age");
    22.             System.out.println("name=" + name + ",id=" + id + ",age=" + age);
    23.         }
    24.         // 关闭结果集和连接
    25.         resultSet.close();
    26.         conn.close();
    27.     }
    28. }
    复制代码
    通过以上步骤,我们完成了 Hive 的安装及根本使用操纵。在现实应用中,你可以根据详细需求进一步探索 Hive 的高级功能,如自定义函数、分区表、桶表等,以满足更复杂的数据处理场景。渴望本文能帮助你顺利开启 Hive 之旅,在大数据处理领域发挥更大的潜力。
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

悠扬随风

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表