前言
hive将相对复杂的mapreduce过程转化为类sql语言,极大的降低了学习成本
安装的易错点在于mysql数据库的配置
环境 | 版本 |
---|---|
linux | centos_6.7 |
jdk | 1.8.0_60 |
hadoop | 2.7.1 |
zookeeper | 3.4.7 |
mysql | 5.6.26 |
hive | 1.2.1-bin |
hbase | 1.2.1 |
第一步:安装并配置mysql
1. 安装mysql
使用rpm安装,可能会因为缺少某些环境依赖而报错.如果看到了相关错误提示,用yum查找并安装对应的依赖即可
需要注意的是安装结束之后,软件可能会有提示内容,一定不要简单的忽略掉
比如,mysql安装完成后,会有提示初始密码的位置和修改密码的方法
简单记录下安装流程(先安装mysql的服务端)
功能 | 语句 |
---|---|
尝试安装 | rpm -ivh /apps/mysql/MySQL-server-5.6.26-1.linux_glibc2.5.x86_64.rpm |
安装依赖 | yum -y install perl.x86_64 |
安装依赖 | yum -y install libaio.x86_64 |
尝试安装 | rpm -ivh /apps/mysql/MySQL-server-5.6.26-1.linux_glibc2.5.x86_64.rpm |
强制安装 | rpm -ivh --force --nodeps /apps/mysql/MySQL-server-5.6.26-1.linux_glibc2.5.x86_64.rpm |
安装客户端 | rpm -ivh /apps/mysql/MySQL-client-5.6.26-1.linux_glibc2.5.x86_64.rpm |
启动服务 | service mysql start |
开机启动 | chkconfig mysql on |
查看密码 | cat /root/.mysql_secret |
修改密码 | /usr/bin/mysql_secure_installation |
尝试登录 | mysql -u root -p |
2. 配置mysql
1)新建hive用户
# create user 'hive' identified by 'hive'
注:虽然可以直接使用root用户,但是推荐新建hive用户
2)更改hive用户的权限,刷新权限
# grant all privileges on *.* to 'hive'@'%' identified by 'hive' with grant option;
注:允许从任意地址登录的hive用户访问数据库中的任意内容
# flush privileges;
3)更改mysql的默认编码为utf8
# vi /etc/my.cnf
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
#注意:两个字符集的设置分别在[mysql]和[mysqld]下,一定要正确对应
4)重启数据库(更改配置后重启服务是个好习惯)
# service mysql restart
(5.1版本以前的mysql服务命令是mysqld)
5)新建数据库,起名为hive(注意设置编码格式为latin1)
create database hive default character set latin1;
注:hive数据库一定要设置字符为latin1,因为它对其他字符的支持性不是很好
第二步:配置hive
1)上传hive
2)解压缩到HIVE_HOME
# tar -zxvf /root/hive_1.2.1 -C /apps
注:-z解压缩,-x解包,-v打印过程到控制台,-f使用归档文件,-C重定向
3)修改配置文件
# cp hive-default.xml.template hive-site.xml
注:hive默认配置文件就是hive-default.xml.template,拷贝修改即可
# vi hive-site.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<!-- 这是设置hive元数据的位置,是hdfs上的地址 -->
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
<description>location of default database for the warehouse</description>
</property>
<property>
<!-- 设置mysql的地址,不一定要在本机
hive的本机模式只是说mysql服务和hive公用同一个jvm -->
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop01:3306/hive</value>
</property>
<property>
<!-- 指定jdbc的驱动 -->
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<!-- 设置连接到数据库的用户名和密码 -->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive</value>
<description>password to use against metastore database</description>
</property>
</configuration>
4)配置并刷新环境变量
# vi /etc/profile
HIVE_HOME=/apps/hive
PATH=$PATH:$HIVE_HOME/bin
# source /etc/profile
5)将mysql的驱动包放在HIVE_HOME下的lib目录下
6)主机模式搭建完成,尝试运行hive
# hive
注:出现 hive> 表示hive成功安装
注意: 如果在my.cnf中指定了字符集后,出现异常:
ERROR! The server quit without updating PID file (/var/lib/mysql/mini2.pid).
查看mysql的日志,如果错误提示是:
unknown variable 'default-character-set=utf8
可以在my.cnf中改变此项设置为:
character_set_server=utf8
异常:
1)mysql注册了新用户和密码,却无法用登录
解决: https://blog.csdn.net/chrisjingu/article/details/50457486
2)更改mysql配置文件后,hive提示mysql拒绝访问
解决: 尝试重启mysql
3)可以登录hive,但是建表失败,并反复提示:
Moved: 'hdfs://mini2:9000/user/hive/warehouse/demo.db' to trash at: hdfs://mini2:9000/user/root/.Trash/Current
解决: 检查mysql中的默认编码格式是否为latin1
过程: 查看日志后发现提示:
For direct MetaStore DB connections, we don't support retries at the client level.
尝试更换了mysql的驱动,发现没有用
最后才发现要删除mysql中的hive表,并重新建表:
# create database hive default character set latin1;
4)查看mysql时, 发现没有自动生成元数据
解决: 手动生成
# schematool -initSchema -dbType mysql
补充: 客户端上运行hive
1)客户端解压hive并配置环境变量
2)更改hive-site.xml
# vi hive-site.xml
<property>
<name>hive.metastore.uris</name>
<value>thrift://192.168.91.3:9083</value>
<description>IP address (or fully-qualified domain name) and port of the metastore host</description>
</property>
3)启动服务端
主机模式的计算机可以视为服务端,直接启动相应服务
# hive --service metastore &
4)尝试运行hive
# hive
系列文章
Hive入门语句:https://blog.csdn.net/IAmListening/article/details/89393426
安装windows+linux双系统:https://blog.csdn.net/IAmListening/article/details/89741854
搭建时间同步服务器和yum源:https://blog.csdn.net/IAmListening/article/details/89765148
搭建hadoop高可用:https://blog.csdn.net/IAmListening/article/details/89765843
安装hbase:https://blog.csdn.net/IAmListening/article/details/89765957