当前位置: 首页 > news >正文

ubantu18.04(Hadoop3.1.3)Hive3.1.2安装指南

说明:本文图片较多,耐心等待加载。(建议用电脑)

注意所有打开的文件都要记得保存。本文的操作均在Master主机下进行

 第一步:准备工作

本文是在之前Hadoop搭建完集群环境后继续进行的,因此需要读者完成我之前教程的所有操作。

准备我们的 Hive安装包文件和mysql jdbc 包

首先需要下载Hive安装包文件, Hive官网下载地址      
也可以直接点击这里从百度云盘下载软件(提取码:ziyu)。进入百度网盘后,进入“软件”目录,找到apache-hive-3.1.2-bin.tar.gz文件,下载到本地。

https://dev.mysql.com/downloads/connector/j/mysql jdbc 包https://dev.mysql.com/downloads/connector/j/

我这里呢从网盘直接下载的,因为我从官网没有看到所需要的版本。大家可以找我拿,或者也从网盘下,也很快。

然后我们将下载好的两个文件放到之前的共享文件夹(之前都讲过,可以在第一章看到)

然后拖到下载里

 第二步:安装Hive3.1.2

1.将两台虚拟机都启动。

2.下载并解压Hive安装包

进去Master终端,(右键-》打开终端)(注意下面的最后一个命令是你自己的用户名)

注意中文版是下载,英文版是DownLoads)

cd ~/下载
sudo tar -zxvf ./apache-hive-3.1.2-bin.tar.gz -C /usr/local   # 解压到/usr/local中
cd /usr/local/
sudo mv apache-hive-3.1.2-bin hive       # 将文件夹名改为hive
sudo chown -R hadoop-202202810203:hadoop-220202810203 hive   

 

3. 配置环境变量

继续在终端输入以下命令

vim ~/.bashrc

 export HIVE_HOME=/usr/local/hive
export PATH=$PATH:/usr/local/hadoop/sbin:/usr/local/hadoop/bin:/usr/local/hbase/bin:$HIVE_HOME/bin

 将之前的内容替换为以上内容。

保存退出,继续输入: 

source ~/.bashrc

4.修改/usr/local/hive/conf下的hive-site.xml

 继续输入以下内容“

cd /usr/local/hive/conf
mv hive-default.xml.template hive-default.xml
cd /usr/local/hive/conf
vim hive-site.xml

在hive-site.xml中添加如下配置信息:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

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

<configuration>

 <property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://localhost:3306/hive?useSSL=false&amp;createDatabaseIfNotExist=true</value>
  <description>JDBC connect string for a JDBC metastore</description>
</property

  <property>

    <name>javax.jdo.option.ConnectionDriverName</name>

    <value>com.mysql.jdbc.Driver</value>

    <description>Driver class name for a JDBC metastore</description>

  </property>

  <property>

    <name>javax.jdo.option.ConnectionUserName</name>

    <value>hive</value>

    <description>username to use against metastore database</description>

  </property>

  <property>

    <name>javax.jdo.option.ConnectionPassword</name>

    <value>hive</value>

    <description>password to use against metastore database</description>

  </property>

</configuration>

 然后,按键盘上的“ESC”键退出vim编辑状态,再输入:wq,保存并退出vim编辑器。

 第三步:安装并配置mysql

 1.Ubuntu下mysql

在终端继续执行以下命令:

cd ~
sudo apt update
sudo apt install mysql-server

 按下Y回车

安装完成后,启动mysql

sudo systemctl start mysql

为了方便之后的登录,我们先修改 MySQL 的 root 用户认证方式

1. 用 sudo 登录 MySQL:

sudo mysql

2. 修改 root 用户的验证方式为 mysql_native_password

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

4. 现在再用密码登录试试:(密码是我们刚刚设置的123456)

mysql -u root -p

然后输入你的密码123456。 

 5.mysql jdbc 包

输入exit退出mysql

exit;

我们继续在终端输入以下命令(注意中文版是下载,英文版是DownLoads)

cd ~/下载
tar -zxvf mysql-connector-java-5.1.40.tar.gz   #解压
cp mysql-connector-java-5.1.40/mysql-connector-java-5.1.40-bin.jar  /usr/local/hive/lib #将mysql-connector-java-5.1.40-bin.jar拷贝到/usr/local/hive/lib目录下

6.新建hive数据库

 mysql -u root -p 

 输入密码123456登录到mysql输入下面的命令

create database hive;    #这个hive数据库与hive-site.xml中localhost:3306/hive的hive对应,用来保存hive元数据

7.配置mysql允许hive接入:

继续在mysql输入以下内容:

grant all on *.* to hive@localhost identified by 'hive';   #将所有数据库的所有表的所有权限赋给hive用户,后面的hive是配置hive-site.xml中配置的连接密码
flush privileges;  #刷新mysql系统权限关系表

这里忘了截屏了,应该不会出错 ,然后记得Exit

8.启动hive

启动hive之前,请先启动hadoop集群。

1.进去Master终端,(右键-》打开终端),启动,并用jps检查是否成功启动

start-dfs.sh
start-yarn.sh
mr-jobhistory-daemon.sh start historyserver

我们再启动是会报错,为了避免报错,我们进行如下操作

2. 在终端继续输入以下命令:
find /usr/local/hive/ -name "guava*.jar"
find /usr/local/hadoop/ -name "guava*.jar"

如果两个一样,你可以跳过这一步。 不一样就执行以下命令:(注意下面的版本号用自己的)

rm /usr/local/hive/lib/guava-19.0.jar
cp /usr/local/hadoop/share/hadoop/common/lib/guava-27.0-jre.jar /usr/local/hive/lib/
 3.在终端继续输入以下命令:
cd /usr/local/hive
schematool -dbType mysql -initSchema
 4.启动,在终端输入
hive  #启动hive

启动进入Hive的交互式执行环境以后,会出现如下命令提示符:

hive>

第四步:Hive的常用HiveQL操作

这一个我单独成一章,大家可以在我的专栏里看到。我这里直接进行下一步。

第五步:Hive简单编程实践

退出上面的hive,(输入exit)在终端继续输入下面的命令

1.1)创建input目录,output目录会自动生成。其中input为输入目录,output目录为输出目录。命令如下:

cd /usr/local/hadoop
mkdir input

2)然后,在input文件夹中创建两个测试文件file1.txt和file2.txt,命令如下:

cd  /usr/local/hadoop/input
echo "hello world" > file1.txt
echo "hello hadoop" > file2.txt

为了后续区分,我们之前有好多文件都弄到一个目录里了,这里我们新创建 HDFS 目标目录

创建 HDFS 目标目录(如果未创建)

hdfs dfs -mkdir -p /user/hadoop/input2

 将本地文件上传到 HDFS

hadoop fs -put /usr/local/hadoop/input/file1.txt /user/hadoop/input2/
hadoop fs -put /usr/local/hadoop/input/file2.txt /user/hadoop/input2/

3)执行如下hadoop命令:

cd  ..
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /user/hadoop/input2 /user/hadoop/output2

./bin/hdfs dfs -cat /user/hadoop/output2/*

下面我们通过HiveQL实现词频统计功能,此时只要编写下面7行代码,而且不需要进行编译生成jar来执行。HiveQL实现命令如下:

我们先进入hive,直接启动

在终端输入

hive

1. 创建表 docs

首先创建一个表 docs,它将存储每一行文本

create table docs(line string);

2. 将文件数据加载到表中

然后,使用 LOAD DATA 命令将本地文件系统中的数据加载到 docs 表中。这里的路径 'file:///usr/local/hadoop/input' 是文件存放路径。

load data inpath 'file:///usr/local/hadoop/input' overwrite into table docs;

3. 创建表 word_count 并统计词频

在创建表 word_count 时,HiveQL 查询会:

  • 使用 explodesplit 函数将每行文本按空格分割为单词,并将其作为 word 列。

  • 对每个单词进行计数,并按字母顺序排序。

create table word_count as select word, count(1) as count from (select explode(split(line, ' ')) as word from docs) w group by word order by word;

详细步骤解释:

  1. split(line, ' '):使用 split 函数将 line 列的每一行文本按空格切割成单词。

  2. explode()explode 将每个文本行拆分成多个单词,每个单词成为一行数据。

  3. group by word:按 word 列分组,并使用 count(1) 来计算每个单词的出现次数。

  4. order by word:按字母顺序对单词进行排序.

 继续在终端输入:

select * from word_count;

出现如上界面即为成功。 

结语:整体的操作步我都给大家写出来,并且截图了,大家只需要无脑粘贴就好了,具体的讲解可以看我的资料里的文档解释更加详细,这个实验就结束了。 

上面内容制作不易,喜欢的点个赞和收藏支持一下吧!!

后期会持续更新更多大数据内容,如果想共同学习,就点点关注把(

相关文章:

  • C++算法(15):INT_MIN/INT_MAX使用指南与替代方案
  • 网络原理 - 6
  • ActiveMQ 核心概念与消息模型详解(一)
  • 数据结构的学习(1)二分查找,利用二分查找找局部最小值,选择排序,冒泡排序,插入排序,位运算的基础知识
  • Java虚拟机面试题:JVM调优
  • Vue3 小功能记录:密码的显示与隐藏功能
  • 实时数仓体系概览与架构演进
  • LeetCode-47. 全排列 II
  • Kafka集群
  • Flutter 学习之旅 之 flutter 使用 【验证码】输入组件的简单封装
  • 如何安装Visio(win10)
  • 【阿里云大模型高级工程师ACP习题集】2.3 优化提示词改善答疑机器人回答质量
  • python实战项目64:selenium采集软科中国大学排名数据
  • Alertmanager的安装和详细使用步骤总结
  • 【Java面试笔记:基础】12.Java有几种文件拷贝方式?哪一种最高效?
  • JAVA程序获取SVN提交记录
  • SPSS ANOVA分析test
  • 云原生--CNCF-2-五层生态结构(成熟度3层分类,云原生生态5层结构)
  • 18487.1-2015-解读笔记之四-交流充电之流程分析
  • word内容使用python替换
  • 人民日报开新栏,冼星海之女追忆父亲创作《黄河大合唱》
  • 【社论】高度警惕AI谣言对网络空间的污染
  • 央行副行长:上海国际金融中心建设是我国参与国际金融竞争的核心载体
  • “听公交时听一听”,上海宝山街头遍布“有声图书馆”
  • 当代读书人的暗号:不是拆快递,是拆出版社样书!|世界读书日特辑
  • 外汇局:4月以来外汇市场交易保持平稳,跨境资金延续净流入