1.什么是Hive
-
感性认知
数据库与数据仓库
-
数据库:
mysql、oracle、sqlserver、DB2、sqlite、MDB
-
数据仓库:
Hive,是MR的客户端,也就是说不必要每台机器都安装部署Hive
-
理性认知:
-
Hive的特性
1、操作接口是采用SQL语法,HQL
2、避免了写MapReduce的繁琐过程 -
Hive体系结构
1、Client
** 终端命令行
** JDBC – 不常用,非常麻烦(相对于前者)
2、metastore
** 原本的数据集和字段名称以及数据信息之间的双射关系。
** 我们目前是存储在Mysql中
3、Server-Hadoop
** 在操作Hive的同时,需要将Hadoop的HDFS开启,YARN开启,MAPRED配置好
2.Hive的部署与安装
-
解压Hive到安装目录
$ tar -zxf /opt/softwares/hive-0.13.1-cdh5.3.6.tar.gz -C ./
-
重命名配置文件
$ mv hive-default.xml.template hive-site.xml $ mv hive-env.sh.template hive-env.sh
-
JAVA_HOME=/opt/modules/jdk1.8.0_121 HADOOP_HOME=/opt/modules/cdh/hadoop-2.5.0-cdh5.3.6/ export HIVE_CONF_DIR=/opt/modules/cdh/hive-0.13.1-cdh5.3.6/conf
-
安装Mysql
$ su - root ***yum -y install mysql mysql-server mysql-devel*** ***wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm*** ***rpm -ivh mysql-community-release-el7-5.noarch.rpm*** ***yum -y install mysql-community-server*** ***尖叫提示:如果使用离线绿色版本(免安装版本)需要手动初始化Mysql数据库***
-
配置Mysql
开启Mysql服务 systemctl start mysqld.service 设置root用户密码 mysqladmin -uroot password '123456' 为用户以及其他机器节点授权 mysql> grant all on *.* to root@'hadoop-senior01.itguigu.com' identified by '123456'; grant all on *.* to root@'hadoop104' identified by '000000'; grant:授权 all:所有权限 *.*:数据库名称.表名称 root:操作mysql的用户 @'':主机名 密码:123456
-
hive-site.xml
<property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://192.168.0.129:3306/metastore?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>root</value> <description>username to use against metastore database</description> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>123456</value> <description>password to use against metastore database</description> </property>
-
hive-log4j.properties
hive.log.dir=/opt/modules/cdh/hive-0.13.1-cdh5.3.6/logs
-
拷贝数据库驱动包到Hive根目录下的lib文件夹
$ cp -a mysql-connector-java-5.1.27-bin.jar /opt/modules/cdh/hive-0.13.1-cdh5.3.6/lib/
-
启动Hive
$ bin/hive
如果启动失败:
进入mysql:
mysql>use mysql;
mysql>select user,password from user;
mysql> delete from user where 1=1;
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
mysql> flush privileges;
mysql>quit;
重新进入mysql : mysql -uroot -ppassword (如果能成功进入mysql,进入下一步)
先quit退出mysql,直接输入hive