基于Hadoop构建数据分析系统-资源 实验4:使用sqoop将数据导入到hdfs 实验4:使用sqoop将数据导入到hdfs.docxVIP

  • 11
  • 0
  • 约2.02千字
  • 约 5页
  • 2021-01-28 发布于北京
  • 举报

基于Hadoop构建数据分析系统-资源 实验4:使用sqoop将数据导入到hdfs 实验4:使用sqoop将数据导入到hdfs.docx

实验4:使用Sqoop将数据导入到hdfs PAGE 2 [文档标题 实验4:使用sqoop将数据导入到hdfs 本次课程介绍实验4:使用sqoop将数据导入到hdfs。 一、Sqoop将数据导入到hdfs 在导入开始之前,Sqoop使用JDBC来检查将要导入的表。他检索出表中所有的列以及列的SQL数据类型。这些SQL类型(varchar、integer)被映射到Java数据类型(String、Integer等),在MapReduce应用中将使用这些对应的Java类型来保存字段的值。Sqoop的代码生成器使用这些信息来创建对应表的类,用于保存从表中抽取的记录。Sqoop启动的MapReduce作业用到一个InputFormat,他可以通过JDBC从一个数据库表中读取部分内容。 Hadoop提供的DataDriverDB InputFormat能为查询结果进行划分传给指定个数的map任务。为了获取更好的导入性能,查询会根据一个“划分列”来进行划分。Sqoop会选择一个合适的列作为划分列(通常是表的主键)。在生成反序列化代码和配置InputFormat之后,Sqoop将作业发送到MapReduce集群。Map任务将执行查询并将ResultSet中的数据反序列化到生成类的实例,这些数据要么直接保存在SequenceFile文件中,要么在写到HDFS之前被转换成分割的文本。Sqoop不需要每次都导入整张表,用户也可以在查询中加入到where子句,以此来限定需要导入的记录。 (一)步骤 1. 首先检查Hadoop相关进程,是否已经启动。若未启动,切换到/apps/hadoop/sbin目录下,启动Hadoop。。 jps cd?/apps/hadoop/sbin ./start-all.sh 2.在Linux本地新建/data/sqoop2目录 mkdir -p /data/sqoop2 切换到/data/sqoop2目录下将buyer_log文件放在此目录下。 3. 开启mysql服务 service mysql start 4.开启mysql(密码:strongs) mysql -u root -p 5.创建数据库mydb,并使用mydb数据库。 create database mydb; use mydb; 6.在mydb数据库中创建表record create table record(id varchar(100), buyer_id varchar(100),dt varchar(100),ip varchar(100),opt_type varchar(100)); 7.将Linux本地/data/sqoop2/buyer_log里的内容,导入的mydb数据库record表中 load data infile /data/sqoop2/buyer_log into table record fields terminated by \t; 8.查看record表中内容 select * from record; 9.另开一个窗口,使用Sqoop查看Mysql中的数据库。此步目的是检查Sqoop以及Mysql是否可以正常使用。 sqoop list-databases \ --connect jdbc:mysql://localhost:3306/ \ --username root \ --password strongs 10.使用Sqoop查看Mysql中的表 (在jdbc连接字符串中添加了数据库的名称。用于直接访问数据库实例)。 sqoop list-tables \ --connect jdbc:mysql://localhost:3306/mydb \ --username root \ --password strongs 11.使用Sqoop将Mysql中mydb数据库record表里的数据导入到HDFS/mysqoop2目录里。(HDFS上的/mysqoop2目录,不需要提前创建)。 sqoop import \ --connect jdbc:mysql://localhost:3306/mydb \ --username root \ --password strongs \ --table record -m 1 \ --target-dir /mysqoop2 12.查看HDFS上/mysqoop2目录下的文件内容 Hadoop fs -ls /mysqoop2 hadoop fs -cat /mysqoop2/part-m-000

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档