SQL Server Connect for Hadoop
sqoop是一个开源的工具,能将数据表从关系数据库导入HDFS或Hive上。在安装sqoop之前,需安装好Hadoop和JAVA以及Hive。
sqoop的版本: sqoop-1.3.0-cdh3u1 (sqoop-1.3.0-cdh3u1.tar.gz) http://archive.cloudera.com/cdh/3/
关于sqoop详细的介绍:
http://archive.cloudera.com/cdh/3/sqoop-1.3.0-cdh3u1/SqoopUserGuide.html
安装步骤:
(1)下载好版本,解压。
(2)需要在系统环境变量设置$HADOOP_HOME,指向其安装的根目录。
sudo gedit /etc/environment 添加;
(3)在系统环境变量设置$SQOOP_HOME以及$以及$SQOOP_CONF_DIR;
SQOOP_HOME = 安装的根目录;
SQOOP_CONF_DIR=$SQOOP_HOME/conf;
(4)下载jdbc的SqlServer驱动:
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=21599
解压后,放在{sqoop_home}/lib目录下;
(5)下载SQL Server-Hadoop Connector:sqoop-sqlserver-1.0.tar.gz
http://www.microsoft.com/en-us/download/details.aspx?id=27584
解压后,放在{sqoop_home}/lib目录下;
(6)在系统环境变量设置:$MSSQL_CONNECTOR_HOME,指向sqoop-sqlserver-1.0的安装路径;
(7)执行sqoop-sqlserver-1.0的install.sh。命令会将连接的jar文件和配置文件拷贝的Sqoop目录。到此,可以从sql传入数据到HDFS或Hive之上;
(8)如果执行出现Zookeeper_home或Hbase_home不存在问题,可以在配置文件中注释掉Zookeeper或Hbase相关的属性;
(1)从SQL输入textfiles到HDFS
$bin/sqoop import --connect ‘jdbc: server://10.80.181.127; username=dbuser; password=dbpasswd;database=tbch’ --tabletablename --target-dir /user/home/
(2)利用split-by 输入数据
$bin/sqoop import --connect ‘jdbc: server://10.80.181.127; username=dbuser; password=dbpasswd;database=tbch’ --tabletablename --target-dir /user/home/ --split-by l_orderkey -m 3
(3) 从SQL输入Sequencefiles到HDFS
$bin/sqoop import --connect ‘jdbc: server://10.80.181.127; username=dbuser; password=dbpasswd;database=tbch’ --tabletablename --target-dir /user/home/ --as-sequencefile
(4) 从SQL输入表到Hive
$bin/sqoop import --connect ‘jdbc: server://10.80.181.127; username=dbuser; password=dbpasswd;database=tbch’ --tabletablename --hive-import
使用Hive import,确保Hive已经安装,以及HIVE_HOME以及配置;
- sqoop详细使用请见上述网址(包括sqoop的导出命令,在此不累赘);
可以使用命令$bin/sqoop help
sqoop可以导入的关系数据库:Mysql,Orcal等等,其使用语法近似相同;
参考信息:http://www.microsoft.com/en-us/download/details.aspx?id=27584;
http://archive.cloudera.com/cdh/3/sqoop-1.3.0-cdh3u1/SqoopUserGuide.html