【Linux中基于mysql,hive安装及操作】

Linux中基于mysql,hive安装及操作

实验背景

MySQL是一个关系数据库管理系统,由瑞典MySQL AB公司开发,目前属于Qracle旗下的产品。MySQL是流行的关系数据库管理系统,在Web应用方面,MySQL是最好的关系数据库管理系统应用软件之一。

HIVE是一种底层封装了Hadoop 的数据仓库处理工具,使用类SQL 的hiveSQL 语言实现数据查询,所有hive 的数据都存储在Hadoop 兼容的文件系统(例如,Amazon S3、HDFS)中。. hive 在加载数据过程中不会对数据进行任何的修改,只是将数据移动到HDFS 中hive 设定的目录下,因此,hive 不支持对数据的改写和添加,所有的数据都是在加载的时候确定的。

发音:skup)是一款开源的工具,主要用于在Hadoop (Hive)与传统的数据库 (mysql、postgresql…)间进行数据的传递,可以将一个 关系型数据库 (例如 : MySQL,Oracle,Postgres 等) 中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。

实验目的

我们可以使用sqoop工具,将业务数据库mysql或者oracle中的数据落地到hive表中,以方便后续的大数据统计分析。

实验环境

VirtualBox 6.1.14, Ubuntu 16.04,mysql-connector-java-5.1.40,apache-hive-1.2.1-bin,sqoop-1.4.7

实验任务及完成过程

任务一:安装下载mysql,所以操作mysql是为基础,然后再进行简单的操作介绍

任务二:安装hive,与mysql互通,hive与本地文件互传,hive与分布式数据互通,再做一个实例

MYSQL

安装MySQL以及问题处理

(1)更新软件源,安装mysql

sudo apt-get update

sudo apt-get install mysql-server

(2)启动时可能遇到密码错误原因,直接跳过验证密码,在sudo vim /etc/mysql/my.cnf中编辑加入两行代码

[mysqld]
skip-grant-tables

MySQL的启动

(1)开启,关闭mysql

service mysql stop
service mysql start

(2)查看是否开启进程

ps  ajx|grep xxx比如mysql,redis

MySQL创建数据库和数据表

(1)创建数据库,删除数据库

CREATE DATABASEexample;
DROP DATABASEexample;

(2)创建表,例:

CREATE TABLEstudent (-> id int,-> name varchar(20)->);

(3)查看数据库

show databas

HIVE

安装过程和配置环境变量

(1)安装和配置环境变量

sudo tar -zxvf ./apache-hive-1.2.1-bin.tar.gz -C /usr/local
cd /usr/local/
sudo mv apache-hive-1.2.1-bin hive
sudo chown -R hadoop:hadoop hive
vim ~/.bashrc
export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$HIVE_HOME/bin
export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$HIVE_HOME/bin

(2) 配置文件

cd /usr/local/hive/conf
sudo mv hive-default.xml.template hive-default.xml
vim hive-site.xml

(3) hive需要配置MySQL JDBC

cd ~
tar -zxvf mysql-connector-java-5.1.40.tar.gz
cp mysql-connector-java-5.1.40/mysql-connector-java-5.1.40-bin.jar  /usr/local/hive/lib

(4)root密码为空的时候配置文件中下面这句

skip-grant-tables

(5) 配置hive连接mysql,mysql给权限给hive

reate database hive;
#需要先输入下面这句话,才能正常运行
flush privileges;
grant all on *.* to hive@localhost identified by 'hive';

基础操作

(1)开启进程

cd /usr/local/hadoop
./sbin/start-dfs.sh

(2)进入hive打开hive

cd /usr/local/hive
./bin/hive

(3)创建数据库

create database hive;
create database if not exists hive;

(3)进入hive数据库,创建数据表,但是会出现一点点问题

use hive;
create table if not exists usr(id bigint,name string,age int);
create table if not exists hive.usr(id bigint,name string,age int)location ‘/usr/local/hive/warehouse/hive/usr’;

(4)解决方法

#修改字符
create table mypercent(id bigint,name string,age int)
row format delimited fields terminated by ',';

(5)删除数据库,数据表

#删除数据库
drop database hive;

(6)无论有没有这个数据库都不会报错的删除

drop database if exists hive;

(7)加上cascade关键字,可以删除当前数据库和数据表

drop database if exists hive cascade;

(8)删除表

drop table if exists usr;

(9)删除视图

drop view if exists little_usr;

(10)查看表,查看数据库

show databases;
use hive;
show tables;

(11)查看基本信息

escribe hive.usr;
describe hive.little_usr;
#查看usr中的id
describe extended hive.usr.id;

装载操作

(1)把xxx数据文件装置到xxx表中并且覆盖原有文件

load data local inpath ‘数据路径’ overwrite into table xxx;

(2)把xxx数据文件装置到xxx表中并且不覆盖原有文件

load data local inpath ‘数据路径’ into table xxx;
#也就是覆盖用overwrite,不覆盖用into

(2)把在hdfs中的xxx数据文件装置到xxx表中并且覆盖原有文件

load data inpath ‘hdfs://master_server/数据路径’ overwrite into table xxx;

hive实例

(1)在本地创建数据

cd /usr/local/hadoop
vim employees.txt
#存入数据

(1)本地数据传入hive

cd /usr/local/hadoop
vim employees.txt
#存入数据
load data local inpath '/usr/local/hadoop/employees.txt' into table employee;
select * from employee

(2)在分布式目录中查看hive内表信息,先查看地址,然后再查看信息

hadoop fs -lsr /user/
hadoop fs -text /user/hive/warehouse/myhive.db/employee/employees.txt

(3)在hive中查看本地数据

!ls /usr/local/hadoop

(4)在hive中执行hdfs

dfs -ls /;

成功

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值