One:Hive的安装部署

Author:龙箬
数据科学与大数据技术专业
CSDN@weixin_43975035
他们说我无趣,是因为他们不知道,我在让世界变得更有趣!

Hive的安装部署

此篇Hive博客在大数据云平台上完成,与在自己电脑上搭建的Hadoop平台上的Hive安装部署部分不同。

输入su,使用root用户
在这里插入图片描述

1 下载安装包

apache-hive-1.2.1-bin.tar.gz;
mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

2 安装mysql

# cd /opt   //到opt目录下

在这里插入图片描述

# tar -zxvf mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz        //解压mysql

在这里插入图片描述

# mv mysql-5.7.13-linux-glibc2.5-x86_64 mysql                //重命名

在这里插入图片描述

# cd mysql                                   //进去mysql目录
# mkdir data                           //在mysql中创建data目录

在这里插入图片描述
注意:忘记创建data目录后面可能会初始化失败

# vi /etc/profile                              //进入配置环境

在这里插入图片描述
延伸: linux下的大部分系统配置,都在/etc/目录下。
按i编辑,添加如下内容:

export MYSQL_HOME=/opt/mysql
export PATH=$PATH:$MYSQL_HOME/bin

在这里插入图片描述
按Esc键,然后:wq保存退出。
注意:不要忘记使环境变量生效。Source命令是使其生效。

# source /etc/profile                            //使环境变量生效

在这里插入图片描述
进入/opt目录,

# cd /opt                                     //进入opt目录
# touch my.cnf                                   //创建my.cnf文件

在这里插入图片描述

# vi my.cnf                                     //编辑my.cnf文件

在这里插入图片描述

在my.cnf中添加如下内容:
在这里插入图片描述
注意:配置文件不要写错。配置文件写错,会导致很多莫名其妙的错误,很难排查。
退出,保存。

# cp my.cnf /etc                             //将/opt目录下的my.cnf文件复制到/etc目录下

在这里插入图片描述

#cd /                                    //进去主目录
# /opt/mysql/bin/mysqld --initialize-insecure --basedir=/opt/mysql  --datadir=/opt/mysql/data --user=root            //初始化数据库

在这里插入图片描述
注意:这是一整行命令,命令中所有路径都是绝对路径

# cp /opt/mysql/support-files/mysql.server /etc/init.d/mysql //将mysql加入服务
# chkconfig mysql on                        //设置mysql开机自启
# service mysql start                       //启动mysql服务

在这里插入图片描述

# mysql -uroot -p                          //登录mysql,密码为空直接回车

在这里插入图片描述

#set password=password('shiyandb123456');           //在mysql登录进去后更改密码

在这里插入图片描述

#create database hive default charset utf8; //创建hive数据库

在这里插入图片描述

#grant all privileges on *.* to 'root'@'%' identified by 'shiyandb123456';  //赋权

在这里插入图片描述
说明:Mysql为了安全性,在默认情况下用户只允许在本地登录,可是在有此情况下,还是需要使用用户进行远程连接,因此为了使其可以远程需要进行赋权

#flush privileges;                            //刷新权限

在这里插入图片描述

#exit                                //退出mysql

在这里插入图片描述

3 验证mysql登录级目录

# mysql -uroot -p    //登录mysql
Enter password:shiyandb123456
show databases;

看到如下反馈信息,则说明创建成功
在这里插入图片描述

mysql> show databases;  //显示数据库名称

在这里插入图片描述
显示系统里已有的数据库。
退出mysql

#   exit

在这里插入图片描述

4 安装hive

1 解压安装包

# cd /opt                //跳转到opt目录下                       
# tar vxf hive.tar.gz          //解压hive压缩文件

在这里插入图片描述
2 添加环境变量

# vi /etc/profile //编辑etc目录下的profile文件

在这里插入图片描述
添加以下内容:

export HIVE_HOME=/opt/hive
在export PATH最后面添加:$HIVE_HOME/bin

在这里插入图片描述

# source /etc/profile                     //使环境变量生效

在这里插入图片描述

5 修改hive-env.sh和hive-site.xml

修改hive-env.sh

#cd hive/conf/                   //进入hive的conf目录
#cp hive-env.sh.template hive-env.sh         //重新命名

在这里插入图片描述

#vi hive-env.sh             //vi是进入文件的编辑命令

在这里插入图片描述
指定hadoop安装目录
修改hadoop的安装目录

HADOOP_HOME=/opt/hadoop

在这里插入图片描述

# cd hive/conf/                         //进入hive的conf目录
# cp hive-default.xml.template hive-site.xml     //重新命名

在这里插入图片描述

# vim hive-site.xml                       //编辑hive-site.xml

在这里插入图片描述
提示:配置文件内容较多,可以使用vi中的搜索功能(查找功能:非编辑状态下按斜杠/并输入关键字后回车,按n可选择下一个)
获取主机IP:
在这里插入图片描述
主要修改以下参数

<property> 
   <name>javax.jdo.option.ConnectionURL </name> 
   <value>jdbc:mysql://主机ip:3306/hive?useSSL=false</value>
</property>

连接mysql的url,MySQL默认的数据通道是不加密的,在一些安全性要求特别高的场景下,我们需要配置MySQL端口为SSL,使得数据通道加密处理,避免敏感信息泄漏和被篡改。
修改前:
在这里插入图片描述
修改后:
在这里插入图片描述
Mysql的驱动程序

<property> 
   <name>javax.jdo.option.ConnectionDriverName </name> 
   <value>com.mysql.jdbc.Driver </value> 
</property>

修改前:
在这里插入图片描述
修改后:
在这里插入图片描述
密码

<property> 
   <name>javax.jdo.option.ConnectionPassword </name> 
   <value>shiyandb123456</value> 
</property> 

修改前:
在这里插入图片描述
修改后:
在这里插入图片描述
用户名

<property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>
    <description>Username to use against metastore database</description>
</property>

修改前:
在这里插入图片描述

修改后:
在这里插入图片描述
指定HDFS内hive数据临时文件存放目录。启动hive,HDFS即自动创建

<property>
    <name>hive.exec.local.scratchdir</name>
    <value>/opt/hive/iotmp</value>
    <description>Local scratch space for Hive jobs</description>
</property>

将配置值含有“system:java.io.tmpdir”的配置项的值改为“/opt/hive/iotmp”
修改前:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

修改后:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6 拷贝mysql-connector-java-5.1.40-bin.jar 到/opt/hive/lib 的lib下面

提示:mysql的JDBC驱动包一定要安装。
在这里插入图片描述

#tar -zxvf mysql-connector-java-5.1.40.tar.gz

在这里插入图片描述

#cd mysql-connector-java-5.1.40
#cp mysql-connector-java-5.1.40-bin.jar /opt/hive/lib

在这里插入图片描述
在这里插入图片描述

7 把jline-2.12.jar拷贝到hadoop相应的目录下,替代jline-0.9.94.jar,否则启动会报错

提示:hadoop与hive都会使用这个包,版本不统一启动hive会报错

#cp /opt/hive/lib/jline-2.12.jar /opt/hadoop/share/hadoop/yarn/lib/

在这里插入图片描述
在这里插入图片描述

#mv/opt/hadoop/share/hadoop/yarn/lib/jline-0.9.94.jar/opt/hadoop/share/hadoop/yarn/lib/jline-0.9.94.jar.bak    //给jline包重新命名,没有则不要执行这一步

从上述截图中可以看出无jline-0.9.94.jar,故不需要进行重命名

8 创建hive临时文件夹

# cd /opt/hive                               //进入hive目录
# mkdir iotmp                                 //创建iotmp目录

在这里插入图片描述
初始化hive元数据库,否则 mysql 里面储存 hive 元数据的数据库是空的,无法启动

9 hive启动测试

在hive/bin目录下执行:

# ./schematool -dbType mysql -initSchema             //初始化元数据hive,会报错

在这里插入图片描述
启动hadoop后(hadoop已启动),执行hive命令

#./hive

在这里插入图片描述
测试输入 show database;

hive> show databases;

在这里插入图片描述

10 基本语法

1.基本数据类型
hive支持多种不同长度的整型和浮点型数据,支持布尔型,也支持无长度限制的字符串类型。例如:TINYINT、SMALINT、BOOLEAN、FLOAT、DOUBLE、STRING等基本数据类型。这些基本数据类型和其他sql方言一样,都是保留字。
2.集合数据类型
hive中的列支持使用struct、map和array集合数据类型。大多数关系型数据库中不支持这些集合数据类型,因为它们会破坏标准格式。关系型数据库中为实现集合数据类型是由多个表之间建立合适的外键关联来实现。在大数据系统中,使用集合类型的数据的好处在于提高数据的吞吐量,减少寻址次数来提高查询速度。
Hive的表其实就是HDFS的目录,按表名把文件夹分开。
使用集合数据类型创建表实例:
CREATE TABLE STUDENTINFO
(
NAME STRING,
FAVORITE ARRAY,
提示:这个地方的语法,仅仅是测试数据库安装可正常。后面有专门的HQL查询课件。
COURSE MAP<STRING,FLOAT>,
ADDRESS STRUCT<CITY:STRING,STREET:STRING>
);
查询语法:
SELECT S.NAME,S.FAVORITE[0],S.COURSE[“ENGLISH”],S.ADDRESS.CITY FROM STUDENTINFO S;
3.分区表

创建分区表:
create table employee (name string,age int,sex string) partitioned by (city string) row format delimited fields terminated by '\t';

在这里插入图片描述

分区表装载数据:
load data local inpath '/data/hive/data/emp.txt' into table employee partition (city='hubei');

在这里插入图片描述
退出Hive Shell:
在这里插入图片描述
终止Hadoop:
在这里插入图片描述

本实验大数据技术平台来自于本人所在高校机器学习实验室
如有侵权,请联系侵删
需要本实验源代码和实验报告的小伙伴请联系QQ:2225872659

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值