环境说明:
red-hat 6.7
hadoop-2.7.3.tar.gz
apache-hive-1.2.2-bin.tar.gz
注意:以下路径皆为我自己安装各组件及环境的路径,若有不同,需自己注意
在主节点上安装即可
第一步:解压tar包
tar -zxvf apache-hive-1.2.2-bin.tar.gz -C /home/hadoop
第二步:配置环境变量
vi /etc/profile
添加
export HIVE_HOME=/home/hadoop/apache-hive-1.2.2-bin
export HADOOP_HOME=/usr/local/hadoop-2.7.3
第三步:hive各参数配置
cd /home/hadoop/apache-hive-1.2.2-bin/bin
3.1 vi hive-config.sh
添加
export JAVA_HOME=/usr/jdk1.8.0_131
export HIVE_HOME=/home/hadoop/apache-hive-1.2.2-bin
export HADOOP_HOME=/usr/local/hadoop-2.7.3
第四步:启动hive (此时hive已经能够正常启动并且能够使用,但是它的元数据是保存在derby里面的,为了支持多会话
一般将hive的元数据保存到类似于mysql这样的关系型数据库中)
cd /home/hadoop/apache-hive-1.2.2-bin/bin
执行 ./hive
安装结束,是不是觉得很简单,下面,我将针对hive整合mysql做一个说明
MySQL环境的准备
我这里采用yum源安装
第一步:挂载镜像(具体步骤不做说明)
第二步:修改yum源,改为使用本地yum源(我的镜像挂载在/media下)
vi /etc/yum.repos.d/rhel-debuginfo.repo
[Server]
name=rhel_yum
baseurl=file:///media/Server
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
第三步:安装mysql
yum -y install mysql*
等待安装完毕即可
第四步:启动mysql
service mysqld restart
在shell命令行输入mysql即可进到mysql库里面,注意一定要用root(超级用户)
进入mysql时注意看页面提示,看mysql的版本号
hive整合mysql
第一步:为hive建立相应mysql用户
mysql> create user 'hive' identified by 'mysql'; //创建用户hive,密码为mysql
mysql> grant all privileges on *.* to 'hive'@'%' with grant option; //赋予库中所有表的所有权限给hive用户,%表示所有IP地址都可以
mysql> grant all privileges on *.* to hive@hd1 identified by 'mysql';
mysql> flush privileges;
第二步:建立hive专用的元数据库
[root@hadoop110 /]# mysql -h 172.16.1.138 -u hive -p
Enter password:
mysql> create database hive;
第三步:在hive中配置
cd /home/hadoop/apache-hive-1.2.2-bin/conf/
vi hive-site.xml
<configuration>
<property>
<name>hive.metastore.local</name>
<value>true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.40.140:3306/hive?characterEncoding=UTF-8</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>mysql</value>
</property>
</configuration>
第四步:把msql的JDBC复制到hive的lib下(注意mysql的版本)
cp mysql-connector-java-5.6-bin.jar /home/hadoop/apache-hive-1.2.2-bin/lib/
第五步:验证
hive> show tables;
hive> create table table_1(id int,name string)
row format delimited
fields terminated by '\t'
stored as textfile;
[hadoop@hadoop110 ~]$ mysql -h 192.168.40.140 -u hive -p
mysql> use hive
mysql> show tables;
mysql> select * from TBLS;