一、 任务描述
本实验通过练习sqoop的安装和配置,为学习sqoop准备,并且通过练习将mysql中表的数据导入到HDFS上来对sqoop的使用有一个初步的了解。
二、 任务目标
完成sqoop的安装和配置并且练习将mysql数据库里的数据导入到HDFS中。
三、 任务环境
本次环境是:Ubuntu16.04+ jdk1.8.0_73 + hadoop2.7.3 + sqoop-1.4.6 +mysql-5.7.22
四、 任务分析
解压sqoop安装包然后进行配置后,在sqoop的bin目录下输入命令【./sqoop】检查是否配置成功。然后在mysql中创建表并添加数据最后导入到HDFS中进行查看。
五、 任务实施
步骤1、Sqoop安装包的解压
右击桌面上选择【Open Terminal Here】打开终端。在弹出的终端中输入【cd /simple/soft】进入软件包的所在文件夹中,并通过【ls】查看文件夹下所有软件。如图1所示。
图1 查看所需jar包
返回到simple目录,在simple目录下执行命令【tar -zxvf /simple/soft/sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz】解压sqoop如图2所示。
注:打开终端的方法,右击桌面选择“在终端中打开“
图2 解压jar包
查看解压的文件并改名为sqoop
图3 为sqoop改名
♥ 知识链接
sqoop介绍
sqoop架构非常简单,其整合了Hive、Hbase和Oozie,通过map-reduce任务来传输数据,从而提供并发特性和容错。
sqoop主要通过JDBC和关系数据库进行交互。理论上支持JDBC的database都可以使用sqoop和hdfs进行数据交互。
步骤2、Sqoop配置
把桌面上的mysql的jdbc驱动包mysql-connector-java-5.1.45.jar复制到sqoop安装目录下的lib文件夹下。
图4 拷贝所需jar包到sqoop目录
在终端输入【vim /etc/profile】配置环境变量,
图5 配置环境变量
在终端输入【source /etc/profile】使文件生效。如图6所示:
图6 使配置生效
将sqoop-env-template.sh重命名为sqoop-env.sh,如图7所示
图7 重命名配置文件
修改sqoop-env.sh的属性,执行命令: 【vim sqoop-env.sh】。如图8所示。
添加相关的配置,注意:当你装了什么工具就配置什么工具路径。按“i“键进入插入操作,按“esc“退出插入操作,输入“:wq!“回车保存并退出。
图8 编辑配置文件
修改/simple/sqoop/bin/configure-sqoop里面的配置,进入到/simple/sqoop/bin目录下执行命令:【vim configure-sqoop】。如图9所示
图9 进入configure-sqoop文件
注释掉HCatalog等不用的组件。如图10
图10 注释掉不用的配置
启动mysql服务器,如图11所示
图11 启动mysql服务器
♥ 知识链接
mysql密码设置
如果mysql没有设置密码,可通过如下步骤进行设置
1)use mysql
2)set password for “root“@“localhost“ = password(“root“);
启动sqoop,在${sqoop}的bin目录下有一个sqoop。执行命令:./sqoop。如图12所示:
图12 启动sqoop
输入命令【./sqoop list-databases --connect jdbc:mysql://localhost:3306/ --username root --password root】链接mysql数据库,列出数据库列表:如图13所示
图13 列出数据库表
通过以上几步可以检查出hadoop、mysql、和sqoop是否已经安装成功,并且可以通过sqoop连接到mysql中。
六、 任务测试
启动hadoop服务,启动完成后【jps】查看启动服务。如图14所示
图14 启动hadoop服务并查看
使用root用户进入mysql数据库,使用命令【create database sqooptest】创建新的数据库sqooptest,并使用命令【use sqooptest】选中sqooptest数据库。如图15所示
图15 创建数据库并选中
在sqooptest数据库里创建表test, 并添加数据进去,最后检查一下,数据是否添加成功,如图16所示
图16 创建数据表
退出mysql命令行模式,在bin目录下输入命令【./sqoop import --connect jdbc:mysql://localhost:3306/sqooptest --username root --password root --table test -m 1 --target-dir /usr/local/hadoop/result】将数据从mysql导入到hdfs中去。如图17
图17 mysql导入到hdfs
导入成功后的结果如下图18所示
图18 成功结果图
在hadoop中检查数据是否导入到hdfs中。在当前的目录下输入命令【hadoop fs -ls /usr/local/hadoop/result】查看生成的文件,并且通过【hadoop fs -cat】命令查看文件内容。如图19所示
图19 查看导入的文件