一、导入的定义
sqoop的机理是:关系型数据库<---->Hadoop(hdfs/hive/hbase)
导入的参照物是 Hadoop(hdfs/hive/hbase)
相对于Hadoop 对hadoop/hive/hbase导入 是导入
二、MySQL向hdfs中导入数据
sqoop import \
--connect jdbc:mysql://主机名:端口号/数据库 \
--username 数据库名称 \
--password 数据库密码 \
--table 需要导入的数据表名 \
--target-dir 导入hdfs的路径 \
-m 跑这个任务需要多少个map
sqoop import \
--connect jdbc:mysql://master:3306/db_hotel_hyt \
--username root \
--password root \
--table t_user \
--target-dir /t_user
--m 1
当map=2时 需要指定根据哪个字段进行切分:--split-by 字段
sqoop import \
--connect jdbc:mysql://master:3306/db_hotel_hyt \
--username root \
--password root \
--split-by id \
--table t_user \
--target-dir /t_user2 \
--m 2
当指定map=1时
指定map=2时
三、MySQL向hive导入全量备份
sqoop import \
--connect jdbc:mysql://主机名:端口号/数据库 \
--username 数据库名称 \
--password 数据库密码 \
--table 需要导入的数据表名 \
--target-dir 导入hdfs的路径 \
--hive-import \
--hive-database hive中的数据库 \
--create-hive-table \ #创建 hive 表-m 跑这个任务需要多少个map
sqoop import \
--connect jdbc:mysql://master:3306/db_hotel_hyt \
--username root \
--password root \
--table t_user \
--hive-import \
--hive-database stude \
--create-hive-table \
--target-dir /db_hyt1 \
--fields-terminated-by '\t' \
--null-string '\\N' --null-non-string '\\N' --split-by id -m 1
四、注意事项
1、将sqoop导入hdfs中时,一定要开启hdfs和yarn的集群
可以用:start-all.sh
2、出现以下的情况:
这是因为hadoop进入了安全模式,这时需要退出安全模式
可以用以下命令退出安全模式:
hadoop dfsadmin -safemode leave
然后再执行sqoop语句