hive简介及安装

什么是hive

Hive是基于Hadoop的一个数据仓库工具(离线),可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。

为什么使用Hive

1.直接使用hadoop所面临的问题

  • 人员学习成本太高
  • 项目周期要求太短
  • MapReduce实现复杂查询逻辑开发难度太大

2.为什么要使用Hive

  • 操作接口采用类SQL语法,提供快速开发的能力。
  • 避免了去写MapReduce,减少开发人员的学习成本。
  • 功能扩展很方便。

Hive的特点

  • 可扩展
    Hive可以*的扩展集群的规模,一般情况下不需要重启服务。
  • 延展性
    Hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数。
  • 容错
    良好的容错性,节点出现问题SQL仍可完成执行。

hive的基本架构

hive简介及安装
Jobtracker是hadoop1.x中的组件,它的功能相当于:
Resourcemanager+MRAppMaster

TaskTracker 相当于:
Nodemanager + yarnchild

hive安装

1、最简安装:用内嵌derby作为元数据库
在有HADOOP环境的机器上,直接解压一个hive安装包即可
此时,安装的这个hive实例使用其内嵌的derby数据库作为记录元数据的数据库
此模式不便于让团队成员之间共享协作
2、标准安装:将mysql作为元数据库
2.1启动已安装mysql

[[email protected] ~]# mysql -uroot -p123456

2.2在mysql中,给root用户授予从任何机器上登陆mysql服务器的权限:

mysql> grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;

2.3解压
[[email protected] ~]# tar -zxvf apache-hive-1.2.2-bin.tar.gz -C /usr/local
2.4配置
hive-env.sh

# set java environment
export JAVA_HOME=/usr/local/jdk1.8.0_181
export PATH=$JAVA_HOME/bin:$PATH

# set hadoop path
export HADOOP_HOME=/usr/local/hadoop-2.8.3
export PATH=$PATH:$HADOOP_HOME/bin:$PATH
 
# set hive environment
export HIVE_HOME=/usr/local/apache-hive-1.2.2-bin
export PATH=$HIVE_HOME/bin:$PATH
export HIVE_AUX_JARS_PATH=$HIVE_HOME/bin
export HIVE_CONF_DIR=$HIVE_HOME/conf
export HADOOP_USER_CLASSPATH_FIRST=true

hive-site.xml

<configuration>
	 <property>
        <name>javax.jdo.option.ConnectionURL</name>
       <value>jdbc:mysql://localhost:3306/hivecreateDatabaseIfNotExist=true&amp;useSSL=false</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>
    <property>
      <name>hive.metastore.warehouse.dir</name>
      <value>/user/hive/warehouse</value>
      <description>hive表的默认存储路径,为HDFS的路径location of default database for warehouse</description>
    </property>
</configuration>

2.5、上传一个mysql的驱动jar包到hive的安装目录的lib中
2.6、配置hive环境变量

[[email protected] conf]# vi /etc/profile

export HIVE_HOME=/usr/local/apache-hive-1.2.2-bin

[[email protected] conf]# source /etc/profile

2.7、启动hive交互shell

[[email protected] ~]# hive

启动hive服务

1:使用服务的形式启动hive
nohup hiveserver2 >/dev/null 2>&1 &
2:链接方式
nohup hiveserver2 &
1:beenline
hive --service beeline
!connect jdbc:hive2://hdp2:10000 root 123456
2:beeline -u jdbc:hive2://hdp2:10000 -n root
set hive.exec.mode.local.auto=true;