一、环境说明:
1、Ubuntu 14.0.4的操作系统;
2、Hadoop2.7.2的伪分布模式;
在准备安装Hive之前要确保Hadoop能够正常运行;
3、Hive必须部署在一台能够访问到HDFS的机器上;
二、安装步骤:
2.1、解压与测试:
1、解压apache-hive-1.2.1-bin-tar.gz;
2、进入解压目录中的conf目录下,把hive-default.xml.template改名为hive-site.xml,暂时可以先不配置;
3、测试能不能进入hive的shell命令模式:进入bin目录下,运行./hive,成功进入hive就OK啦。然后用quit命令退出hive的shell命令模式,进入下步骤;
2.2、安装MySql:
如果机器中或局域网中已安装了MySql,则直接进入下一步骤;
MySql主要是用于存储Hive的数据库对象的元数据(就如:数据库表与HDFS文件的映射关系,字段与内容的映射关系等)。Hive默认自带有一个关系型数据库derby,据说不太好用,另外,为什么这么多关系型数据库,我们偏要选择MySql呢?我的理由很简单:Hive的命令与MySql的命令最相似,使用起来方便啊。其实更重要的原因不是这个,而是因为Derby仅提供单线程处理Hive元数据的功能,另句话说,就是Derby并不支持并发访问,对于集群这简单是不可宽恕的。
安装完,启动MySql服务;
2.3、配置
1、将MySql的数据库连接驱动mysql-connector-java-5.1.32-bin-.jar复制到hive的lib目录下;
2、MySql相关配置:设置root的远程登录及密码
grant all on *.* to root@'%' identified by '123456';
grant all on *.* to root@'192.168.**.**' identified by '123456'; --主机
3、修改hive-site.xml配置:(查找,修改值内容,也可以只留下自定义的配置,Hive的配置文件的加载原则和Hadoop是一样的,优化级如下:程序中定义的配置——>自定义配置文件中的配置——>默认配置文件中的配置)
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.**.**/hive</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>
2.4、运行
进入hive:去到bin目录下,运行./hive,成功进入hive的shell命令模式,说明已经成功了。
这时可到MySql数据库中看到有一个数据库叫hive;
然后HDFS的User目录下同样也有一个叫hive的目录;
hive的开发人员为我们做了很多工作,hive可以通过环境变量,去获取Hdfs的配置信息。