hive的安装
1.上传文件
1.1上传文件到/opt/software上,并解压到/opt/module下。
tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /opt/module/
1.2修改名称 apache-hive-1.2.1-bin为hive(也可以不修改)。
mv apache-hive-1.2.1-bin hive
1.3/hive/conf 目录下的 hive-env.sh.template 名称为 hive-env.sh
mv hive-env.sh.template hive-env.sh
2.配置文件信息和启动
2.1配置 hive-env.sh 文件
cd /opt/module/hive/conf
vi hive-env.sh
#配置HADOOP_HOME路径
export HADOOP_HOME=/opt/module/hadoop-2.7.2
#配置HIVE_CONF_DIR 路径
export HIVE_CONF_DIR=/opt/module/hive/conf
此时的hive基本上配置完成,先启动集群,然后bin/hive 就 可以进入hive。
start-dfs.sh
start-yarn.sh
bin/hive
但此时会出现一个问题:当我们在开启一个端口进行hive的连接的时候会报错。无法进行连接。原因是,Metastore 默认存储在自带的 derby 数据库中,推荐使用 MySQL 存储 Metastore;
2.2安装mysql(在root用户下)
查看自带的的MySQL
切换到root
su root
rpm -qa|grep mysql
#卸载自带的mysql
rpm -e --nodeps +包名
如果是centos7系统,可能查询不到,但是在安装的时候会报错。
解决方案:
centos7默认安装的是mariadb,需要先卸载mariadb,先查看是否安装mariadb。
rpm -qa | grep mariadb
rpm -e --nodeps +包名
1.查找以前是否安装有mysql,使用下面命令:
rpm -qa|grep -i mysql
2.如果显示有如下包则说明已安装mysql
mysql-4.1.12-3.RHEL4.1
mysqlclient10-3.23.58-4.RHEL4.1
3.如果已安装,则需要删除已安装的数据库,使用以下命令来删除数据库
删除命令:rpm -e --nodeps 包名
( rpm -ev mysql-4.1.12-3.RHEL4.1 )
4.删除老版本mysql的开发头文件和库
命令:rm -fr /usr/lib/mysql
rm -fr /usr/include/mysql
5.注意:卸载后/var/lib/mysql中的数据及/etc/my.cnf不会删除,如果确定没用后就手工删除
rm -f /etc/my.cnf
rm -fr /var/lib/mysql
点击即可:具体的可以参考 这个博客
这样在安装mysql的时候就不会报错。
然后把mysql的安装包上传到/opt/software下。
解压:
unzip mysql-libs.zip
#进入
cd mysql-libs
ll
#会看见这三个
MySQL-client-5.6.24-1.el6.x86_64.rpm
mysql-connector-java-5.1.27.tar.gz
MySQL-server-5.6.24-1.el6.x86_64.rpm
安装 mysql 服务端
rpm -ivh MySQL-server-5.6.24-1.el6.x86_64.rpm
查看产生的随机密码
cat /root/.mysql_secret
查看 mysql 状态,启动
service mysql status
service mysql start
安装 mysql 客户端
rpm -ivh MySQL-client-5.6.24-1.el6.x86_64.rpm
链接 mysql
mysql -uroot -p +刚才产生的随机密码
这样就可以登陆了
修改密码(可以是123456或者自己定义,但要记住):
SET PASSWORD=PASSWORD('000000');
2.3mysql中user的配置
1.进入mysql
mysql -uroot -p000000
2.显示数据库
show databases;
3.使用mysql数据库
use mysql;
4.查询user表
select User, Host, Password from user;
5.修改 user 表,把 Host 表内容修改为%
update user set host='%' where host='localhost';
6.删除 root 用户的其他 host
delete from user where Host='hadoop101';
delete from user where Host='127.0.0.1';
delete from user where Host='::1';
7.刷新
flush privileges;
8.退出
quit;
2.4 hive元数据配置到mysql
在/opt/software/mysql-libs 目录下解压 mysql-connector-java-5.1.27.tar.gz 驱动包
tar -zxvf mysql-connector-java-5.1.27.tar.gz
拷贝 mysql-connector-java-5.1.27-bin.jar 到/opt/module/hive/lib/
cp /opt/software/mysql-libs/mysql-connector-java-5.1.27/mysql-c
onnector-java-5.1.27-bin.jar /opt/module/hive/lib/
配置 Metastore 到 MySql
在/opt/module/hive/conf 目录下创建一个 hive-site.xml
touch hive-site.xml
vi hive-site.xml
根据官方文档配置参数,拷贝数据到 hive-site.xml 文件中(密码根据自己的密码进行更改,主机hadoop101根据自己的主机名称进行更改);
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop101:3306/metastore?createDatabaseI
fNotExist=true</value>
<description>JDBC connect string for a JDBC
metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC
metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>username to use against metastore
database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>000000</value>
<description>password to use against metastore
database</description>
</property>
</configuration>
然后就可以启动集群,然后启动hive进行多窗口的测试。
cd /opt/module/hive
bin/hive
3.hive常见属性的配置
3.1 Hive 数据仓库位置配置
1)Default 数据仓库的最原始位置是在 hdfs 上的:/user/hive/warehouse 路径下。
2)在仓库目录下,没有对默认的数据库 default 创建文件夹。如果某张表属于 default数据库,直接在数据仓库目录下创建一个文件夹。
3)修改 default 数据仓库原始位置(将 hive-default.xml.template 如下配置信息拷贝到hive-site.xml 文件中)。
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
<description>location of default database for the warehouse</description>
</property>
3.2查询后信息显示配置
在 hive-site.xml 文件中添加如下配置信息
<property>
<name>hive.cli.print.header</name>
<value>true</value>
</property>
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
</property>
3.3 Hive 运行日志信息配置
Hive 的 log 默认存放在/tmp/hadoop/hive.log 目录下(当前用户名下)
修改 hive 的 log 存放日志到/opt/module/hive/logs
修改/opt/module/hive/conf/hive-log4j.properties.template 文件名称为hive-log4j.properties
mv hive-log4j.properties.template hive-log4j.properties
在 hive-log4j.properties 文件中修改 log 存放位置
hive.log.dir=/opt/module/hive/logs