一、 实验目的

  掌握数据导入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是否安装

  1. mysql -u root -proot

  此时发现报错信息如下:

  1. ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111)

  执行如下命令,即可成功进入 MySQL。

  1. rm /var/run/mysqld/mysqld.sock
  2. service mysql restart

  2、检测是否安装Hadoop
  注意:需要在配置文件/etc/profile中注释掉Hadoop3的相关环境变量设置,然后执行命令【source /etc/profile】,让配置的profile文件立刻生效。

启动Hadoop:

  1. start-all.sh

  查看守护进程是否启动,如下图所示:

  1. root@localhost:~# jps
  2. 8423 SecondaryNameNode
  3. 8712 NodeManager
  4. 8072 NameNode
  5. 8203 DataNode
  6. 9036 Jps
  7. 8588 ResourceManager

  2、启动Mysql和Hive:

  1. service mysql start
  2. cd /opt/hive
  3. hive

  3、创建表
  创建film表,分为电影名称、上映日期、票房三个字段,数据格式以“,”分割:

  1. hive> create table film(name string,dates string,prince int) row format delimited fields terminated by ',';

  4、导入数据
  将本地的film_log3.log文件数据加载到film表:

  1. hive> load data local inpath '/data/dataset/film_log3.log'into table film;

  5、查看film表数据的总条数:

  1. hive> select count(*) from film;

  6、使用MySQL创建film_info表

  1. mysql -uroot -proot
  2. create database data;
  3. use data;
  4. create table film_info(name varchar(50),dates varchar(50),prince double)engine=innodb charset=utf8;

5.2、将Hive表中的数据导出

  1、查看hive中的film表在HDFS上的存储位置

  1. hadoop fs -ls /user/hive/warehouse/film

  2、将hive的film表数据导出到指定表film_info中

  1. 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、查看导出的结果

  1. mysql> select * from film_info limit 5;
  2. +------------+-----------+--------+
  3. | name | dates | prince |
  4. +------------+-----------+--------+
  5. | ?????? | 2014.1.10 | 52 |
  6. | ????? | 2015.6.5 | 85 |
  7. | ????? | 2016.1.1 | 188 |
  8. | ?????? | 2014.4.11 | 71 |
  9. | ?????????? | 2016.4.1 | 49 |
  10. +------------+-----------+--------+
  11. 5 rows in set (0.00 sec)

  发现name这一列中文都是乱码,是因为导出的编码格式没有指定
  4、修改编码格式

  1. #清空表 truncate film_info;

  指定编码格式为“UTF-8”

  1. 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、查看导出的结果

  1. mysql> select * from film_info limit 5;
  2. +--------------------------------+-----------+--------+
  3. | name | dates | prince |
  4. +--------------------------------+-----------+--------+
  5. | 《不爱不散》 | 2014.1.10 | 52 |
  6. | 《顺风车》 | 2015.6.5 | 85 |
  7. | 《小门神》 | 2016.1.1 | 188 |
  8. | 《百变爱人》 | 2014.4.11 | 71 |
  9. | 《睡在我上铺的兄弟》 | 2016.4.1 | 49 |
  10. +--------------------------------+-----------+--------+
  11. 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)的坑相关推荐

  1. 山东大学软件学院数据库系统实验五

    文章目录 一.实验时间 二.实验题目 一.实验时间 2021年5月4日星期二,第10周 二.实验题目 1. 在学生表pub.student中统计名字(姓名的第一位是姓氏,其余为名字,不考虑复姓)的使用 ...

  2. 山东大学软件学院数据结构实验报告及实验代码(全)

    实验大纲: https://pan.baidu.com/s/16X4z9vbJzR7D-UlTyMLjgg 提取码:g29t 内容为2019级的实验大纲,每年基本不变.平台具有查重功能,所以建议大家自 ...

  3. 山东大学类脑实验 五 HMAX 模型实现

    山东大学类脑实验 五 HMAX 模型实现 实验目的: 加深对 HMAX 模型的理解,能够使用 HMAX 模型解决简单问题 实验内容: 根据 HMAX 模型的相关知识,使用 Python 语言实现一个简 ...

  4. 山东大学软件学院面向对象实验——排序

    文章目录 一.写在最前面 二.题目要求 三.项目截图及录屏 四.具体功能的实现 4.1 动态演示功能 4.2 对象排序功能 4.3 单步回退功能 4.4 二级下拉框的实现 4.5 界面美化的实现 五. ...

  5. 山东大学软件学院数据库实验1-9

    SDU 数据库系统实验 实验一 1-1创建test1_student表 1-2创建test1_course表 1-3创建teset1_student_course表 1-4表test1_student ...

  6. 山东大学linux应用实验五,【Linux】山东大学Linux应用课程实验记录

    找到这篇博文的人,一定被Linux实验弄得很爆炸吧哈哈哈. 这里是我Linux实验的记录,供大家学习和参考.如有错误,还请指正. 实验一 一. 基本命令 显示系统当前时间. date 显示2003年的 ...

  7. 河北工业大学数据挖掘实验五 k-means聚类算法

    k-均值聚类算法 一.实验目的 二.实验原理 1.k-均值聚类 2.终止条件 三.实验内容和步骤 1.实验内容 2.实验步骤 3.程序框图 4.实验样本 5.实验代码 四.实验结果 五.实验分析 一. ...

  8. 山东大学软件学院操作系统实验1(关于环境)

    目录 1.写在前面 2.关于环境 3.关于函数和操作 4.具体代码 1.写在前面 2023年山东大学操作系统实验,第一次实验肥肠简单,压缩以后代码仅仅几行罢了 实验要求只是:创建一个父进程,然后创建子 ...

  9. 山东大学软件学院数据库系统实验四

    文章目录 一.实验时间 二.实验题目 一.实验时间 2021年4月25日星期六,第8周,补周二的课 二.实验题目 1.将pub用户下表student_41及数据复制到主用户的表test4_01中,使用 ...

最新文章

  1. excel之根据单元格内容自动修改单元格颜色
  2. 图像清晰度的评价及分析
  3. c语言消字母游戏实验报告,C语言编程实验报告格式示例
  4. 苹果X可以升级5G吗_苹果x可以用5g网络吗
  5. ueditor如何去掉末尾的p标签_织梦dedecms如何去掉域名后面的index.html
  6. 修改看板视图默认显示个数
  7. Android设计模式(1)----单例模式
  8. 126 MySQL存储引擎概述
  9. csol永恒python怎样施展技能_pycharm辅助学习使用debug功能
  10. css制作向下的三角形
  11. 想留长发没那么难,30个让头发快速生长的秘诀~
  12. 黑客用“勒索病毒”展示肌肉,但你了解什么是“白帽黑客”吗?
  13. Flutter FFI实践
  14. 软件中的易用性设计及测试(二)
  15. Android 9.0以上HTTP网络请求被限制解决方案
  16. SVN命令--命令大全
  17. vue中防止按钮重复点击提交的方法
  18. 自动化篇 - 为闲鱼制作一个客服机器人
  19. PHP代码审计——任意文件删除漏洞(YXcms)
  20. 基于51单片机GPS的导航系统设计(2)---具体实施

热门文章

  1. altium designer 出gerber文件时一个小问题的解决
  2. python为什么有gil锁_为什么目前python3的全局锁gil性能远逊于python2
  3. C语言————明明的随机数
  4. 【C语言】C语言数据类型
  5. 清除对象中值为空的属性
  6. 如何看待许多年轻人“疯狂”的投入到IT培训当中
  7. Python基础入门教程:Day21-30/Web前端概述
  8. 海外服务器香港美国服务器哪里的比较好价格便宜的
  9. Lotus Notes登录后无法进入邮件,一直处于“正在加载,请稍候” 解决办法!!!
  10. onshow 和 onload 的区别