一、Hive架构
Hive 架构图
其中:
client连接Hive的三种方式:
CLI:Hive自带的shell;
JDBC/ODBC:比如Beeline;
Web UI:Hive的Web界面。
metastore:metadata可以存储在三种metastore中,包括:内嵌式元存储(即Derby)、本地元存储(最常见的MYSQL)、远程元存储(最常见的MYSQ)。
数据存储:业务数据存储在HDFS中(外部表)或者Hive中(Hive内部表可以配置hive.metastore.warehouse.dir);
计算引擎:MapReduce;
注:图中的HDFS是1.X版本的。
二、安装并配置MYSQL作为metastore
2.1 安装Hive
简单来说官网下载hive安装包,配置环境变量即可。
2.2 增加配置项到hdfs-site.xml等配置文件中
必须在hdfs-site.xml中添加如下配置,否则hadoop会自动在/Users/ycaha/tmp目录下创建name等目录,这样的结果就是机器重启后自动删除,从而导致重启机器后namenode因为找不到NameNode路径而无法启动。
dfs.namenode.name.dir
/Users/ycaha/software-package-install/hadoop_install/namenode_name_dir
dfs.datanode.data.dir
/Users/ycaha/software-package-install/hadoop_install/datanode_data_dir
dfs.replication
3
dfs.namenode.secondary.http-address
127.0.0.1:9001
还需要在core-site.xml中设置ha.zookeeper.quorum 和 hive.zookeeper.quorum:
fs.defaultFS
hdfs://ns1/
hadoop.tmp.dir
/home/hadoop/app/hadoop-2.4.1/tmp
ha.zookeeper.quorum
s104:2181,s106:2181,s108:2181
之后必须要对HDFS的NameNode重新格式化:
hadoop namenode format
2.3 配置MYSQL
在mysql数据库中新建名为mysql的数据库,设置用户名密码均为hive(也可以是其他的)。
在mysql中创建名为hive的数据库;
登陆mysql:执行mysql -uroot -proot
创建新数据库: mysql> create database hive;
创建新用户:mysql> create user ‘hive’@’%’ IDENTIFIED BY ‘hive’;
授权hive用户的权限(允许访问数据库hive中的所有表):mysql> GRANT all ON hive.* TO hive@’%’ IDENTIFIED BY ‘hive’;
立即启用修改:mysql> flush privileges;
另附其他一些常用操作:
revoke all on *.* from tester; –取消用户所有数据库(表)的所有权限 ;
delete from mysql.user where user=’tester’; –删除用户 ;
drop database [数据库名称]; –删除数据库
2.4 在hive-site.xml中添加MYSQL的user、pass等信息
javax.jdo.option.ConnectionUserName用户名(这4是新添加的,记住删除配置文件原有的哦!)
hive
javax.jdo.option.ConnectionPassword密码
hive
javax.jdo.option.ConnectionURLmysql
jdbc:mysql://127.0.0.1:3306/hive
javax.jdo.option.ConnectionDriverNamemysql驱动程序
com.mysql.jdbc.Driver
三、运行hive并查看日志
运行hive shell并查看详细运行日志:
hive –hiveconf hive.root.logger=DEBUG,console
如有错误之处,敬请指正!