1、下载解压
http://archive.cloudera.com/cdh5/cdh/5/
这里以hive-1.1.0-cdh5.16.1版本为例,hive对应hadoop版本请参考hive官网,需注意版本不兼容的问题
tar -xvf hive-1.1.0-cdh5.16.1.tar.gz
2、配置
2.1、配置环境变量
vi ~/.bash_profile
添加如下内容
export HIVE_HOME=/opt/modules/hive-1.1.0-cdh5.16.1
export PATH=$PATH:$HIVE_HOME/bin
保存退出,执行source命令,将环境变量生效
source ~/.bash_profile
查看是否配置成功
hive --version
出现以下结果,表明环境配置成功
Hive 1.1.0-cdh5.16.1
Subversion file:///data/jenkins/workspace/generic-binary-tarball-and-maven-deploy/CDH5.16.1-Packaging-Hive-2017-11-09_08-08-07/hive-1.1.0-cdh5.16.1 -r Unknown
Compiled by jenkins on Thu Nov 9 08:20:30 PST 2017
From source with checksum a07ce805880f1ad3d4f92b623df89745
2.2、配置hive-site.xml
创建存放hive临时文件目录 (本地目录)
mkdir -p /data/hive/tmp
进入${HIVE_HOME}/conf目录
cp hive-default.xml.template hive-site.xml
vim hive-site.xml
将原来的值修改为相应的mysql对应信息
<!--mysql连接地址-->
<property>
<name>javax.jdo.option.ConnectionURL</name>mysql
<value>jdbc:mysql://192.168.11.203:3306/hive?useSSL=false</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>hive</value>
</property>
2.3、配置hive-env.sh
cp hive-env.sh.template hive-env.sh
修改下面两个配置
HADOOP_HOME=/opt/modules/hadoop-2.6.0-cdh5.16.1
export HIVE_CONF_DIR=/opt/modules/hive-1.1.0-cdh5.16.1/conf
2.4 复制Jar包
复制mysql驱动Jar包至${HIVE_HOME}/lib目录
查看是否复制成功
cd /opt/modules/hive-1.1.0-cdh5.16.1/lib
ll mysql-connector-java-5.1.40-bin.jar
3、验证
查看配置是否正常
hive
如果出现下面异常
Exception in thread "main" java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D
at org.apache.hadoop.fs.Path.initialize(Path.java:206)
at org.apache.hadoop.fs.Path.<init>(Path.java:172)
at org.apache.hadoop.hive.ql.session.SessionState.createSessionDirs(SessionState.java:659)
at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:582)
at org.apache.hadoop.hive.ql.session.SessionState.beginStart(SessionState.java:549)
at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:750)
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:686)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
Caused by: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D
at java.net.URI.checkPath(URI.java:1823)
at java.net.URI.<init>(URI.java:745)
at org.apache.hadoop.fs.Path.initialize(Path.java:203)
... 12 more
解决方案:
mkdir -p /data/hive/tmp
将配置文件hive-site.xml里面包含:
${system:java.io.tmpdir} 全部替换为 /data/hive/tmp
{system:user.name} 全部替换为 {user.name}
再次执行查看是否正常
hive
进入hive,表明安装成功
4、初始化Mysql
进入配置连接的mysql,新建数据库hive
5、初始化hive
执行下面命令初始化数据库
schematool -dbType mysql -initSchema
完成后打开hive数据库,会发现多了很多表
6、测试
启动meta-metastore
hive --service metastore &
启动hive客户端
hive
hive> create database hive_1;
OK
Time taken: 2.192 seconds
hive> show databases;
HDFS下的情况:
mysql下的情况:
在hive_1下面新建一张表
hive> show databases;
OK
default
hive_1
Time taken: 0.31 seconds, Fetched: 2 row(s)
hive> use hive_1;
OK
Time taken: 0.024 seconds
hive> create table hive_01 (id int,name string);
OK
Time taken: 1.665 seconds
hive> show tables;
OK
hive_01
Time taken: 0.085 seconds, Fetched: 1 row(s)
HDFS下的情况:
Mysql下的情况: