【问题标题】:HDFS into CassandraHDFS 到 Cassandra
【发布时间】:2015-09-21 15:07:55
【问题描述】:

是否可以将处理过的文件(使用 PIG)从本地 HDFS(比如说 192.168.0.10)迁移到 cassandra (192.168.0.20)?

我想到的是,我确实创建了一个 java 应用程序来解析文件并将它们重新插入到 cassandra 中。

还有其他方法吗?

非常感谢!

【问题讨论】:

    标签: hadoop cassandra apache-pig


    【解决方案1】:

    编写一个 Java 程序将 Hadoop 数据迁移到 Cassandra 表实际上是一种矫枉过正。如果您碰巧定期执行相同的操作,情况会变得更糟。

    相反,我们可以利用 Hive 的一个非常有用的特性,它可以帮助我们将 Hive 表与外部数据源集成。 hive的Storage Handler Api,与Cassandra/Oracle/Mysql等外部数据源集成。

    已经有一个Hive-Cassandra Storage Handler API 实现可用,我们可以很好地重用它,请在下面的网址中找到它。

    https://github.com/tuplejump/cash/tree/master/cassandra-handler

    这个想法是创建配置有关于远程 Cassandra 主机/表详细信息的存储处理程序规范的 Hive 外部表。

    对此外部表执行的任何写入/读取操作都将由 Hive 通过与 Cassandra 对话的 mapreduce 作业处理。

    我希望这是集成 Hive 和 Cassandra 的理想方式,这需要我们付出的努力非常少,而且效率也很高。

    希望这会有所帮助。

    【讨论】:

    • 感谢分享!绝对比写java程序好!我想我会选择 Pig cassandra 扩展,因为 HDFS 中的文件大多来自 pig。
    【解决方案2】:

    有几种方法可以将数据从 Hadoop 移动到 Cassandra。

    1. 使用 Java HDFS API 和 Cassandra API(效率低下)。
    2. 使用 Java MapReduce 程序(并行加载)。
    3. 使用 Pig(并行加载)。
    4. 使用 Hive(并行加载)。
    5. 使用 Spark(并行加载)。

    在所有 Pig 中,将数据从 HDFS 加载到 Cassandra 是一种更简单的方法。 Pig 有一种称为 CassandraStorage 的存储类型。它允许我们将数据并行加载到 Cassandra。

    请参阅此链接了解更多信息: https://wiki.apache.org/cassandra/HadoopSupport#Pig

    【讨论】:

    • 感谢纳迦!我现在仍在尝试使用 pig 执行此操作,同时出现此错误 1070:无法使用导入解析 CassandraStorage:[, org.apache.pig.builtin., org.apache.pig.impl.builtin.]。
    • 欢迎 @kenlz,您必须将此 CassandraStorage jar 添加到 pig 类路径中。你能检查一下 CassandraStorage 在储钱罐中是否可用吗?
    • 我通过将 jar 注册到 pig 来修复它,但现在我遇到了这个错误 ERROR 2245: Cannot get schema from loadFunc org.apache.cassandra.hadoop.pig.CqlNativeStorage 似乎没完没了跨度>
    猜你喜欢
    • 2018-02-12
    • 1970-01-01
    • 2013-12-12
    • 2014-09-27
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多