这篇文章主要介绍了Sqoop怎么安装,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
1、首先下载安装包,点击此处进行下载。
2、将下载的安装包上传到集群中,解压到相关目录并重命名。
tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz -C ../modules/
mv sqoop-1.4.6.bin__hadoop-2.0.4-alpha sqoop
1、首先重命名sqoop-env-template.sh文件
[root@master conf]# mv sqoop-env-template.sh sqoop-env.sh
2、在sqoop-env.sh中添加各组件的路径
export HADOOP_COMMON_HOME=/opt/modules/hadoop-2.7.2
export HADOOP_MAPRED_HOME=/opt/modules/hadoop-2.7.2
export HIVE_HOME=/opt/modules/hive
export ZOOKEEPER_HOME=/opt/modules/zookeeper-3.4.10
export ZOOCFGDIR=/opt/modules/zookeeper-3.4.10
export HBASE_HOME=/opt/modules/hbase
拷贝MySQL的驱动包到Sqoop的lib目录下:
[root@master software]# cp ./mysql-connector-java-5.1.47.jar /opt/modules/sqoop/lib/
1.4 验证Sqoop是否安装成功
bin/sqoop help
出现上图的内容说明安装成功。
bin/sqoop list-databases --connect jdbc:mysql://master:3306/ --username root --password p@ssw0rd
1、首先在MySQL数据库(xzw)中新建一张people表,如下所示:
create table people(id int(4) primary key not null auto_increment, name varchar(255), sex varchar(255));
insert into people(name, sex) values('xzw', 'Male');
insert into people(name, sex) values('fq', 'FeMale');
2、全量导入
bin/sqoop import \
--connect jdbc:mysql://master:3306/xzw \
--username root \
--password p@ssw0rd \
--table people \
--target-dir /user/sqoop/people \
--delete-target-dir \
--num-mappers 1 \
--fields-terminated-by ","
使用如下命令查看导入的结果:
3、查询导入
bin/sqoop import \
--connect jdbc:mysql://master:3306/xzw \
--username root \
--password p@ssw0rd \
--target-dir /user/sqoop/people \
--delete-target-dir \
--num-mappers 1 \
--fields-terminated-by "," \
--query 'select name,sex from people where id <=1 and $CONDITIONS;'
查看导入结果:
这里需要注意的是,如果query后使用的是双引号,则$CONDITIONS前必须加转义符\,防止shell识别为自己的变量。如果使用的是单引号,则不需要加。
4、导入指定列
bin/sqoop import \
--connect jdbc:mysql://master:3306/xzw \
--username root \
--password p@ssw0rd \
--target-dir /user/sqoop/people \
--delete-target-dir \
--num-mappers 1 \
--fields-terminated-by "," \
--columns id,sex \
--table people
查看结果:
这里需要注意的是,columns中如果涉及到多列,用逗号分隔,分隔时不要添加空格。
5、使用sqoop关键字筛选查询导入数据
bin/sqoop import \
--connect jdbc:mysql://master:3306/xzw \
--username root \
--password p@ssw0rd \
--target-dir /user/sqoop/people \
--delete-target-dir \
--num-mappers 1 \
--fields-terminated-by "," \
--table people \
--where "id=1"
查看结果:
bin/sqoop import \
--connect jdbc:mysql://master:3306/xzw \
--username root \
--password p@ssw0rd \
--table people \
--num-mappers 1 \
--hive-import \
--fields-terminated-by "," \
--hive-overwrite \
--hive-table hive_people
该过程分为两步,第一步将数据导入到HDFS,第二步将导入到HDFS的数据迁移到Hive仓库。这里需要注意的是,Hive中的表不需要提前创建,Sqoop会在导数据的过程中自动创建表。
bin/sqoop import \
--connect jdbc:mysql://master:3306/xzw \
--username root \
--password p@ssw0rd \
--table people \
--columns "id,name,sex" \
--column-family "info" \
--hbase-create-table \
--hbase-row-key "id" \
--hbase-table "hbase_people" \
--num-mappers 1 \
--split-by id
这里需要注意的是,需要提前将HBase表建好:
create 'hbase_people','info'
bin/sqoop export \
--connect jdbc:mysql://master:3306/xzw \
--username root \
--password p@ssw0rd \
--table people \
--num-mappers 1 \
--export-dir /user/sqoop/people \
--input-fields-terminated-by ","
这里需要注意的是,如果MySQL中不存在表,不会自动创建,简言之就是在执行导出之前需要在MySQL中创建好表。
我们使用opt格式的文件打包Sqoop命令,然后执行,具体如下。
首先在Sqoop的安装目录新建目录opt,并编写脚本如下:
export
--connect
jdbc:mysql://master:3306/xzw
--username
root
--password
p@ssw0rd
--table
people
--num-mappers
1
--export-dir
/user/sqoop/people
--input-fields-terminated-by
","
然后使用如下命令执行脚本:
bin/sqoop --options-file opt/HDFSToMySQL.opt
感谢你能够认真阅读完这篇文章,希望小编分享的“Sqoop怎么安装”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。