1 数据处理:
将三个“考研成绩”Excel表格处理后存入虚拟机
数据在此:
链接:https://pan.baidu.com/s/1DzNirNz5Xdno2G5UVguTVQ
提取码:0309
2.Hadoop:
开启HDFS:start-all.sh
并且查看进程是否全部开启!
3 HBase(可以不用该步骤)
开启HBase:start-hbase.sh
并且查看进程是否全部开启!
4. Hive 操作
4.1在HIve创建数据库 create database kaoyan;用以存放我们的考研成绩数据表。
4.2 创建数据表kaoyan01,用以存放我们的考研成绩数据。
#一共四个字段,对应“考研成绩.xlsx”中的数据 学号 科目1 科目2 总分。
#用以存放虚拟机中“001”的数据 create table kaoyan01( id String, cj1 String, cj2 String, sum String) row format delimited fields terminated by't'stored as textfile location'/hive/kaoyan01_001'; #用以存放虚拟机中“002”的数据 create table kaoyan01( id String, cj1 String, cj2 String, sum String) row format delimited fields terminated by't'stored as textfile location'/hive/kaoyan01_002'; #用以存放虚拟机中“003”的数据 create table kaoyan03( id String, cj1 String, cj2 String, sum String) row format delimited fields terminated by't'stored as textfile location'/hive/kaoyan01_003';
虚拟机的hive查看建好的表:
HDFS查看数据是否写入:
5.HDFS操作 通过 HDFS 将 ’001’ ‘002’ ‘003’ 中的数据传到上面建的表单中: hdfs dfs -put 001 /hive/kaoyan01_001 hdfs dfs -put 002 /hive/kaoyan01_002 hdfs dfs -put 003 /hive/kaoyan01_003
在Hive中查看是否有数据插入:
在 Hive 中 创建中间表:用来将三个数据表整合到一起 create table kaoyan AS select * from kaoyan01; #由于”kaoyan”要在后面用做结果表,为避免名字上的混乱将其改明为“kaoyan00” ALTER TABLE kaoyan RENAME kaoyan00; insert into kaoyan select * from kaoyan02; insert into kaoyan select * from kaoyan03; 查询”kaoyan00” 查看是否三个数据都在:
#创建结果表”KaoYan”,将中间表排序过后存到结果表,用来传到MySQL #建表 create table KaoYan( id String, cj1 String, cj2 String, sum String) row format delimited fields terminated by't'stored as textfile location'/hive/KaoKan_003'; #排序 insert into KaoYan select id,cj1,cj2,sum from kaoyan00 order by sum desc;
6.Mysql操作 6.1在mysql中创建数据库”kaoyan” 创建数据库“kaoyan_data” 用来接收Hive 的数据
7.1 Sqoop 操作
sqoop export --connect 'jdbc:mysql://hadoop2:3306/kaoyan' #想要传入到的mysql中的数据库名 --username hive --password 123456 --table KaoYan #想要传入到的mysql中的数据表名 --input-fields-terminated-by 't' #以 tab 为分割数据 不然数据导入后格式会和预期不一样 --export-dir /hive/KaoKan_003 #将”/hive/KaoKan_003”的数据导入到mysql->kaoyan->kaoyan_data -m1
错误展示1:#以 tab 为分割数据 不然数据导入后格式会和预期不一样
#建表前没有use 数据库 或者建表时没有指定数据库。那么这个表会默认建在”default”下。
#因此在“kaoyan”中查无此表!
原因:没有以 tab "t"为分割数据,上传时没有进行分割上传。
更换查询语法,查询如下 表中 cj1 cj2 sum 均无数据,四列数据都挤在了 id中。
查看数据:#sqoop操作将 ”/hive/KaoKan_003”的数据导入到mysql->kaoyan->kaoyan_data
代码执行状况:正在执行!
代码执行状况:执行完成!
到MySQL的kaoyan.kaoyan_data 中查看数据:
数据正常!试验完成!



