简介:

Apache hive 是基于 Hadoop 的一个开源的数据仓库工具,可以将结构化的数据文件映射为一张数据库表,

并提供简单的sql查询功能,将 SQL 语句转换为 MapReduce 任务执行。

Apache hive 数据库仓库工具管理着两类数据:MetaData ( 这里我们存储在远程 MySQL DataBase 中 )、Data 存储在 HDFS 之上!

一、MySQL

# http://www.cnblogs.com/wangxiaoqiangs/p/5336048.html

# 我是安装在了 master.hadoop 上,该数据库是为了保存 Hive 的元数据信息,可以随意安装在别处!

mysql > create database hive_metadb;
mysql > grant all on hive_metadb.* to hive@localhost identified by 'hive' with grant option;
mysql > flush privileges;

# 为 hive 创建数据库、用户,并授权。测试使用 hive 用户能成功登录 MySQL,注意:% 不包括 localhost

二、Hive

1、下载、安装

shell > wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.41.tar.gz
shell > wget http://mirror.bit.edu.cn/apache/hive/stable-2/apache-hive-2.1.1-bin.tar.gz shell > tar zxf apache-hive-2.1.-bin.tar.gz -C /usr/local shell > tar zxf mysql-connector-java-5.1..tar.gz
shell > cp mysql-connector-java-5.1./mysql-connector-java-5.1.-bin.jar /usr/local/apache-hive-2.1.-bin/lib/ # 复制 MySQL 驱动包

2、设置环境变量

shell > vim /etc/profile

PATH=$PATH:/usr/local/mysql-5.6./bin:/usr/local/hadoop-2.8./bin:/usr/local/apache-hive-2.1.-bin/bin

shell > source /etc/profile

3、编辑配置文件

shell > cd /usr/local/apache-hive-2.1.-bin

# 修改 hive-env.sh

shell > cp conf/hive-env.sh.template conf/hive-env.sh
shell > vim conf/hive-env.sh HADOOP_HOME=/usr/local/hadoop-2.8.

# 修改 hive-site.xml

shell > cp conf/hive-default.xml.template conf/hive-site.xml
shell > vim conf/hive-site.xml <property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property> <property>
<name>system:java.io.tmpdir</name>
<value>/tmp/hive/jobs</value>
</property> <property>
<name>system:user.name</name>
<value>${user.name}</value>
</property> <property>
<name>hive.exec.scratchdir</name>
<value>/tmp/hive</value>
</property> <property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property> <property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive_metadb</value>
</property> <property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
</property> <property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive</value>
</property> # hive.metastore.warehouse.dir hive 数据存储目录
# system:java.io.tmpdir
# system:user.name 这两个变量定义一下,我也不大清楚怎么回事
# hive.exec.scratchdir hive 临时文件目录
# javax.jdo.option.ConnectionDriverName 数据库驱动类型
# javax.jdo.option.ConnectionURL 数据库实例链接
# javax.jdo.option.ConnectionUserName 数据库连接用户
# javax.jdo.option.ConnectionPassword 数据库连接密码

4、日志配置文件

shell > mkdir logs
shell > cp conf/hive-log4j2.properties.template conf/hive-log4j2.properties
shell > vim conf/hive-log4j2.properties property.hive.log.level = INFO
property.hive.root.logger = DRFA
property.hive.log.dir = /usr/local/apache-hive-2.1.-bin/logs
property.hive.log.file = hive.log
property.hive.perflogger.log.level = INFO # 指定一下日志存放目录

三、初始化数据表

shell > schematool -initSchema -dbType mysql

# 初始化数据表

mysql > use hive_meta;
mysql > show tables;
+---------------------------+
| Tables_in_hive_meta |
+---------------------------+
| AUX_TABLE |
| BUCKETING_COLS |
| CDS |
| COLUMNS_V2 |
| COMPACTION_QUEUE |
| COMPLETED_COMPACTIONS |
| COMPLETED_TXN_COMPONENTS |
| DATABASE_PARAMS |
| DBS |
| DB_PRIVS |
| DELEGATION_TOKENS |
| FUNCS |
... # 可以看到生成了好多表
hadoop shell > hdfs dfs -mkdir /tmp
hadoop shell > hdfs dfs -mkdir /user/hive/warehouse
hadoop shell > hdfs dfs -chmod a+w /tmp
hadoop shell > hdfs dfs -chown -R hive /user/hive
hadoop shell > hdfs dfs -chmod a+w /user/hive/warehouse

# 实现创建好这些目录,并给相应的权限,否则 hive 将启动失败

四、客户端访问 hive

shell > hive

hive > show databases;
OK
default
Time taken: 1.139 seconds, Fetched: row(s) hive > quit;

五、hive2

# 官方文档:https://cwiki.apache.org/confluence/display/Hive/Setting+Up+HiveServer2

1、启动 hive2

shell > hiveserver2 > /dev/null >& &

2、beeline 连接 hive2

shell > beeline -u jdbc:hive2://master.hadoop:10000 -n hive

: jdbc:hive2://master.hadoop:10000> show databases;
+----------------+--+
| database_name |
+----------------+--+
| default |
+----------------+--+
row selected (1.771 seconds) : jdbc:hive2://master.hadoop:10000> !exit
Closing: : jdbc:hive2://master.hadoop:10000

# 如果不以 hadoop 身份连接 hive,会由于权限不足无法创建数据存放目录 (可以事先手动创建、授权后操作)
# 访问 http://192.168.1.25:10002 查看 WEB 展示的一些信息

# 基本就这样吧!

报错管理:

1、beeline 连接报错

// :: [main]: WARN jdbc.HiveConnection: Failed to connect to master.hadoop:
Error: Could not open client transport with JDBC Uri: jdbc:hive2://master.hadoop:10000: Failed to open new session: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: root is not allowed to impersonate anonymous (state=08S01,code=0)

解决方法:

hadoop shell > vim etc/hadoop/core-site.xml

    <property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property> <property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>

# 同步配置文件、重启集群,不过我感觉这不是正确的解决方法,虽然可以解决。

Apache Hive 安装文档的更多相关文章

  1. Apache Flume 安装文档、日志收集

    简介: 官网 http://flume.apache.org 文档 https://flume.apache.org/FlumeUserGuide.html hadoop 生态系统中,flume 的职 ...

  2. Apache Hadoop 集群安装文档

    简介: Apache Hadoop 集群安装文档 软件:jdk-8u111-linux-x64.rpm.hadoop-2.8.0.tar.gz http://www.apache.org/dyn/cl ...

  3. Azkaban使用安装文档

    Azkaban使用安装文档 Azkaban简介 Azkaban的是什么 Azkaban是由Linkedin公司推出的一个批量工作流任务调度器,用于在一个工作流内以一个特定的顺序运行一组工作和流程.Az ...

  4. _00024 尼娜抹微笑伊拉克_云计算ClouderaManager以及CHD5.1.0群集部署安装文档V1.0

    笔者博文:妳那伊抹微笑 itdog8 地址链接 : http://www.itdog8.com(个人链接) 博客地址:http://blog.csdn.net/u012185296 博文标题:_000 ...

  5. ELK Stack 5.2.2 安装文档

    简介: ELK Stack 安装文档,这次都使用最新版本(5.2.2).RPM 包的方式搭建 ELK Stack. 下载地址: https://artifacts.elastic.co/downloa ...

  6. CentOS6.5下安装JDK1.7+MYSQL5.5+TOMCAT7+nginx1.7.5环境安装文档

    ----------------CentOS6.5下安装JDK1.7+MYSQL5.5+TOMCAT7+nginx1.7.5环境安装文档----------------------- [JDK1.7安 ...

  7. airflow2.0.2分布式安装文档

    需要安装的组件 组件 功能 Airflow Webserver 查询元数据以监控和执行DAGs的web界面. Airflow Scheduler 它检查元数据数据库中的DAG和任务的状态,在必要时创建 ...

  8. ORACLE LINUX 6.3 + ORACLE 11.2.0.3 RAC + VBOX安装文档

    ORACLE LINUX 6.3 + ORACLE 11.2.0.3 RAC + VBOX安装文档 2015-10-21 12:51 525人阅读 评论(0) 收藏 举报  分类: Oracle RA ...

  9. Oracle 11g 单实例安装文档

    这里介绍在Red Hat Enterprise Linux Server release 5.7 (Tikanga)下安装ORACLE 11.2.0.1.0的过程,本文仅仅是为了写这样安装指导文档而整 ...

随机推荐

  1. 043——VUE中组件之使用.sync修饰符与computed计算属性实现购物车原理

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. 线程互斥,mutex

    body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...

  3. 在jenkins和sonar中集成jacoco(一)--使用jacoco收集单元测试的覆盖率

    之前系统的持续集成覆盖率工具使用的是cobetura,使用的过程中虽然没什么问题,但感觉配置比较麻烦,现在准备改用jacoco这个覆盖率工具来代替它.接下来我介绍一下jenkins配置jacoco,并 ...

  4. 使用java.net.URLConnection发送http请求

    首先,这个需要一点HTTP基础,可以先看个书了解下,我看的<http权威指南>的前4章,后面道行不够看不下去. 然后我们的是java.net的接口: 几个类的API: package co ...

  5. BZOJ4917: [Lydsy1706月赛]Hash Killer IV(模拟)

    4917: [Lydsy1706月赛]Hash Killer IV Time Limit: 1 Sec  Memory Limit: 256 MBSubmit: 327  Solved: 140[Su ...

  6. POJ2942 Knights of the Round Table【Tarjan点双联通分量】【二分图染色】【补图】

    LINK 题目大意 有一群人,其中有一些人之间有矛盾,现在要求选出一些人形成一个环,这个环要满足如下条件: 1.人数大于1 2.总人数是奇数 3.有矛盾的人不能相邻 问有多少人不能和任何人形成任何的环 ...

  7. i2c接口笔记

    一. i2c基础知识 1. NACK信号:当在第9个时钟脉冲的时候SDA线保持高电平,就被定义为NACK信号.Master要么产生STOP条件来放弃这次传输,或者重复START条件来发起一个新的开始. ...

  8. USB学习笔记-总结

    1. # ls /sys/bus/usb/devices/解析:1-0:1.0 1-1 1-1:1.0 2-0:1.0 2-1 2-1:1.0 2-2 2-2.1 2-2:1.0 2-2.1:1.0 ...

  9. JProfiler 8(一个很好的java性能监控工具) 下载和注册码

    windows x64 zip下载地址:http://download-aws.ej-technologies.com/jprofiler/jprofiler_windows-x64_8_0_1.zi ...

  10. 如何ping别人的计算机名来获取IP?

    来源:http://blog.csdn.net/qq_27109081/article/details/47128175 如何ping别人的计算机名来获取IP?            获取别人的IP, ...