友情链接
首先我们先到官网下载Sqoop, 选择合适的版本下载。我们这里使用的是Sqoop1.4.7的版本进行演示。
# 创建一个文件夹放置下载的Sqoop
mkdir /opt/module
# 然后输入以下命令解压下载好的Sqoop产品包
tar -zxvf sqoop-1.4.7.bin_hadoop-2.6.0.tar.gz
# 将解压出来的文件名sqoop-1.4.7.bin_hadoop-2.6.0改名为sqoop-1.4.7
mv sqoop-1.4.7.bin_hadoop-2.6.0 sqoop-1.4.7
在Transwarp Manager界面右上角上点击 → 下载客户端 ,下载TDH客户端
选择客户端需要访问的集群以及服务
# 将下载的tdh-client.tar文件放在集群中的任意机器上,然后于该机器上执行下述命令解压文件:
tar -xvf tdh-client.tar
执行成功后文件会被解压至目录TDH-Client中
# 请执行位于目录TDH-Client内的脚本
source TDH-Client/init.sh
注意:用户必须使用source命令执行该脚本。 当新建一个连接到服务的终端session时,都需要重新执行source init.sh,bash init.sh 和 ./init.sh 都不起作用。
解压TDH-Client.tar后假设放置在/root/TDH-Client目录下,对sqoop作如下修改:
cd /opt/module/sqoop-1.4.7/conf
cp sqoop-env-template.sh sqoop-env.sh
vi sqoop-env.sh
执行下述配置后保存退出,配置生效
此处用mysql 驱动mysql-connector-java-5.1.36.jar举例(下载地址:http://www.java2s.com/example/jar/m/download-mysqlconnectorjava5136jar-file.html#google_vignette)
上述配置修改完成后,可以通过下述步骤验证数据库连接。
这里假设mysql在本地,打开CMD,创建实验用户,如sqoopuser,密码设置为123456。
或者如果假设Mysql数据库主机名是mysql-server,端口3306。连接上数据库建立测试用的用户,数据库表等。
这样后续所有ip都能用sqoopuser用户访问这个mysql;
flush privileges
创建并切换使用数据库
create database sqoop_export;
use sqoop_export;
show tables;
create table tbl_sqoop(name varchar(11),age int,sex varchar(11));
select * from tbl_sqoop;
bin/sqoop list-databases --connect jdbc:mysql://172.16.200.229:3306/?serverTimezone=UTC --username sqoopuser -password 123456
bin/sqoop list-tables --connect jdbc:mysql://172.16.200.229:3306/sqoop_export?serverTimezone=UTC --username sqoopuser -password 123456
用sqoop将mysql中的表数据导入TDH集群中的HDFS,可以通过下述步骤。
1) 执行TDH Client中的init.sh脚本。比如source /root/TDH-Client/init.sh
2) 如果当前环境开启了guardian安全,需要再执行kinit {user},使当前session具备安全访问集群的能力
3) 把Mysql里的某张表导出到集群HDFS中
bin/sqoop import --connect "jdbc:mysql://172.16.200.229:3306/sqoop_export?serverTimezone=UTC&zeroDateTimeBehavior=CONVERT_TO_NULL" --username sqoopuser --password 123456 --query 'SELECT * FROM tbl_sqoop WHERE $CONDITIONS' --target-dir /user/sqoop_test/tbl_sqoop --delete-target-dir -m 1 -fields-terminated-by "\t" --split-by name0
4) 执行成功后,可以通过下述命令检查HDFS中的文件
hdfs dfs -ls /user/sqoop_test/tbl_sqoop
hdfs dfs -cat /user/sqoop_test/tbl_sqoop/part-m-00000
1)通过beeline连接Quark Server(此次需要注意自身环境的安全情况,是否开启安全决定了beeline的连接方式,具体可查看:连接方式详解(参考连接方式一)),执行下列命令
2) 创建数据库
create database sqoop_test;
use sqoop_test;
3) 建立外表
create external table tbl_sqoop_ext(
name varchar(11),
age int,
sex varchar(11)
) row format delimited fields terminated by '\t'
location '/user/sqoop_test/tbl_sqoop/';
4) 查看外表数据
select * from tbl_sqoop_ext;
5) 建立内表,从外表导入
create table tbl_sqoop_orc(
name varchar(11),
age int,
sex varchar(11)
) clustered by (age) into 7 buckets
stored as orc;
insert into tbl_sqoop_orc select * from tbl_sqoop_ext;
select * from tbl_sqoop_ext;
完成
友情链接
首先我们先到官网下载Sqoop, 选择合适的版本下载。我们这里使用的是Sqoop1.4.7的版本进行演示。
# 创建一个文件夹放置下载的Sqoop
mkdir /opt/module
# 然后输入以下命令解压下载好的Sqoop产品包
tar -zxvf sqoop-1.4.7.bin_hadoop-2.6.0.tar.gz
# 将解压出来的文件名sqoop-1.4.7.bin_hadoop-2.6.0改名为sqoop-1.4.7
mv sqoop-1.4.7.bin_hadoop-2.6.0 sqoop-1.4.7
在Transwarp Manager界面右上角上点击 → 下载客户端 ,下载TDH客户端
选择客户端需要访问的集群以及服务
# 将下载的tdh-client.tar文件放在集群中的任意机器上,然后于该机器上执行下述命令解压文件:
tar -xvf tdh-client.tar
执行成功后文件会被解压至目录TDH-Client中
# 请执行位于目录TDH-Client内的脚本
source TDH-Client/init.sh
注意:用户必须使用source命令执行该脚本。 当新建一个连接到服务的终端session时,都需要重新执行source init.sh,bash init.sh 和 ./init.sh 都不起作用。
解压TDH-Client.tar后假设放置在/root/TDH-Client目录下,对sqoop作如下修改:
cd /opt/module/sqoop-1.4.7/conf
cp sqoop-env-template.sh sqoop-env.sh
vi sqoop-env.sh
执行下述配置后保存退出,配置生效
此处用mysql 驱动mysql-connector-java-5.1.36.jar举例(下载地址:http://www.java2s.com/example/jar/m/download-mysqlconnectorjava5136jar-file.html#google_vignette)
上述配置修改完成后,可以通过下述步骤验证数据库连接。
这里假设mysql在本地,打开CMD,创建实验用户,如sqoopuser,密码设置为123456。
或者如果假设Mysql数据库主机名是mysql-server,端口3306。连接上数据库建立测试用的用户,数据库表等。
这样后续所有ip都能用sqoopuser用户访问这个mysql;
flush privileges
创建并切换使用数据库
create database sqoop_export;
use sqoop_export;
show tables;
create table tbl_sqoop(name varchar(11),age int,sex varchar(11));
select * from tbl_sqoop;
bin/sqoop list-databases --connect jdbc:mysql://172.16.200.229:3306/?serverTimezone=UTC --username sqoopuser -password 123456
bin/sqoop list-tables --connect jdbc:mysql://172.16.200.229:3306/sqoop_export?serverTimezone=UTC --username sqoopuser -password 123456
用sqoop将mysql中的表数据导入TDH集群中的HDFS,可以通过下述步骤。
1) 执行TDH Client中的init.sh脚本。比如source /root/TDH-Client/init.sh
2) 如果当前环境开启了guardian安全,需要再执行kinit {user},使当前session具备安全访问集群的能力
3) 把Mysql里的某张表导出到集群HDFS中
bin/sqoop import --connect "jdbc:mysql://172.16.200.229:3306/sqoop_export?serverTimezone=UTC&zeroDateTimeBehavior=CONVERT_TO_NULL" --username sqoopuser --password 123456 --query 'SELECT * FROM tbl_sqoop WHERE $CONDITIONS' --target-dir /user/sqoop_test/tbl_sqoop --delete-target-dir -m 1 -fields-terminated-by "\t" --split-by name0
4) 执行成功后,可以通过下述命令检查HDFS中的文件
hdfs dfs -ls /user/sqoop_test/tbl_sqoop
hdfs dfs -cat /user/sqoop_test/tbl_sqoop/part-m-00000
1)通过beeline连接Quark Server(此次需要注意自身环境的安全情况,是否开启安全决定了beeline的连接方式,具体可查看:连接方式详解(参考连接方式一)),执行下列命令
2) 创建数据库
create database sqoop_test;
use sqoop_test;
3) 建立外表
create external table tbl_sqoop_ext(
name varchar(11),
age int,
sex varchar(11)
) row format delimited fields terminated by '\t'
location '/user/sqoop_test/tbl_sqoop/';
4) 查看外表数据
select * from tbl_sqoop_ext;
5) 建立内表,从外表导入
create table tbl_sqoop_orc(
name varchar(11),
age int,
sex varchar(11)
) clustered by (age) into 7 buckets
stored as orc;
insert into tbl_sqoop_orc select * from tbl_sqoop_ext;
select * from tbl_sqoop_ext;
完成