Hadoop为基础关于Hive的安装配置及连接MySQL和Navicat

Hive的安装配置及连接MySQL和Navicat


Hive

hive是基于Hadoop构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop分布式文件系统中的数据:可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能;可以将SQL语句转换为MapReduce任务运行,通过自己的SQL查询分析需要的内容,这套SQL简称Hive SQL,使不熟悉mapreduce的用户可以很方便地利用SQL语言‘查询、汇总和分析数据。

前提
Hadoop已安装配置且能正常启动,如果没有请参考:

所需文件
apache-hive-2.3.6-bin.tar.gz:下载地址
mysql-8.0.18-1.el7.x86_64.rpm-bundle.tar:下载地址
mysql-connector-java-8.0.18.zip 只需要其中的jar包:下载地址
由于官网下载忒慢,所以选用版本相较完整的华为开源镜像站
所需工具
Xshell,Xftp,Navicat等(皆可在官网下载)
另附网盘地址
提取码 a5dq
1,通过Xshell连接Xftp将所需文件传入到/opt目录,可自定。
在这里插入图片描述
2,安装hive,为方便重命名以及删除包

tar -xzvf apache-hive-2.3.6-bin.tar.gz
mv apache-hive-2.3.6-bin hive
rm apache-hive-2.3.6-bin.tar.gz

3,安装mysql
<1,卸载CentOS自带的Mariadb

rpm -qa|grep mariadb (查找)
rpm -e --nodeps 所查文件  (删除)
rm /etc/my.cnf  (删除配置文件)

<2,这里我通过rpm安装

tar -xvf mysql-8.0.18-1.el7.x86_64.rpm-bundle.tar

在这里插入图片描述
解决一些依赖不是都必须成功,有的自身配置就是最新就不会安装

yum -y install numactl
yum -y install libaio.so.1 libgcc_s.so.1 libstdc++.so.6
yum update libstdc++-4.4.7-4.el6.x86_64
yum search libaio
yum install libaio
yum install net-tools
yum install openssl-devel
yum remove mysql-libs -y

按次序安装
commonlibsclientserverdevel最后一个随意

rpm -ivh mysql-community-common-8.0.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.18-1.el7.x86_64.rpm 

在这里插入图片描述
有的不成功就是上述依赖未更新
4,配置MySQL及连接Navicat
<1,初始化

mysqld --initialize --user=mysql --basedir=/usr --datadir=/var/lib/mysql

<2,启动

systemctl start mysqld

登陆方法1

vim /etc/my.cnf
在 [mysqld] 下添加skip-grant-tables
在这里插入图片描述

1,systemctl restart mysqld (重启)
2,mysql -uroot -p  (密码直接回车即可)
3,use mysql;  (选择mysql数据库)
4,update user set authentication_string='' where user='root';
(将默认密码清空)
5,exit  (退出)
6,vim /etc/my.cnf
7,skip-grant-tables  (删除)
8,systemctl restart mysqld (重启)
9,mysql -uroot -p   (密码直接回车)
10,ALTER USER 'root'@'localhost' IDENTIFIED BY 'QWE123@qweasd';
(修改密码)`可自定但以防出现错误先用这个`

在这里插入图片描述
登陆方法2
查看初始密码,然后直接登陆,改密码(有时不成功

grep 'temporary password' /var/log/mysqld.log

小插曲
修改的密码想简单点如’123456’之类,但修改时会出现
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements提示密码策略问题异常信息
解决方法
SHOW VARIABLES LIKE 'validate_password%'; 查看mysql初始的密码策略
在这里插入图片描述
set global validate_password_policy=LOW; 设置密码的验证强度等级
set global validate_password_length=6; 设置密码长度

` 1)、validate_password_length  固定密码的总长度;`
` 2)、validate_password_dictionary_file 指定密码验证的文件路径;`
` 3)、validate_password_mixed_case_count  整个密码中至少要包含大/小写字母的总个数;`
` 4)、validate_password_number_count  整个密码中至少要包含阿拉伯数字的个数;`
` 5)、validate_password_policy 指定密码的强度验证等级,默认为 MEDIUM;`

如果查看密码策略没有出现上图表格
INSTALL PLUGIN validate_password SONAME 'validate_password.so';即可
在这里插入图片描述
重新进一遍就会出现
< 3,与Navicat的连接
由于本主机安装的是8.0的版本,所以用户授予权限时:
GRANT ALL PRIVILEGES ON *.* 'root'@'%' identified by ‘123123’ WITH GRANT OPTION;之类的写法会报错!
在这里插入图片描述
正确写法

(`创建用户`)  create user  'root'@'%' identified by '123456';
(`赋予权限`)  grant all privileges on  *.* to 'root'@'%';
(`执行命令修改`)  alter user 'root'@'%'identified with mysql_native_password by '123456';
(`生效`)  flush privileges;

在这里插入图片描述
切记:注意写法,要不就会报错1064
打开Navicat新建连接
在这里插入图片描述
相对应输入并连接

在这里插入图片描述
之后便会出现数据库
5,配置hive
<1, vim /etc/profile
在这里插入图片描述
hadoop与java的配置在开头请参考
添加对应的目录文件

export HIVE_HOME=/opt/hive
export HIVE_CONF_DIR=${HIVE_HOME}/conf
export CLASS_PATH=${HIVE_HOME}/lib
export PATH=$PATH:${HIVE_HOME}/bin

source /etc/profile
<2, hiveconf目录下
新建hive-site.xml文件

cp hive-default.xml.template hive-site.xml

新建hive-env.sh文件

cp hive-env.sh.template  hive-env.sh

使用hadoop命令新建目录文件并赋予读写权限

hadoop fs -mkdir -p  /user/hive/warehouse
hadoop fs -chmod 777 /user/hive/warehouse 
hadoop fs -mkdir -p  /tmp/hive/
hadoop fs -chmod 777 /tmp/hive

查看是否创建成功

hadoop fs -ls /user/hive/
hadoop fs -ls /tmp/

< 3, vim hive-site.xml
hive-site.xml文件中的${system:java.io.tmpdir}替换为hive临时目录
我替换为/opt/hive/tmp如果不存在要手工创建并赋予读写权限
${system:user.name}都替换为root
在这里插入图片描述

在未插入之前,使用 / 可以进行查询,n 为下一个可以 i,esc,n,i,esc,n 进行相应的删改
在这里插入图片描述
在这里插入图片描述
删改内容要全部找完为止

修改数据库相关设置
找到javax.jdo.option.ConnectionURL,将该name对应的value修改为MySQL的地址
在这里插入图片描述

jdbc:mysql://192.168.27.111:3306/myhive?createDatabaseIfNotExist=true

myhive代表Navicat中所显示的数据库名字,自拟ip地址与自身对应

找到javax.jdo.option.ConnectionDriverName,将该name对应的value修改为MySQL驱动类路径
在这里插入图片描述

com.mysql.jdbc.Driver

找到javax.jdo.option.ConnectionUserName,将对应的value修改为MySQL数据库登录名
在这里插入图片描述
找到javax.jdo.option.ConnectionPassword,将对应的value修改为MySQL数据库的登录密码

在这里插入图片描述

找到hive.metastore.schema.verification,将对应的value修改为false
在这里插入图片描述
<4, 将MySQL的jar包传输到Hive的lib目录下
在这里插入图片描述

不要将整个压缩包传进,只要其中的jar包
<5, vim hive-env.sh
在这里插入图片描述

export HADOOP_HOME=/opt/hadoop
export HIVE_CONF_DIR=/opt/hive/conf
export HIVE_AUX_JARS_PATH=/opt/hive/lib

6,在hivebin目录下对数据库进行初始化

schematool -initSchema -dbType mysql

在这里插入图片描述
成功之后便会,在Navicat中出现myhive

在这里插入图片描述
也可以在mysql中 show databases;
在这里插入图片描述

7,输入hive登陆
在这里插入图片描述
8,简单测试show functions;查看函数
在这里插入图片描述
9,简单操作
mysql

create database abc;
use abc

创建表
在这里插入图片描述

CREATE TABLE IF NOT EXISTS `runoob_tbl`(
   `runoob_id` INT UNSIGNED AUTO_INCREMENT,
   `runoob_title` VARCHAR(100) NOT NULL,
   `runoob_author` VARCHAR(40) NOT NULL,
   `submission_date` DATE,
   PRIMARY KEY ( `runoob_id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。
AUTO_INCREMENT定义列为自增属性,一般用于主键,数值会自动加1。
PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
ENGINE 设置存储引擎,CHARSET 设置编码。

查看表
在这里插入图片描述
hive
新建数据库

create database db_myhive_edu;

在这里插入图片描述
在刚创建的数据库中创建数据表

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

在这里插入图片描述
/opt/hive目录内新建一个文件(打开另一个终端)
touch /opt/hive/student.txt
在文件中编写

01      zhao
02      qian
03      sun
04      li
05      zhou
06      wu

id和name直接是TAB键,不是空格,因为在上面创建表的语句中用了terminated by '\t’所以这个文本里id和name的分割必须是用TAB键
转到hive

load data local inpath '/opt/hive/student.txt' into table db_myhive_edu.student;

在这里插入图片描述
查看
select * from student;
在这里插入图片描述
Navicat中
新建查询
SELECT * FROM myhive.TBLS
在这里插入图片描述
在浏览器中
在这里插入图片描述
在这里插入图片描述

发布了3 篇原创文章 · 获赞 5 · 访问量 565

猜你喜欢

转载自blog.csdn.net/Every___ingday/article/details/104732386