一:Hive简介
Hive在Hadoop生态圈中属于数据仓库的角色。它能够管理Hadoop中的数据,同时可以查询Hadoop中的数据。从本质上讲,Hive是一个SQL解析引擎。Hive可以把SQL查询转换为MapReduce的job来运行。
Hive有一套映射工具,可以把SQL转换为MapReduce中的job,可以把SQL中的表、字段转换为HDFS中文件对应的列。这套映射工具称之为metastore,也叫元数据,默认是默认是存在derby中,但derby是单session的,不利于开发,所以我们要将其存储到MYSQL中。
二:Hive安装部署
1.上传解压:tar -zxvf hive-0.9.0.tar.gz
注:Hive是个客户端工具,无所谓伪分布和分布式的概念。
2.为了方便操作,我们对解压后的目录进行重命名:mv hive-0.9.0 hive
3.设置Hive的环境变量:vim /etc/profile
4.刷新配置文件:source /etc/profile
5.重命名hive/conf/hive-default.xml.template文件:mv hive-default.xml.template hive-site.xml
6.重命名hive/conf/hive-env.sh.template文件:mv hive-env.sh.template hive-env.sh
7.修改hadoop/conf/hadoop-env.sh,vim /usr/local/hadoop/conf/hadoop-env.sh内容如下:
export HADOOP_CLASSPATH=.:$CLASSPATH:$HADOOP_CLASSPATH:$HADOOP_HOME/bin
注:这里修改的是Hadoop的env.sh文件,之所要要修改Hadoop,是因为Hive是基于Hadoop的框架。
8.进入$HIVE_HOME/bin目录,vim /usr/local/hive/bin/hive-config.sh,增加以下内容:
export JAVA_HOME=/usr/local/jdk
export HIVE_HOME=/usr/local/hive
export HADOOP_HOME=/usr/local/hadoop
注:用户要对应自己的实际情况修改相关配置存放的位置。
至此,Hive安装完毕!
使用hive命令即可进入Hive的终端:hive
注:因为hive是基于hadoop的,所以要先启动Hadoop
Hive的操作和标准SQL大致相同:
注:Hive会把相关名转换为MapReduce中的job,但不是所有命令都会转化,这个后面会讲到。
Hive中的真实数据都是存放在HDFS中的,hive在HDFS中的默认位置是/usr/hive/warehouse,是由配置文件hive-conf.xml中属性hive.metastore.warehouse.dir决定的。我们可以通过浏览器查看:
我们可以修改hive-site.xml文件进行修改:
我们把它修改到/hive目录下:
我们在文章开头说过,Hive的元数据是存在derby中的,但是derby是单session的,不利于我们实际开发中的协作开发,为此,我们需要将元数据存放到MYSQL数据库中,下面我们来安装MYSQL:
1.先查看Linux中有没有MYSQL:rpm -qa | grep mysql
注:如果系统原来就有一些MYSQL文件,我们先删除,使用命令:rpm -e XXX --nodeps
2.安装MYSQL服务端:rpm -i MYSQL-server-5.5.31-2.e16.i686.rpm
启动服务端:mysqld_safe &
3.安装MYSQL客户端:rpm -i MySQL-client-5.5.31-2.e16.i686.rpm
4.修改密码:mysql_secure_installation
注:看清楚YES还是NO,大小写也不要搞错。
登录MYSQL:mysql -uroot -pXXX
5.使用MYSQL作为hive的metastore
5.1 把MYSQL的jdbc驱动包放到hive的lib目录下:cp mysql-connector-java-5.1.10.jar /usr/loca/hive/lib
5.2 修改hive-site.xml文件 :vim /hive/conf/hive-site.xml 修改内容为:
javax.jdo.option.ConnectionURL
jdbc:mysql://liaozhongmin1:3306/hive?createDatabaseIfNotExist=true
javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver
javax.jdo.option.ConnectionUserName
root
javax.jdo.option.ConnectionPassword
134045
登录:hive
6.给MYSQL赋予远程登录的权限:grant all on hive.* to 'root'@'%' identified by '134045';然后再刷新配置使其生效:flush privileges
7.在本地Window7系统下远程连接我们的MYSQL数据库
至此,Hive的安装部署及相关配置就全部完成了!