上一节搭建完了Hadoop集群,这一节我们来搭建Hive集群,主要是后面的Spark SQL要用到Hive的环境。
Hive下载安装
下载Hive 0.13的软件包,可以在百度网盘进行下载。链接: http://pan.baidu.com/s/1gePE9O3 密码: unmt。
下载完用Xftp上传到spark1服务器,我是放在/home/software目录下。
[root@spark1 ~]# cd /home/software/ [root@spark1 software]# tar -zxf apache-hive-0.13.1-bin.tar.gz //解压 [root@spark1 software]# mv apache-hive-0.13.1-bin /usr/lib/hive //重命名并移到/usr/lib目录下 [root@spark1 software]# cd /usr/lib
设置hive环境变量。
[root@spark1 lib]# vi ~/.bashrc //配置环境变量 //添加变量,别忘了Path的变量也要修改 export HIVE_HOME=/usr/lib/hive export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin //加上hive的路径
保存退出,是文件生效。
[root@spark1 lib]# source ~/.bashrc
完了之后,我们使用基于MYSQL来启动Hive,将Hive的元数据库放在MYSQL。这里就不说MYSQL的安装了(偷个懒),不懂得朋友可以自行度娘,比较简单。
完成之后我们将MYSQL的连接包放到/usr/lib/hive/lib目录下。
[root@spark1 lib]# cp /home/software/mysql-connector-java-5.1.34.jar /usr/lib/hive/lib/
接下来我们用MYSQL对hive元数据库进行授权。
[root@spark1 lib]# mysql mysql> create database if not exists hive_metadata; //创建 hive_metadata的数据库 mysql> grant all privileges on hive_metadata.* to 'hive'@'%' identified by 'hive'; mysql> grant all privileges on hive_metadata.* to 'hive'@'localhost' identified by 'hive'; mysql> grant all privileges on hive_metadata.* to 'hive'@'spark1' identified by 'hive'; mysql> flush privileges; //刷新权限 mysql> use hive_metadata; mysql> exit
完成之后我们开始配置hive的配置文件。
- 修改hive-default.xml.template文件,并且重命名为hive-site.xml
[root@spark1 hive]# cd /usr/lib/hive/conf/ [root@spark1 conf]# mv hive-default.xml.template hive-site.xml //重命名 [root@spark1 conf]# vi hive-site.xml //修改相关的property //修改javax.jdo.option.ConnectionURL <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://spark1:3306/hive_metadata?createDatabaseIfNotExist=true</value> <description>JDBC connect string for a JDBC metastore</description> </property> //修改javax.jdo.option.ConnectionDriverName <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Drive</value> <description>Driver class name for a JDBC metastore</description> </property> //修改数据库用户名 //和之前的mysql里授权创建的相对应,用户名:hive,密码:hive <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> //修改hive.metastore.warehouse.dir <property> <name>hive.metastore.warehouse.dir</name> <value>/user/hive/warehouse</value> <description>location of default database for the warehouse</description> </property>
修改完成保存退出。
- 配置hive-env.sh.template重命名为hive-env.sh。
[root@spark1 conf]# mv hive-env.sh.template hive-env.sh //重命名
- 修改/hive/bin/hive-config.sh
[root@spark1 conf]# cd ../bin [root@spark1 bin]# vi hive-config.sh //配置hadoop、java、hive的环境变量,添加 #environment variables export JAVA_HOME=/usr/java/jdk1.7.0_21 export HADOOP_HOME=/usr/lib/hadoop export HIVE_HOME=/usr/lib/hive
- 验证hive是否安装成功
[root@spark1 lib]# hive 16/08/07 16:39:03 WARN conf.HiveConf: DEPRECATED: hive.metastore.ds.retry.* no longer has any effect. Use hive.hmshandler.retry.* instead Logging initialized using configuration in jar:file:/usr/lib/hive/lib/hive-common-0.13.1.jar!/hive-log4j.properties hive>
出现上述表明hive安装成功。