hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
声明
安装hive的机器上存在hadoop,否则hive不能使用
安装hive的机器是否有“hadoop服务”无影响,但是需要有hadoop可执行程序和jar包
注:“hadoop服务”是指 jps命令输出的那些 namenode datanode.. 等等
下文中使用的 hc9.spads 为hadoop集群中的某一节点
Hadoop 版本为 2.5.1
一、准备软件包
将 apache-hive-1.2.1-bin.tar.gz 和 mysql-connector-java-5.1.32.tar.gz 上传到Hadoop集群中节点hc9.spads,分别解压。
二、检查 hadoop的环境变量,如果不存在则需要配置
HADOOP_HOME
验证:printenv - 输出环境变量
三、检查 hadoop集群运行,如果未运行则需要运行
NameNode 和 ResourceManager 的Http监控页面
四、检查hive 的环境变量,如果不存在则需要配置
HIVE_HOME
验证:
五、替换低版本jar
Hadoop下jline...jar 版本太低,需要更换为hive/lib下的 jline...jar
未替换会抛出异常(略),操作如下:
注; 仅替换 hive所在机器即可,且不需要重启hadoop服务。
六、准备DBMS - MySQL
1、安装MySQL,其中会有提示输入 ,通常输入 y
2、启动MySQL
3、初始用户名密码
4、登录MySQL
5、 建立hive数据库
注:使用latin字符集,若设置为utf8,hive连接时会出错。
6、授予权限
七、拷贝JDBC Driver 到hive下的lib
八、配置hive-site.xml 中
1、 HIVE - DBMS 配置
>Driver
>URL
>UserName
>Password
2、更改hive-site.xml 中的变量为真实变量
注:此二变量配置文件中存在多个,均需修改。
可将system:java.io.tmpdir 更改为/usr/local/hive
可将system:user.name 更改为 root,如下
否则会报出以下异常:
九、安装完成,启动Hive
十、测试Hive QL 脚本
1、建表
2、加载数据
>Linux机器上 新建数据文件
内容如下:
>通过hive上传到hdfs
>通过hive,查询表内容和表行数