安装Sqoop-1.4.7.bin_hadoop-2.6
- 提取码:nnfq
- 利用Xftp上传到centOS7集群,可能要修改文件用户组
- 解压并设置软连接
tar -zxvf sqoop-1.4.7.bin_hadoop-2.6.0.tar.gz -C /user
- 设置软连接
cd /user
ln -s sqoop-1.4.7.bin_hadoop-2.6.0 sqoop
- 配置环境变量
vi ~/.bashrc
----------------------------------------------------------
PATH=/user/sqoop-1.4.7.bin_hadoop-2.6.0/bin:$PATH
- 使环境变量立即生效
source ~/.bashrc
- 修改配置文件 sqoop-env.sh
cd /user/sqoop/conf
mv sqoop-env-template.sh sqoop-env.sh
vi sqoop-env.sh
-----------------------------------------------------------
#Set path to where bin/hadoop is available
export HADOOP_COMMON_HOME=/user/hadoop-2.6.5 #你的目录
#Set path to where hadoop-*-core.jar is available
export HADOOP_MAPRED_HOME=/user/hadoop-2.6.5 #你的目录
#set the path to where bin/hbase is available
export HBASE_HOME=/user/hbase-1.2.11 #你的目录
#Set the path to where bin/hive is available
export HIVE_HOME=/user/hive-1.2 #你的目录
#Set the path for where zookeper config dir is
export ZOOCFGDIR=/user/zookeeper-3.4.5/conf #你的目录
- 拷贝mysql驱动到sqoop的lib下
提取码:a62c
mysql驱动包使用版本过低会报错
ERROR tool.ImportTool: Encountered IOException running import job: java.io.IOException: No columns to generate for ClassWriter
cp mysql-connector-java-5.1.47-bin.jar /user/sqoop/lib
- 使用sqoop连接mysql 测试是否成功,在sqoop目录下
./bin/sqoop list-tables --connect jdbc:mysql://Master/mysql --username root --password rootcentOS
则成功
使用Sqoop将Mysql全部数据导入到Hdfs
前提保证你的mysql上有数据
./bin/sqoop import -m 1 --connect jdbc:mysql://192.168.23.200:3306/你的mysql数据库 --username 你的mysql用户名 --password 你的mysql密码 --table 你的数据表名 --fields-terminated-by ' ' --target-dir /sqoop_data2
使用 --fields-terminated-by ' ' 可以指定分隔符,不加则默认mysql数据库上的数据格式。
使用 --target-dir 可以指定HDFS上的目录,不需要提前创建好。
查看hdfs上的前5行
hadoop fs -cat /sqoop_data2/pa* | head -5
使用Sqoop将Mysql数据导入Hive
说明:执行导入Hive的命令(如果Hive中没有存在对应的hive表,则会依据mysql 的表来创建对应的表,字段属性也跟mysql的一致)
将hive-common-1.2.2.jar, hive-shims-0.20S-1.2.2.jar, hive-shims-0.23-1.2.2.jar,hive-shims-1.2.2.jar,hive-shims-common-1.2.2.jar,hive-shims-scheduler-1.2.2.jar,hive-exec-1.2.2.jar,hive-common-1.2.2.jar,libthrift-0.9.2.jar,mysql-connector-java-5.1.47-bin.jar
在hive的lib目录下,拷贝到sqoop的lib目录下。
.bin/sqoop import --hive-import \
--connect jdbc:mysql://Master:3306/spice
--username hive
--password hive
--table users
--hive-table hiveusers
--fields-terminated-by ','
--warehouse-dir /user/hive/warehouse/users.db -m 1
–fields-terminated-by 指定要导入的表的分隔符
–warehouse-dir /user/hive/warehouse/users.db 指定要储存在hdfs上的目录