在开始学习hive之前我们首先必须弄清楚以下的这些问题,学习任何新的知识首先必须明白该技术产生的背景,该技术的主要的用途。
hive是什么
hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行。
hive的作用
学习成本低,具有SQL基础的开发人员可以通过类似SQL语句实现快速MapReduce统计,使MapReduce变得更加简单,而不必开发专门的MapReduce应用程序。
hive入门
- 下载cdh指定版本的hive(hive-1.1.0-cdh5.15.1)
- 将下载好的压缩包上传到linux环境的指定目录下
- 解压tar -zxvf xxx(这里为hive存放的位置)
- 进行hive相关的配置
hive的相关的配置
1、vim /etc/profile
添加:#hive
export HIVE_HOME=/home/hadoop/app/hive-1.1.0-cdh5.15.1
export PATH=$HIVE_HOME/bin:$PATH
添加完成后退出
source /etc/profile #使配置文件立即生效
进入hive的conf目录下
/hive-1.1.0-cdh5.15.1/conf
#复制配置文件
cp hive-env.sh.template hive-env.sh
#配置hive-env.sh
HADOOP_HOME=/home/hadoop/app/hadoop-2.6.0-cdh5.15.1
#配置hive-site.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<!--这里需要根据自己的ip进行配置-->
<value>jdbc:mysql://192.168.93.10:3306/hive?createDatabaseIfNotExist=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
</property>
</configuration>
上传MySQL的mysql-connector-java-5.1.27.jar到hive的lib目录下
启动hive
切换盘符到hive的/bin目录下,输入:hive(确保已经启动了hadoop)
启动成功的画面
可能遇到的问题
Cannot create directory /tmp. Name node is in safe mode
解决的方法
hadoop dfsadmin -safemode leave