一:简介
Hive是基于Hadoop构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据。其在Hadoop的架构体系中承担了一个SQL解析的过程,它提供了对外的入口来获取用户的指令然后对指令进行分析,解析出一个MapReduce程序组成可执行计划,并按照该计划生成对应的MapReduce任务提交给Hadoop集群处理,获取最终的结果。元数据——如表模式——存储在名为metastore的数据库中。
二:hive搭建
-
环境变量配置
[root@hadoop0 conf]# vi /etc/profile
添加如下内容:
export HIVE_HOME=/home/ranrl/opt/hive-2.1.1
export HIVE_CONF_DIR=$HIVE_HOME/conf
export PATH=\$PATH:\$HIVE_HOME/bin
-
hive元数据储存(mysql数据库搭建)
搭建mysql数据库,创建hive用户和数据库 -
修改配置文件
[root@hadoop0 conf]#cp hive-default.xml.template hive-site.xml
[root@hadoop0 conf]# vi hive-site.xml
修改内容如下:
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.1.27:23308/hive?createDatabaseIfNotExist=true</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>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>
</configuration>
-
下载mysql-connector-java
地址:https://dev.mysql.com/downloads/connector/j/
解压得到mysql-connector-java-5.1.40.jar,拷贝到hive的lib目录下 -
创建元数据表
在进入hive目录下的bin目录,运行命令:./schematool -initSchema -dbType mysql
- 运行hive
[root@hadoop0 conf]#hive
问题:
1.[ERROR] Terminal initialization failed; falling back to unsupported
原因是hadoop目录下存在老版本jline:
/hadoop-2.5.2/share/hadoop/yarn/lib:
-rw-r--r-- 1 root root 87325 Mar 10 18:10 jline-0.9.94.jar
解决方法是:
将hive下的新版本jline的JAR包拷贝到hadoop下:
cp /hive/apache-hive-1.1.0-bin/lib/jline-2.12.jar ./
网友评论