大数据——Hive(理论篇)

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
    
  • 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

猜你喜欢

转载自blog.csdn.net/qq_40395687/article/details/88093927