sqoop 安装与命令
Posted langfanyun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqoop 安装与命令相关的知识,希望对你有一定的参考价值。
1. 下载: wget http://mirrors.shu.edu.cn/apache/sqoop/1.4.7/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
2. 解压后,假设 $SQOOP_HOME 为解压后的文件夹的位置,进入 $SQOOP_HOME/conf 目录, 运行: cp sqoop-env-template.sh sqoop-env.sh
3. 修改 sqoop-env.sh 中的内容,根据文件里的注释,设置相应的内容。如:
#Set path to where bin/hadoop is available
export HADOOP_COMMON_HOME=/opt/programs/hadoop-2.7.3
其它的,如 HBASE_HOME和 HIVE_HOME , 如果没用到,则不需要设置。
4. 在 $SQOOP_HOME/bin 目录下运行: sqoop help 会得到所有的命令。(注:如果在第3步中,有些值没有设置,运行时会报一些 warning 的信息,这是正常的)。
5. 查看某个命令的详细信息(如:import): sqoop import --help
各个参数详细点的说明见: https://blog.csdn.net/zleven/article/details/53781111
6. 查看 mysql 中某个表(注意:需要将 mysql 的数据库连接的 jar 包复制到 lib 目录下):
bin/sqoop eval --connect jdbc:mysql://localhost:3306/sqoop_test --username sqoop --password 123456 --query "select * from student"
7. 根据关系型数据库中的表创建 Hive 表(注:只会创建表结构,不会复制数据)
bin/sqoop create-hive-table --connect jdbc:mysql://localhost:3306/sqoop_test --table student --username sqoop --password 123456 --hive-table hive_student
8. import 命令
主要作用是将关系型数据库中的数据导入到 HDFS 文件系统中(或者 HBase/hive 中),不管是导入到 HBase 中还是导入到 hive 中,都需要先导入到HDFS中,然后导入到最终的位置,一般情况下,只会采用将关系型 数据库的数据导入到 HDFS 或者 Hive 中,不会导入到 HBase中。
import 命令导入到 HDFS 中默认采用 ‘,’ 进行分割字段值,导入到 hive 中默认采用 ‘u0001‘ 来进行分割字段值,如果有特殊的分割方式,我们可以通过参数指定。
imprt 命令导入到 hive 的时候,会先在 /user/${user.name} 文件夹下创建一个同关系型数据库表名相同的文件夹作为中轩文件夹,如果该文件夹存在,则会报错。
(1) 将 mysql 表中的数据导入到 hive 的 hive_student 表(这个表不存在)中,
sqoop import --connect jdbc:mysql://localhost:3306/sqoop_test --table student --username sqoop --password 123456 --delete-target-dir --hive-import --hive-database default --hive-table hive_student --fields-terminated-by ‘,‘
我运行这个命令时,出现下面的错误:
需要把 hive/lib/hive-exec*.jar 拷贝到 sqoop/lib/ 下。
以上是关于sqoop 安装与命令的主要内容,如果未能解决你的问题,请参考以下文章