Hive可以将结构化数据映射成一张表。Hive是一个可以将HQL语句转换成mapreduce任务的工具。Hive不是分布式计算框架,mapreduce才是分布式计算框架。hive只是工具,只是工具,只是工具!理解这一点,就能知道我们安装hive只需要安装在一台服务器即可,不需要安装多台。
因hive的数据来源于hdfs,而转换成mapruduce需要借助yarn进行资源协调,所以启动hive前,需要安装和启动hadoop。hive默认存储元数据是在derby数据库,推荐使用mysql进行存储hive的元数据。 -------先了解个大概,搭建完hive后,边操作边了解。
- 元数据:hive可以将结构化数据映射成一张表,而一张表就会有表的名字、表属于哪个库,表的创建者是谁、表的访问权限、表的字段名称和类型、表是什么时候创建等等信息,这些统称为表的元数据信息。
- 本次演示为centos7下安装mysql和hive。
1、安装mysql
1 安装mysql
cd /kkb/soft/
yum -y install wget
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
# 这步可能会花些时间(1~3个小时),安装完成后就会覆盖掉之前的mariadb
yum -y install mysql-community-server
2 启动mysql
# 执行以下命令启动mysql服务
systemctl start mysqld.service
# 查看mysql启动状态
systemctl status mysqld.service
# 设置为开机自启动服务
systemctl enable mysqld.service
3 设置root密码
1、查看root临时密码
# 切换到root用户,使用grep "password" /var/log/mysqld.log进行查看root临时密码
[root@node03 ~]# grep "password" /var/log/mysqld.log
2019-10-30T09:07:55.516002Z 1 [Note] A temporary password is generated for root@localhost: P-!_a3RaYejQ
2、修改root的密码,使临时密码作废
[root@node03 ~]# mysql -uroot -p
Enter password: ----------输入上面的临时密码,进行登录
mysql> set global validate_password_policy=LOW;
mysql> mysql -uroot -pset global validate_password_length=6;
mysql> mysql -uroot -pALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
# 开启mysql的远程连接权限
mysql> grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
mysql> flush privileges;
4 查看mysql版本
# 可以看出该版本为5.7.28
[hadoop@node03 ~]$ mysql --version
mysql Ver 14.14 Distrib 5.7.28, for Linux (x86_64) using EditLine wrapper
2、安装hive
1 上传hive安装包
将hive-1.1.0-cdh5.14.2.tar.gz上传到/kkb/soft目录下
2 解压hive安装包
解压安装包到指定的规划目录
cd /kkb/soft/
tar -zxf hive-1.1.0-cdh5.14.2.tar.gz -C /kkb/install/
3 修改配置文件
- 1、进入到Hive的安装目录下的conf文件夹中
- cd /kkb/install/hive-1.1.0-cdh5.14.2/conf/
- 2、修改hive-env.sh
-
mv hive-env.sh.template hive-env.sh
-
vim hive-env.sh
-
#配置HADOOP_HOME路径
export HADOOP_HOME=/kkb/install/hadoop-2.6.0-cdh5.14.2/
#配置HIVE_CONF_DIR路径
export HIVE_CONF_DIR=/kkb/install/hive-1.1.0-cdh5.14.2/conf
-
3、修改hive-site.xml
- vim hive-site.xml
<configuration> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://node03:3306/hive?createDatabaseIfNotExist=true&characterEncoding=latin1&useSSL=false</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>123456</value> </property> <property> <name>hive.cli.print.current.db</name> <value>true</value> </property> <property> <name>hive.cli.print.header</name> <value>true</value> </property> <property> <name>hive.server2.thrift.bind.host</name> <value>node03</value> </property>
</configuration>
```
- 4、修改hive的日志配置文件路径,便于我们排查hive出现的错误问题
[hadoop@node03 ~] mkdir -p /kkb/install/hive-1.1.0-cdh5.14.2/logs/
[hadoop@node03 ~] cd /kkb/install/hive-1.1.0-cdh5.14.2/conf/
[hadoop@node03 ~] mv hive-log4j.properties.template hive-log4j.properties
[hadoop@node03 ~] vim hive-log4j.properties
#更改以下内容,设置我们的日志文件存放的路径
hive.log.dir=/kkb/install/hive-1.1.0-cdh5.14.2/logs/
4 将mysql的驱动包放置到hive的lib目录
1、查看mysql的版本
[root@node03 ~]# mysql --version
2、下载相应的mysql驱动包
# 进入maven中央库 https://mvnrepository.com/artifact/mysql/mysql-connector-java
# 选择相应版本的mysql对应的mysql-connector-java。mysql版本和mysql-connector-java的版本不要差太多一般都能用,本次下载的驱动版本为5.1.38
[root@node03 ~]# wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.38/mysql-connector-java-5.1.38.jar
3、 将mysql驱动包移动到hive的lib目录
[root@node03 ~]# mv mysql-connector-java-5.1.38.jar /kkb/install/hive-1.1.0-cdh5.14.2/lib/
5 验证hive是否安装成功
[root@node03 ~]# cd /kkb/install/hive-1.1.0-cdh5.14.2/bin
[root@node03 bin]# ./hive
ls: cannot access /kkb/install/spark/lib/spark-assembly-*.jar: No such file or directory
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/kkb/install/hbase-1.2.0-cdh5.14.2/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/kkb/install/hadoop-2.6.0-cdh5.14.2/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
Logging initialized using configuration in file:/kkb/install/hive-1.1.0-cdh5.14.2/conf/hive-log4j.properties
WARNING: Hive CLI is deprecated and migration to Beeline is recommended.
hive (default)>
# 查看数据库列表
hive (default)> show databases;
OK
database_name
default
Time taken: 6.416 seconds, Fetched: 1 row(s)
hive (default)>
# 输入quit;可退出
hive (default)> quit;
[root@node03 bin]#
- hive的数据库元数据可以在mysql的hive库(数据库名根据你的实际情况而定)下的DBS表查看

- hive的数据库表的元数据可以在mysql的hive库下(数据库名根据你的实际情况而定)下的TBLS表查看

到此就算安装hive结束了。
网友评论