hive安装及mysql配置

一、Hive安装

1.解压hive,移动到指定目录下

tar -zxvf apache-hive-3.1.1-bin.tar.gz -C /opt/module

配置环境变量

export HIVE_HOME=/opt/module/apache-hive-3.1.1-bin
export PATH= P A T H : PATH: PATH:HIVE_HOME/bin12

2.在hive/conf目录下

cp hive-env.sh.template hive-env.sh
cp hive-default.xml.template hive-site.xml
cp hive-log4j2.properties.template hive-log4j2.properties
cp hive-exec-log4j2.properties.template hive-exec-log4j2.properties1234

3.修改hive-env.sh
因为 Hive 使用了 Hadoop, 需要在 hive-env.sh 文件中指定 Hadoop 安装路径:

export JAVA_HOME=/usr/java ##Java路径
export HADOOP_HOME=/usr/local/hadoop ##Hadoop安装路径
export HIVE_HOME=/usr/local/hive ##Hive安装路径
export HIVE_CONF_DIR=/usr/local/hive/conf ##Hive配置文件路径1234

二、MySQL安装

CentOS7默认数据库是mariadb,配置等用着不习惯,因此决定改成mysql,但是CentOS7的yum源中默认好像是没有mysql的。为了解决这个问题,我们要先下载mysql的repo源。

1.下载mysql的repo源

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm1

2.安装mysql-community-release-el7-5.noarch.rpm包

$ sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm1

安装这个包后,会获得两个mysql的yum repo源:

/etc/yum.repos.d/mysql-community.repo
/etc/yum.repos.d/mysql-community-source.repo12

3.安装mysql

$ sudo yum install mysql-server1

根据提示安装就可以了,不过安装完成后没有密码,需要重置密码

4.重置mysql密码

$ mysql -u root1

登录时有可能报这样的错:

ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘ (2)1

原因是/var/lib/mysql的访问权限问题。下面的命令把/var/lib/mysql的拥有者改为当前用户:

$ sudo chown -R root:root /var/lib/mysql1

5.重启mysql服务

$ service mysqld restart1

6.接下来登录重置

$ mysql -u root //直接回车进入mysql控制台
mysql > use mysql;
mysql > update user set password=password(‘123456’) where user=‘root’;
mysql > exit;1234

三、创建HDFS目录

在 Hive 中创建表之前需要创建以下 HDFS 目录并给它们赋相应的权限。

hdfs dfs -mkdir -p /user/hive/warehouse
hdfs dfs -mkdir -p /user/hive/tmp
hdfs dfs -mkdir -p /user/hive/log
hdfs dfs -chmod g+w /user/hive/warehouse
hdfs dfs -chmod g+w /usr/hive/tmp
hdfs dfs -chmod g+w /usr/hive/log123456

四、配置jdbc的驱动

MySQL Java 连接器添加到 $HIVE_HOME/lib 目录下。我安装时使用的是 mysql-connector-java-5.1.43.jar。

五、Hive Metastore配置

默认情况下, Hive 的元数据保存在内嵌的 Derby 数据库里, 但一般情况下生产环境会使用 MySQL 来存放 Hive 元数据。

1.创建数据库和用户

假定你已经安装好 MySQL。下面创建一个 hive 数据库用来存储 Hive 元数据,且数据库访问的用户名和密码都为 hive。

mysql> CREATE DATABASE hive;
mysql> USE hive;
mysql> CREATE USER ‘hive’@‘localhost’ IDENTIFIED BY ‘hive’;
mysql> GRANT ALL ON hive.* TO ‘hive’@‘localhost’ IDENTIFIED BY ‘hive’;
mysql> GRANT ALL ON hive.* TO ‘hive’@’%’ IDENTIFIED BY ‘hive’;
mysql> FLUSH PRIVILEGES;
mysql> quit;1234567

2.修改hive-site.xml

然后在配置文件hive-site.xml中,把所有的 s y s t e m : j a v a . i o . t m p d i r 都 替 换 为 / u s r / l o c a l / h i v e / t m p , 把 所 有 的 {system:java.io.tmpdir} 都替换为/usr/local/hive/tmp,把所有的 system:java.io.tmpdir/usr/local/hive/tmp{system:user.name}替换为${user.name}
直接修改为下面这样也可以,注意用户名和密码,对应上一步中mysql创建的用户名和密码

hive.exec.scratchdir /user/hive/tmp hive.metastore.warehouse.dir /user/hive/warehouse hive.querylog.location /user/hive/log javax.jdo.option.ConnectionURL jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&characterEncoding=UTF-8&useSSL=false javax.jdo.option.ConnectionDriverName com.mysql.jdbc.Driver javax.jdo.option.ConnectionUserName hive javax.jdo.option.ConnectionPassword hive 12345678910111213141516171819202122232425262728

3.创建/usr/local/hive/tmp文件夹

mkdir /usr/local/hive/tmp1

4.运行Hive

在命令行运行 hive 命令时必须保证以下两点:

HDFS 已经启动。可以使用 start-dfs.sh 脚本来启动 HDFS。
运行 schematool 命令来执行初始化操作。

schematool -dbType mysql -initSchem

编写 HiveQL 语句,实现数据库、表、视图的基本操作:

运行hiveser2和beeline (根据官方文档描述,Hive cli 现在已被弃用,取而代之的是 HiveServer2 自己的 Beeline )。在此之前,还需要向 Hadoop 的配置文件 core-site.xml 中加入以下内容:

hadoop.proxyuser.root.hosts hadoop.proxyuser.root.groups

然后重启Hadoop,完成后启动 hiveserver2:

hiveserver2

另开一个新 Terminal,打开 beeline(第一次打开可能会提示Permission Denied,关闭后再重开一次即可):

beeline -u jdbc:hive2://bigdata:10000 -n root
成功执行的话将进入 beeline:

进行测试:

创建数据库:

创建表

编写 HiveQL 语句实现 WordCount 程序

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值