Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何将特定架构的数据从SQL Server 2014(Unicode)导入配置单元仓库_Sql Server_Hadoop_Hive_Cloudera_Sqoop - Fatal编程技术网

Sql server 如何将特定架构的数据从SQL Server 2014(Unicode)导入配置单元仓库

Sql server 如何将特定架构的数据从SQL Server 2014(Unicode)导入配置单元仓库,sql-server,hadoop,hive,cloudera,sqoop,Sql Server,Hadoop,Hive,Cloudera,Sqoop,我想从SQL Server导入数据并从配置单元查询它 我使用cloudera模板创建了一个VirtualBox,并开始阅读它的教程 我能够成功地将sqoop作为avro文件从SQL Server导入数据,然后在配置单元中创建表并从avro文件导入数据。然后从蜂巢中查询它 但sqoop的importalltables命令只导入模式为“dbo”的表。 如果我也想导入带有模式dw的表,该怎么办?我试图使用import命令导入dwschema中存在的特定表。但这也不起作用 您知道如何使用sqoop将非d

我想从SQL Server导入数据并从配置单元查询它

我使用cloudera模板创建了一个VirtualBox,并开始阅读它的教程

我能够成功地将sqoop作为avro文件从SQL Server导入数据,然后在配置单元中创建表并从avro文件导入数据。然后从蜂巢中查询它

但sqoop的importalltables命令只导入模式为“dbo”的表。 如果我也想导入带有模式
dw
的表,该怎么办?我试图使用import命令导入
dw
schema中存在的特定表。但这也不起作用


您知道如何使用sqoop将非
dbo.
schema相关表作为avro从SQL Server导入数据吗?或者从SQL Server中导入除dbo以外的数据。schema并将其直接加载到hive?

下载JDBC驱动程序并将其复制到sqoop目录

$ curl -L 'http://download.microsoft.com/download/0/2/A/02AAE597-3865-456C-AE7F-613F99F850A8/sqljdbc_4.0.2206.100_enu.tar.gz' | tar xz
$ sudo cp sqljdbc_4.0/enu/sqljdbc4.jar /var/lib/sqoop/
hadoop fs -ls /user/hive/warehouse
ls -l *.avsc
使用sqoop从Sql Server导入表

sqoop import --driver="com.microsoft.sqlserver.jdbc.SQLServerDriver" --connect="jdbc:sqlserver://sqlserver;database=databasename;username=username;password=passwordofuserprovidedinusername" --username=username --password= passwordofuserprovidedinusername --table="schemaname.tablename" --split-by=primarykeyoftable --compression-codec=snappy --as-avrodatafile --warehouse-dir=/user/hive/warehouse/tablename
验证表格是否正确导入

$ curl -L 'http://download.microsoft.com/download/0/2/A/02AAE597-3865-456C-AE7F-613F99F850A8/sqljdbc_4.0.2206.100_enu.tar.gz' | tar xz
$ sudo cp sqljdbc_4.0/enu/sqljdbc4.jar /var/lib/sqoop/
hadoop fs -ls /user/hive/warehouse
ls -l *.avsc
创建新目录并提供适当的权限

sudo -u hdfs hadoop fs -mkdir /user/examples
sudo -u hdfs hadoop fs -chmod +rw /user/examples
hadoop fs -copyFromLocal ~/*.avsc /user/examples
启动蜂箱

hive
CREATE EXTERNAL TABLE tablename
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'
LOCATION 'hdfs:///user/hive/warehouse/tablename’
TBLPROPERTIES ('avro.schema.url'='hdfs://quickstart.cloudera/user/examples/sqoop_import_schemaname_tablename.avsc');
将表架构和数据从sqoop导入到配置单元仓库

hive
CREATE EXTERNAL TABLE tablename
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'
LOCATION 'hdfs:///user/hive/warehouse/tablename’
TBLPROPERTIES ('avro.schema.url'='hdfs://quickstart.cloudera/user/examples/sqoop_import_schemaname_tablename.avsc');

注意:确保在键入命令时,如果您正在处理该命令,则单引号可能会更改。路径或文件名中不应该有任何空格。

avro.schema.url
中,为什么有quickstart.cloudera前缀?是打字错误吗?