我知道如何通过命令行使用sqoop.但是不知道如何使用java程序调用sqoop命令.谁能给一些代码视图?
Flume和Sqoop都用于数据移动,那么它们之间有什么区别?在什么条件下我应该使用Flume还是Sqoop?
我有两个HDFS设置,并希望将一些表从HDFS1复制(不迁移或移动)到HDFS2.如何将数据从一个HDFS复制到另一个HDFS?是否可以通过Sqoop或其他命令行?
select * from reason
我收到了错误:
查询[select*from reason where where 20]必须在WHERE子句中包含'$ CONDITIONS'.
我知道在查询Sqoop时必须有一个where子句.
所以,对于像这样的查询
select * from reason WHERE $CONDITIONS
我将其修改为:
where
如果查询有select * from reason条款怎么办?
我使用的是hadoop-1.2.1,sqoop版本是1.4.4.
我正在尝试运行以下查询.
sqoop import --connect jdbc:mysql://IP:3306/database_name --table clients --target-dir /data/clients --username root --password-file /sqoop.password -m 1
Run Code Online (Sandbox Code Playgroud)
sqoop.password是/sqoop.password具有权限400的路径中保存在HDFS上的文件.
它给了我一个错误
Access denied for user 'root'@'IP' (using password: YES)
Run Code Online (Sandbox Code Playgroud)
谁能为此提供解决方案?提前致谢.
我已经安装了hadoop和hbase cdh3u2.在hadoop我有一个文件在路径上/home/file.txt.它有像这样的数据
one,1
two,2
three,3
Run Code Online (Sandbox Code Playgroud)
我想将此文件导入hbase.在那里,第一个字段应解析为String,第二个字段解析为整数,然后它应推入hbase.帮我这样做
athanks in dvance ....
任何人都可以告诉我在sqoop中使用--split-by和boundary查询有什么用?
sqoop import --connect jdbc:mysql:// localhost/my --username user --password 1234 --query'select*from table where id = 5 AND $ CONDITIONS'--split-by table.id --target- dir/dir
可以使用Sqoop将数据从HDFS导出到RDBMS表.但似乎我们需要有现有的表格.
是否有一些参数告诉Sqoop执行'CREATE TABLE'并将数据导出到这个新创建的表中?
如果是,它是否适用于Oracle?
我下载了sqljdbc4.jar.我是sqoop从文件夹(存储jar的地方)调用的:
sqoop list-tables --driver com.microsoft.jdbc.sqlserver.SQLServerDriver --connect jdbc:sqlserver://localhost:1433;user=me;password=myPassword; -libjars=./sqljdbc4.jar
我收到以下警告和错误:
13/10/25 18:38:13 WARN sqoop.ConnFactory: Parameter --driver is set to an explicit driver however appropriate connection manager is not being set (via --connection-manager). Sqoop is going to fall back to org.apache.sqoop.manager.GenericJdbcManager. Please specify explicitly which connection manager should be used next time.
13/10/25 18:38:13 INFO manager.SqlManager: Using default fetchSize of 1000
13/10/25 18:38:13 ERROR sqoop.Sqoop: Got exception running Sqoop: java.lang.RuntimeException: Could not load db driver class: com.microsoft.jdbc.sqlserver.SQLServerDriver
java.lang.RuntimeException: …Run Code Online (Sandbox Code Playgroud) 我正在研究一个用例,我必须将数据从RDBMS传输到HDFS.我们使用sqoop对此案例进行了基准测试,发现我们能够在6-7分钟内传输大约20GB的数据.
当我尝试使用Spark SQL时,性能非常低(1 GB的记录从netezza转移到hdfs需要4分钟).我正在尝试进行一些调整并提高其性能,但不太可能将其调整到sqoop的水平(1分钟内大约3 Gb的数据).
我同意spark主要是一个处理引擎这一事实,但我的主要问题是spark和sqoop都在内部使用JDBC驱动程序,所以为什么性能上有太大差异(或者可能是我遗漏了一些东西).我在这里发布我的代码.
object helloWorld {
def main(args: Array[String]): Unit = {
val conf = new SparkConf().setAppName("Netezza_Connection").setMaster("local")
val sc= new SparkContext(conf)
val sqlContext = new org.apache.spark.sql.hive.HiveContext(sc)
sqlContext.read.format("jdbc").option("url","jdbc:netezza://hostname:port/dbname").option("dbtable","POC_TEST").option("user","user").option("password","password").option("driver","org.netezza.Driver").option("numPartitions","14").option("lowerBound","0").option("upperBound","13").option("partitionColumn", "id").option("fetchSize","100000").load().registerTempTable("POC")
val df2 =sqlContext.sql("select * from POC")
val partitioner= new org.apache.spark.HashPartitioner(14)
val rdd=df2.rdd.map(x=>(String.valueOf(x.get(1)),x)).partitionBy(partitioner).values
rdd.saveAsTextFile("hdfs://Hostname/test")
}
}
Run Code Online (Sandbox Code Playgroud)
我检查了很多其他帖子,但无法得到sqoop内部工作和调优的明确答案,也没有得到sqoop vs spark sql基准测试.有助于理解这个问题.