sqoop它是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql…)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
在尉犁等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站制作、网站设计 网站设计制作按需网站设计,公司网站建设,企业网站建设,高端网站设计,全网整合营销推广,外贸网站制作,尉犁网站建设费用合理。
tar -zxvf .tar.gz -C 目标目录
mv sqoop-1.4.7.bin__hadoop-2.6.0/ sqoop-1.4.7
进入sqoop-1.4.7/conf路径,重命名配置文件:
mv sqoop-env-template.sh sqoop-env.sh
修改sqoop-env.sh信息:(若配置了环境变量,可通过
echo $XXXXX_HOME
查询安装位置)
vi sqoop-env.sh
#Set path to where bin/hadoop is available
export HADOOP_COMMON_HOME=Hadoop安装路径
#Set path to where hadoop-*-core.jar is available
#export HADOOP_MAPRED_HOME=Hadoop安装路径
#set the path to where bin/hbase is available
#export HBASE_HOME=HBase安装路径
#Set the path to where bin/hive is available
#export HIVE_HOME=Hive安装路径
#Set the path for where zookeper config dir is
#export ZOOCFGDIR=ZooKeeper 配置文件夹 路径
复制代码
cp /XXX/hive/conf/hive-site.xml /XXX/sqoop-1.4.7/conf/
修改配置文件:
vi /etc/profile
增加以下内容:
export SQOOP_HOME=sqoop安装路径
export PATH=$PATH:$SQOOP_HOME/bin
声明环境变量:
source /etc/profile
sqoop version
参数查看:Sqoop官网 -> documentation -> Sqoop User Guide
import
导入数据到集群
export
从集群导出数据
create-hive-table
创建hive表
import-all-tables
指定关系型数据库所有表到集群
list-databases
列出所有数据库
list-tables
列出所有数据库表
merge
合并数据
codegen
获取某张表数据生成JavaBean并打Jar包
功能:MySQL/Oracle –> HDFS/Hive
修改MySQL访问权限:
update user set host='%' where host='localhost';
delete from user where Host='127.0.0.1';
delete from user where Host='bigdata01';
delete from user where Host='::1';
flush privileges;
use mysql;
select User, Host, Password from user;
操作命令:
FAILED: SemanticException [Error 10072]: Database does not exist: XXXXXXXX
cp /XXX/hive/conf/hive-site.xml /XXX/sqoop-1.4.7/conf/
ERROR tool.ImportTool: Import failed: org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory hdfs://bigdata01:9000/XXXXXXXXXX already exists
ERROR tool.ImportTool: Import failed: java.io.IOException: java.lang.ClassNotFoundException: org.apache.hadoop.hive.conf.HiveConf
source /etc/profile
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HIVE_HOME/lib/*
vi /etc/profile
sqoop import --connect jdbc:mysql://bigdata01:3306/数据库名 --username root --password 密码 --table 表名 --num-mappers 1 --hive-import --fields-terminated-by "\t" --hive-overwrite --hive-table hive数据库名.表名
sqoop import
--connect jdbc:mysql://bigdata01:3306/数据库名
# 连接MySQL--username root
# 用户名--password XXXXXX
# 密码--table 表名
# 上传至HDFS的表--target-dir /YYYYYYY
# HDFS目标文件夹--num-mappers 1
# 指定map运行--fields-terminated-by "\t"
# 指定分隔符hdfs dfs -cat /XXXXXXX/part-m-00000
sqoop import --connect jdbc:mysql://bigdata01:3306/数据库名 --username root --password XXXXXX --table 表名 --target-dir /YYYYYYY --num-mappers 1 --fields-terminated-by "\t" --query 'select * from 表名 where 条件 and $CONDITIONS'
# $CONDITIONS 对mapper进行索引sqoop import --connect jdbc:mysql://bigdata01:3306/数据库名 --username root --password XXXXXX --table 表名 --target-dir /YYYYYYY --num-mappers 1 --columns 字段名
功能:HDFS/Hive –> MySQL/Oracle
操作命令:
sqoop emport
--connect jdbc:mysql://bigdata01:3306/数据库名
# 连接MySQL--username root
# 用户名--password XXXXXX
# 密码--table 表名
# 目标mysql表--export-dir /user/hive/warehouse/YYYYYYY
# hive文件夹--num-mappers 1
# 指定map运行--input-fields-terminated-by "\t"
# 指定分隔符操作命令:
sqoop list-databases --connect jdbc:mysql://bigdata01:3306/ --username root --password 密码
操作命令:
sqoop codegen --connect jdbc:mysql://bigdata01:3306/数据库名 --username root --password 密码 --table 表名
-- bindir Linux本地路径
# 指定Jar包打包路径--class-name 类名
# 指定Java类名--fields-terminated-by "\t"
操作命令:
sqoop merge
--new-data hdfs新表路径 --onto hdfs旧表路径
--target-dir /YYYYYYY
# 合并后的hdfs路径--jar-file =
# Linux本地Jar包路径--class-name XXXXX
# Jar包的类--merge-key id
# 合并依据**注意:**merge操作是一个新表替代旧表的操作,如果有冲突id的话新表数据替换旧表数据,如果没有冲突则是新表数据添加到旧表的数据。
新闻标题:Linux下安装并使用sqoop
URL地址:http://www.shufengxianlan.com/qtweb/news46/90296.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联