利用sqoop从sqlserver导入数据到HDFS或Hive
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以及配置; ?
可以使用命令$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(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |