博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Apache Hive 安装文档
阅读量:7105 次
发布时间:2019-06-28

本文共 5282 字,大约阅读时间需要 17 分钟。

简介:

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

并提供简单的sql查询功能,将 SQL 语句转换为 MapReduce 任务执行。
Apache hive 数据库仓库工具管理着两类数据:MetaData ( 这里我们存储在远程 MySQL DataBase 中 )、Data 存储在 HDFS 之上!
一、MySQL

#

# 我是安装在了 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.gzshell > wget http://mirror.bit.edu.cn/apache/hive/stable-2/apache-hive-2.1.1-bin.tar.gzshell > tar zxf apache-hive-2.1.1-bin.tar.gz -C /usr/localshell > tar zxf mysql-connector-java-5.1.41.tar.gzshell > cp mysql-connector-java-5.1.41/mysql-connector-java-5.1.41-bin.jar /usr/local/apache-hive-2.1.1-bin/lib/ # 复制 MySQL 驱动包

2、设置环境变量

shell > vim /etc/profilePATH=$PATH:/usr/local/mysql-5.6.37/bin:/usr/local/hadoop-2.8.1/bin:/usr/local/apache-hive-2.1.1-bin/binshell > source /etc/profile

3、编辑配置文件

shell > cd /usr/local/apache-hive-2.1.1-bin

# 修改 hive-env.sh

shell > cp conf/hive-env.sh.template conf/hive-env.shshell > vim conf/hive-env.shHADOOP_HOME=/usr/local/hadoop-2.8.1

# 修改 hive-site.xml

shell > cp conf/hive-default.xml.template conf/hive-site.xmlshell > vim conf/hive-site.xml    
hive.metastore.warehouse.dir
/user/hive/warehouse
system:java.io.tmpdir
/tmp/hive/jobs
system:user.name
${user.name}
hive.exec.scratchdir
/tmp/hive
javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver
javax.jdo.option.ConnectionURL
jdbc:mysql://localhost:3306/hive_metadb
javax.jdo.option.ConnectionUserName
hive
javax.jdo.option.ConnectionPassword
hive
# 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 logsshell > cp conf/hive-log4j2.properties.template conf/hive-log4j2.propertiesshell > vim conf/hive-log4j2.propertiesproperty.hive.log.level = INFOproperty.hive.root.logger = DRFAproperty.hive.log.dir = /usr/local/apache-hive-2.1.1-bin/logsproperty.hive.log.file = hive.logproperty.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 /tmphadoop shell > hdfs dfs -mkdir /user/hive/warehousehadoop shell > hdfs dfs -chmod a+w /tmphadoop shell > hdfs dfs -chown -R hive /user/hivehadoop shell > hdfs dfs -chmod a+w /user/hive/warehouse

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

四、客户端访问 hive

shell > hivehive > show databases;OKdefaultTime taken: 1.139 seconds, Fetched: 1 row(s)hive > quit;

五、hive2

# 官方文档:

1、启动 hive2

shell > hiveserver2 > /dev/null 2>&1 &

2、beeline 连接 hive2

shell > beeline -u jdbc:hive2://master.hadoop:10000 -n hive0: jdbc:hive2://master.hadoop:10000> show databases;+----------------+--+| database_name  |+----------------+--+| default        |+----------------+--+1 row selected (1.771 seconds)0: jdbc:hive2://master.hadoop:10000> !exitClosing: 0: jdbc:hive2://master.hadoop:10000

# 如果不以 hadoop 身份连接 hive,会由于权限不足无法创建数据存放目录 (可以事先手动创建、授权后操作)

# 访问 http://192.168.1.25:10002 查看 WEB 展示的一些信息

# 基本就这样吧!

报错管理:

1、beeline 连接报错

17/05/25 17:35:18 [main]: WARN jdbc.HiveConnection: Failed to connect to master.hadoop:10000Error: 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    
hadoop.proxyuser.root.hosts
*
hadoop.proxyuser.root.groups
*

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

 

转载于:https://www.cnblogs.com/wangxiaoqiangs/p/6709672.html

你可能感兴趣的文章
js prototype 。 网上摘抄
查看>>
Fastdfs安装心得
查看>>
sql入门
查看>>
统一设置Eclipse编码
查看>>
zabbix 修改默认的/zabbix 斜杠
查看>>
Centos vmware克隆系统后无法启动网卡
查看>>
Linux下日志(Log)服务器/客户端配置实验
查看>>
python高效计算2的次方(位左移)和整数与2的次方的乘积
查看>>
正则表达式语法
查看>>
Cisco交换机密码破解方法
查看>>
使用VS2010中 编码的UI 测试 进行UI自动化测试
查看>>
IOS UITableView 使用总结
查看>>
play 源码分析
查看>>
Log4j针对不同包指定level
查看>>
Android中怎么启动关闭Service及功能解释
查看>>
SpringBoot入门八,添加定时任务
查看>>
SpringMVC springMVC的拦截器
查看>>
目录与文件属性——《Unix/Linux编程实践教程》读书笔记
查看>>
Spring中的自动装配(AutoWire)
查看>>
016,spring boot集成Mybatis之多数据源
查看>>