sqoop安装(linux)
2014-11-09 15:09
495 查看
Sqoop是一个用来将Hadoop(Hive、HBase)和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(例如:MySQL
,Oracle,Postgres等)中的数据导入到Hadoop的HDFS中,也可以将HDFS的数据导入到关系型数据库中。
Sqoop目前已经是Apache的顶级项目了,目前版本是1.4.4
和 Sqoop2 1.99.3,本文以1.4.4的版本为例讲解基本的安装配置和简单应用的演示。
[一]、安装配置
选择Sqoop 1.4.4
版本:sqoop-1.4.4.bin__hadoop-2.0.4-alpha.tar.gz
1.1、下载后解压配置:
1.2、环境变量配置 vi ~/.bash_profile :
1.3、配置Sqoop参数:
复制<SQOOP_HOME>/conf/sqoop-env-template.sh 一份重命名为:<SQOOP_HOME>/conf/sqoop-env.sh
vi <SQOOP_HOME>/conf/sqoop-env.sh
ps:因为我当前用户的默认环境变量中已经配置了相关变量,故该配置文件无需再修改:
1.4、驱动jar包
下面测试演示以MySQL为例,则需要把mysql对应的驱动lib文件copy到 <SQOOP_HOME>/lib 目录下。
[二]、测试数据准备
以MySQL
为例:
· 192.168.6.77(hostname:Master.Hadoop)
· database: test
· 用户:root
密码:micmiu
准备两张测试表一个有主键表demo_blog,一个无主键表 demo_log:
插入测试数据:
[三]、导入数据到HDFS
3.1、导入有主键的表
比如我需要把表 demo_blog (含主键) 的数据导入到HDFS中,执行如下命令:
执行过程如下:
验证导入到hdfs上的数据:
ps:默认设置下导入到hdfs上的路径是: /user/username/tablename/(files),比如我的当前用户是hadoop,那么实际路径即: /user/hadoop/demo_blog/(files)。
如果要自定义路径需要增加参数:--warehouse-dir 比如:
3.2、导入不含主键的表
比如需要把表 demo_log(无主键)的数据导入到hdfs中,执行如下命令:
ps:无主键表的导入需要增加参数 --split-byxxx 或者 -m
1
执行过程:
验证导入的数据:
[四]、导入数据到Hive
比如把表demo_blog
数据导入到Hive中,增加参数–hive-import :
执行过程如下:
Hive CLI中验证导入的数据:
[五]、导入数据到HBase
演示把表 demo_blog
数据导入到HBase
,指定Hbase中表名为demo_sqoop2hbase
的命令:
执行过程:
hbase shell中验证导入的数据:
验证导入成功。
本文到此已经把MySQL中的数据迁移到 HDFS、Hive、HBase的三种基本情况演示结束。
,Oracle,Postgres等)中的数据导入到Hadoop的HDFS中,也可以将HDFS的数据导入到关系型数据库中。
Sqoop目前已经是Apache的顶级项目了,目前版本是1.4.4
和 Sqoop2 1.99.3,本文以1.4.4的版本为例讲解基本的安装配置和简单应用的演示。
[一]、安装配置
选择Sqoop 1.4.4
版本:sqoop-1.4.4.bin__hadoop-2.0.4-alpha.tar.gz
1.1、下载后解压配置:
1 | tar -zxvf sqoop-1.4.4.bin__hadoop-2.0.4-alpha.tar.gz /usr/local/ |
2 | cd /usr/local 建立软连接: |
3 | ln -s sqoop-1.4.4.bin__hadoop-2.0.4-alpha sqoop |
1 | #Sqoop add by micmiu.com |
2 | export SQOOP_HOME=/usr/local/sqoop |
3 | export PATH=$SQOOP_HOME/bin:$PATH |
我们可以通过设置环境变量来简化操作。 [root@ www.linuxidc.com ~]# vi /etc/profile 加入一行 export PATH="$PATH:/usr/local/php/bin:/usr/local/mysql/bin" Source /etc/profile |
复制<SQOOP_HOME>/conf/sqoop-env-template.sh 一份重命名为:<SQOOP_HOME>/conf/sqoop-env.sh
vi <SQOOP_HOME>/conf/sqoop-env.sh
1 | # 指定各环境变量的实际配置 |
2 | # Set Hadoop-specific environment variables here. |
3 | |
4 | #Set path to where bin/hadoop is available |
5 | #export HADOOP_COMMON_HOME= |
6 | |
7 | #Set path to where hadoop-*-core.jar is available |
8 | #export HADOOP_MAPRED_HOME= |
9 | |
10 | #set the path to where bin/hbase is available |
11 | #export HBASE_HOME= |
12 | |
13 | #Set the path to where bin/hive is available |
14 | #export HIVE_HOME= |
1 | # Hadoop |
2 | export HADOOP_PREFIX="/usr/local/hadoop" |
3 | export HADOOP_HOME=${HADOOP_PREFIX} |
4 | export PATH=$PATH:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin |
5 | export HADOOP_COMMON_HOME=${HADOOP_PREFIX} |
6 | export HADOOP_HDFS_HOME=${HADOOP_PREFIX} |
7 | export HADOOP_MAPRED_HOME=${HADOOP_PREFIX} |
8 | export HADOOP_YARN_HOME=${HADOOP_PREFIX} |
9 | # Native Path |
10 | export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_PREFIX}/lib/native |
11 | export HADOOP_OPTS="-Djava.library.path=$HADOOP_PREFIX/lib/native" |
12 | # Hadoop end |
13 | |
14 | #Hive |
15 | export HIVE_HOME=/usr/local/hive |
16 | export PATH=$HIVE_HOME/bin:$PATH |
17 | |
18 | #HBase |
19 | export HBASE_HOME=/usr/local/hbase |
20 | export PATH=$HBASE |
21 | |
22 | #add by micmiu.com |
下面测试演示以MySQL为例,则需要把mysql对应的驱动lib文件copy到 <SQOOP_HOME>/lib 目录下。
[二]、测试数据准备
以MySQL
为例:
· 192.168.6.77(hostname:Master.Hadoop)
· database: test
· 用户:root
密码:micmiu
准备两张测试表一个有主键表demo_blog,一个无主键表 demo_log:
1 | CREATE TABLE `demo_blog` ( |
2 | `id` int(11) NOT NULL AUTO_INCREMENT, |
3 | `blog` varchar(100) NOT NULL, |
4 | PRIMARY KEY (`id`) |
5 | ) ENGINE=MyISAM DEFAULT CHARSET=utf8; |
1 | CREATE TABLE `demo_log` ( |
2 | `operator` varchar(16) NOT NULL, |
3 | `log` varchar(100) NOT NULL |
4 | ) ENGINE=MyISAM DEFAULT CHARSET=utf8; |
1 | insert into demo_blog (id, blog) values (1, "micmiu.com"); |
2 | insert into demo_blog (id, blog) values (2, "ctosun.com"); |
3 | insert into demo_blog (id, blog) values (3, "baby.micmiu.com"); |
4 | |
5 | insert into demo_log (operator, log) values ("micmiu", "create"); |
6 | insert into demo_log (operator, log) values ("micmiu", "update"); |
7 | insert into demo_log (operator, log) values ("michael", "edit"); |
8 | insert into demo_log (operator, log) values ("michael", "delete"); |
3.1、导入有主键的表
比如我需要把表 demo_blog (含主键) 的数据导入到HDFS中,执行如下命令:
1 | sqoop import --connect jdbc:mysql://192.168.6.77/test --username root --password micmiu --table demo_blog |
验证导入到hdfs上的数据:
1 | $ hdfs dfs -ls /user/hadoop/demo_blog |
8 | [hadoop@Master ~]$ hdfs dfs -cat /user/hadoop/demo_blog/part-m-0000* |
9 | 1,micmiu.com |
10 | 2,ctosun.com |
11 | 3,baby.micmiu.com |
如果要自定义路径需要增加参数:--warehouse-dir 比如:
1 | sqoop import --connect jdbc:mysql://Master.Hadoop/test --username root --password micmiu --table demo_blog --warehouse-dir /user/micmiu/sqoop |
比如需要把表 demo_log(无主键)的数据导入到hdfs中,执行如下命令:
1 | sqoop import --connect jdbc:mysql://192.168.6.77/test --username root --password micmiu --table demo_log --warehouse-dir /user/micmiu/sqoop --split-by operator |
1
执行过程:
验证导入的数据:
1 | $ hdfs dfs -ls /user/micmiu/sqoop/demo_log |
8 | $ hdfs dfs -cat /user/micmiu/sqoop/demo_log/part-m-0000* |
9 | michael,edit |
10 | michael,delete |
11 | micmiu,create |
12 | micmiu,update |
比如把表demo_blog
数据导入到Hive中,增加参数–hive-import :
1 | sqoop import --connect jdbc:mysql://localhost/test --username root --table demo_blog --warehouse-dir /user/sqoop --hive-import --create-hive-table |
Hive CLI中验证导入的数据:
1 | hive> show tables; |
[五]、导入数据到HBase
演示把表 demo_blog
数据导入到HBase
,指定Hbase中表名为demo_sqoop2hbase
的命令:
1 | sqoop import --connect jdbc:mysql://localhost/test --username root --table demo_blog --hbase-table demo_sqoop2hbase --hbase-create-table --hbase-row-key id --column-family url --hbase-row-key id可以随便设,比如id+’==’+url |
hbase shell中验证导入的数据:
1 | hbase(main):009:0> list |
11 | hbase(main):010:0> scan "demo_sqoop2hbase" |
18 | hbase(main):011:0> describe "demo_sqoop2hbase" |
验证导入成功。
本文到此已经把MySQL中的数据迁移到 HDFS、Hive、HBase的三种基本情况演示结束。
相关文章推荐
- Linux系统下安装sqoop
- Linux安装Sqoop(CentOS7+Sqoop1.4.6+Hadoop2.8.0+Hive2.1.1)
- Sqoop Linux 环境下安装与基本使用
- Linux安装Sqoop(CentOS7+Sqoop1.4.6+Hadoop2.8.0+Hive2.1.1)
- Linux下Oracle安装宝典
- LUI-linux集群自动安装工具
- Linux安装的几点经验 install
- 如何在你的Linux机器上安装运行Oracle
- 如何用Linux安装TCP/IP路由器 route subnet arp
- Linux -安装PHP7
- 安装Debian Linux 3.0r1系统
- 在linux下安装oracle 9i 全文档
- 在 Linux 上安装 PostgreSQL(新)
- 自己的linux系统安装以及软件配置
- 多系统安装实践(Window /FreeBSD/Linux)
- linux 无盘安装 没有光驱 无光驱 rawrite ftp安装
- 系统管理员必读:为 Linux 安装套件强化系统安全!
- Linux上安装GCC编译器过程
- Zeus+php+Zend Optimizer for Linux安装指南