07-CentOS7 + MySQL + Hive 1.2.1安装配置

(不知道为什么大数据比赛要用hive1.2.1这么旧的版本)

一、卸载CentOS7自带的MariaDB,并安装Hive

CentOS7已经不支持MySQL,所以内部集成了MariaDB。

而安装MySQL的话会和MariaDB的文件冲突,所以需要先卸载掉MariaDB。

以下为卸载MariaDB,安装MySQL的步骤。

(0) su root

(1)列出所有被安装的MariaDB rpm package

rpm -qa|grep mariadb

发现有一个自带的mariadb

(2)强制卸载mariadb-libs-5.5.68-1.el7.x86_64

rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64

(3)下载mysql的repo源

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

(4)安装mysql-community-release-el7-5.noarch.rpm包

rpm -ivh mysql-community-release-el7-5.noarch.rpm

(5)安装MySQL服务器

 yum install mysql-server

 过程中要输入y的地方输入y回车即可。

1)启动MySQL服务:

service mysqld start

 或

systemctl start mysqld.service

2)关闭MySQL服务:

service mysqld stop

 或

systemctl stop mysqld.service

3)查看MySQL服务状态:

service mysqld status

systemctl status mysqld.service

以root用户登录mysql,(注意这里的root是数据库的root用户,不是系统的root用户)。默认情况下root用户没有密码,可以通过下面的方式登录:

mysql -uroot

二、安装Hive1.2.1 并简单试用

(1)上传

把apache-hive-1.2.1-bin.tar.gz上传到/opt/software目录下

(2)解压

把这个包解压到/opt/module下

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

(3)改名

把那一长串名字改成hive

mv apache-hive-1.2.1-bin/ hive

(4)查看目录结构

(5)修改hive/conf目录下的hive-env.sh.template 名称为hive-env.sh

mv hive-env.sh.template hive-env.sh

(6)配置hive-env.sh

注意,这里我们应当已经配置完了Hadoop,如果没有配置,那么应当首先去配置完Hadoop再来看Hive。

vim hive-env.sh

我们主要配置的是这两个,我们这里用的Hadoop是2.7.6 

添加两行:

export HADOOP_HOME=/opt/module/hadoop-2.7.6
export HIVE_CONF_DIR=/opt/module/hive/conf

 (7)启动hadoop集群

步骤同前

(8)启动hive(注意,最好先配置完MySQL再启动!!!)

在hive文件夹下

bin/hive

 (9)hive目录多了两个文件

 (10)试用Hive(注意,最好先配置完MySQL再启动!!!)

show databases;
use default;
create table student(id int,name string) ;
show tables;
insert into table student values(1,'wolf');

可以发现实际上在做一个MapReduce操作: 

 去Hadoop的web查看:

select * from student;

这种不需要计算的可以直接查到,跟MySQL差不多: 

再加一个student:

insert into table student values(2,'xiaoming');

发现又多了一个文件 :

 如果是需要计算的,比如求总人数,那么就需要MR计算:

select count(*) from student;

 三、将本地文件导入Hive案例(注意,最好先配置完MySQL再启动!!!)

需求

在本地目录有一个stu.txt,想要导入数据库中,内容如下:

202301	panghu
202302	libai
202303	zhangliang
202304	xiaohong
202305	zhangbo
202306	xiaoli
202307	baibai
202308	tiezhu

这个指令是 hive特有而MySQL没有的:

load data local inpath '/home/wolf/stu.txt' into table student;

如果想从HDFS加载就把local去掉。

可以看到很快就加载完了,我们查看一下:

发现有问题,

原因是分隔符不一样或建表时未定义分隔符,说明整个表的格式应当保持一致。

所以我们建一个新表,定义好分隔符为'\t':

create table stu(id int,name string) row format delimited fields terminated by '\t';

导入stu.txt到stu表: 

load data local inpath '/home/wolf/stu.txt' into table stu;

 查看一下:

select * from stu;

正确了。

四、使用MySQL数据库

Hive默认的数据库是Derby数据库,是一种单用户数据库,无法同时打开多个客户端,所以我们可以把它替换成MySQL。

由于我们一开始安装了MySQL,所以我们可以直接进行配置。

1、MySQL用户密码配置

先以root用户登录MySQL:

mysql -uroot

设置密码:

SET PASSWORD = PASSWORD('000000');

退出:

exit;

 以后想要以root用户登录MySQL可以用:

mysql -uroot -p000000

2、设置MySQL中user表中主机配置

配置成只要是root用户+密码,在任何主机上都能登录MySQL数据库。

(1)进入MySQL

mysql -uroot -p000000

 (2)显示数据库

show databases;

 

(3)使用mysql数据库

use mysql;

 (4)展示mysql中所有的表

show tables;

(5)展示user表的结构

desc user;

(6)查询user表

select User,Host,Password from user;

(7)修改user表,把Host表内容修改为%

update user set host='%' where host = 'localhost';

 (8)删除root用户其他的host

delete from user where Host='hadoop102';
delete from user where Host='127.0.0.1';
delete from user where Host='::1';

(9)刷新

flush privileges;

(10)退出

quit;

五、配置Hive

(1)加载驱动

把mysql-connector-java-5.1.49.jar上传到本地目录:

复制这个文件到/opt/module/hive/lib/

cp ./mysql-connector-java-5.1.49.jar /opt/module/hive/lib/

(2)修改Hive配置文件

来到hive的conf文件夹

touch hive-site.xml
vim hive-site.xml

根据官方文档配置参数,拷贝数据到hive-site.xml中:

可能要修改的地方:hadoop102、root、000000

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://hadoop102:3306/hive?createDatabaseIfNotExist=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即可。

(3)初始化元数据库

bin/schematool -dbType mysql -initSchema --verbose

 六、Hive常用交互命令

bin/hive -help

(1)-e  不进入hive交互窗口执行sql语句

eg:

bin/hive -e "select id from student;"

(2)-f 读取一个文件,这个文件里面应该写着SQL语句。

eg:

bin/hive -f xxx.hql

 (3)在hive cli命令窗口中查看hdfs文件系统

dfs -ls /;

(4)在hive cli命令窗口中查看本地文件系统

! ls /opt/module/;

(5)查看在hive中输入的所有历史命令

1)进入到当前用户的根目录/root或/home/wolf

2)查看.hivehistory文件

cat .hivehistory

至此,Hive和MySQL的安装配置基本完成,接下来是学习使用HQL语句相关内容。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值