山东大学软件学院数据挖掘实验五(2)的坑
一、 实验目的
掌握数据导入Hive表的方式
理解三种数据导入Hive表的原理
二、 实验内容
1、启动Hadoop和Hive服务并创建数据表
2、将Hive表中的数据导出
三、 实验环境
硬件:ubuntu 16.04
软件:JDK-1.8、hive-2.3、Hadoop-2.7、MySQL-5.7、Sqoop1.4
数据存放路径:/data/dataset
tar包路径:/data/software
tar包压缩路径:/data/bigdata
软件安装路径:/opt
实验设计创建文件:/data/resource
四、 实验原理
Export工具将文件从HDFS导出到关系型数据库。目标表必须存在于数据库中,根据用户指定的分隔符读取输入文件并解析为一条记录。
默认操作是将这些数据以“insert ”的方式插入到数据库表中;在“更新模式”中,Sqoop将使用“update”的方式更新记录。
Sqoop 数据导出流程,首先用户输入一个 Sqoop export 命令,它会获取关系型数据库的 schema,建立 Hadoop 字段与数据库表字段的映射关系。 然后会将输入命令转化为基于 Map 的 MapReduce作业,这样 MapReduce作业中有很多 Map 任务,它们并行的从 HDFS 读取数据,并将整个数据拷贝到数据库中。
五、 实验步骤
5.1、启动Hadoop和Hive服务并创建数据表
1、检查MySQL是否安装
mysql -u root -proot
此时发现报错信息如下:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111)
执行如下命令,即可成功进入 MySQL。
rm /var/run/mysqld/mysqld.sock
service mysql restart
2、检测是否安装Hadoop
注意:需要在配置文件/etc/profile中注释掉Hadoop3的相关环境变量设置,然后执行命令【source /etc/profile】,让配置的profile文件立刻生效。
启动Hadoop:
start-all.sh
查看守护进程是否启动,如下图所示:
root@localhost:~# jps
8423 SecondaryNameNode
8712 NodeManager
8072 NameNode
8203 DataNode
9036 Jps
8588 ResourceManager
2、启动Mysql和Hive:
service mysql start
cd /opt/hive
hive
3、创建表
创建film表,分为电影名称、上映日期、票房三个字段,数据格式以“,”分割:
hive> create table film(name string,dates string,prince int) row format delimited fields terminated by ',';
4、导入数据
将本地的film_log3.log文件数据加载到film表:
hive> load data local inpath '/data/dataset/film_log3.log'into table film;
5、查看film表数据的总条数:
hive> select count(*) from film;
6、使用MySQL创建film_info表
mysql -uroot -proot
create database data;
use data;
create table film_info(name varchar(50),dates varchar(50),prince double)engine=innodb charset=utf8;
5.2、将Hive表中的数据导出
1、查看hive中的film表在HDFS上的存储位置
hadoop fs -ls /user/hive/warehouse/film
2、将hive的film表数据导出到指定表film_info中
sqoop export --connect jdbc:mysql://localhost:3306/data --username root --password root --table film_info --export-dir /user/hive/warehouse/film --input-fields-terminated-by ',' --m 1
3、查看导出的结果
mysql> select * from film_info limit 5;
+------------+-----------+--------+
| name | dates | prince |
+------------+-----------+--------+
| ?????? | 2014.1.10 | 52 |
| ????? | 2015.6.5 | 85 |
| ????? | 2016.1.1 | 188 |
| ?????? | 2014.4.11 | 71 |
| ?????????? | 2016.4.1 | 49 |
+------------+-----------+--------+
5 rows in set (0.00 sec)
发现name这一列中文都是乱码,是因为导出的编码格式没有指定
4、修改编码格式
#清空表 truncate film_info;
指定编码格式为“UTF-8”
sqoop export --connect "jdbc:mysql://localhost:3306/data?useUnicode=true&characterEncoding=utf-8" --username root --password root --table film_info --export-dir /user/hive/warehouse/film --input-fields-terminated-by ',' --m 1
5、查看导出的结果
mysql> select * from film_info limit 5;
+--------------------------------+-----------+--------+
| name | dates | prince |
+--------------------------------+-----------+--------+
| 《不爱不散》 | 2014.1.10 | 52 |
| 《顺风车》 | 2015.6.5 | 85 |
| 《小门神》 | 2016.1.1 | 188 |
| 《百变爱人》 | 2014.4.11 | 71 |
| 《睡在我上铺的兄弟》 | 2016.4.1 | 49 |
+--------------------------------+-----------+--------+
5 rows in set (0.00 sec)
坑
1.hadoop3环境变量的修改
cd /opt/etc
vi profile
将hadoop3的环境变量注释掉
2.npm install mysql-server
在启动mysql之前需要npm install mysql-server
按照提示进行npm update之后npm install mysql-server
山东大学软件学院数据挖掘实验五(2)的坑相关推荐
- 山东大学软件学院数据库系统实验五
文章目录 一.实验时间 二.实验题目 一.实验时间 2021年5月4日星期二,第10周 二.实验题目 1. 在学生表pub.student中统计名字(姓名的第一位是姓氏,其余为名字,不考虑复姓)的使用 ...
- 山东大学软件学院数据结构实验报告及实验代码(全)
实验大纲: https://pan.baidu.com/s/16X4z9vbJzR7D-UlTyMLjgg 提取码:g29t 内容为2019级的实验大纲,每年基本不变.平台具有查重功能,所以建议大家自 ...
- 山东大学类脑实验 五 HMAX 模型实现
山东大学类脑实验 五 HMAX 模型实现 实验目的: 加深对 HMAX 模型的理解,能够使用 HMAX 模型解决简单问题 实验内容: 根据 HMAX 模型的相关知识,使用 Python 语言实现一个简 ...
- 山东大学软件学院面向对象实验——排序
文章目录 一.写在最前面 二.题目要求 三.项目截图及录屏 四.具体功能的实现 4.1 动态演示功能 4.2 对象排序功能 4.3 单步回退功能 4.4 二级下拉框的实现 4.5 界面美化的实现 五. ...
- 山东大学软件学院数据库实验1-9
SDU 数据库系统实验 实验一 1-1创建test1_student表 1-2创建test1_course表 1-3创建teset1_student_course表 1-4表test1_student ...
- 山东大学linux应用实验五,【Linux】山东大学Linux应用课程实验记录
找到这篇博文的人,一定被Linux实验弄得很爆炸吧哈哈哈. 这里是我Linux实验的记录,供大家学习和参考.如有错误,还请指正. 实验一 一. 基本命令 显示系统当前时间. date 显示2003年的 ...
- 河北工业大学数据挖掘实验五 k-means聚类算法
k-均值聚类算法 一.实验目的 二.实验原理 1.k-均值聚类 2.终止条件 三.实验内容和步骤 1.实验内容 2.实验步骤 3.程序框图 4.实验样本 5.实验代码 四.实验结果 五.实验分析 一. ...
- 山东大学软件学院操作系统实验1(关于环境)
目录 1.写在前面 2.关于环境 3.关于函数和操作 4.具体代码 1.写在前面 2023年山东大学操作系统实验,第一次实验肥肠简单,压缩以后代码仅仅几行罢了 实验要求只是:创建一个父进程,然后创建子 ...
- 山东大学软件学院数据库系统实验四
文章目录 一.实验时间 二.实验题目 一.实验时间 2021年4月25日星期六,第8周,补周二的课 二.实验题目 1.将pub用户下表student_41及数据复制到主用户的表test4_01中,使用 ...
最新文章
- excel之根据单元格内容自动修改单元格颜色
- 图像清晰度的评价及分析
- c语言消字母游戏实验报告,C语言编程实验报告格式示例
- 苹果X可以升级5G吗_苹果x可以用5g网络吗
- ueditor如何去掉末尾的p标签_织梦dedecms如何去掉域名后面的index.html
- 修改看板视图默认显示个数
- Android设计模式(1)----单例模式
- 126 MySQL存储引擎概述
- csol永恒python怎样施展技能_pycharm辅助学习使用debug功能
- css制作向下的三角形
- 想留长发没那么难,30个让头发快速生长的秘诀~
- 黑客用“勒索病毒”展示肌肉,但你了解什么是“白帽黑客”吗?
- Flutter FFI实践
- 软件中的易用性设计及测试(二)
- Android 9.0以上HTTP网络请求被限制解决方案
- SVN命令--命令大全
- vue中防止按钮重复点击提交的方法
- 自动化篇 - 为闲鱼制作一个客服机器人
- PHP代码审计——任意文件删除漏洞(YXcms)
- 基于51单片机GPS的导航系统设计(2)---具体实施
热门文章
- altium designer 出gerber文件时一个小问题的解决
- python为什么有gil锁_为什么目前python3的全局锁gil性能远逊于python2
- C语言————明明的随机数
- 【C语言】C语言数据类型
- 清除对象中值为空的属性
- 如何看待许多年轻人“疯狂”的投入到IT培训当中
- Python基础入门教程:Day21-30/Web前端概述
- 海外服务器香港美国服务器哪里的比较好价格便宜的
- Lotus Notes登录后无法进入邮件,一直处于“正在加载,请稍候” 解决办法!!!
- onshow 和 onload 的区别