hadoop - 当我使用FileSystem.get(URI.create (“hdfs://loacalhost:9000/filepath”),conf时会发生什么?

标签 hadoop hbase bigdata rpc

我在一个项目中感到困惑,该项目要求我优化对HDFS的小文件支持。
其步骤如下:

  • 将小文件存储到HBase;
  • 几个小文件合并到一个大文件,然后存储到HDFS;
  • 使用一些策略来记录那些小文件的位置。
  • 我们需要保证文件的URI是一致的。

  • 然后我在学习中遇到了一个问题。例如,
    如果我使用命令
    hdfs fs -put ~/local/smallfile /usr/smallfile

    如果我们什么都不做,那么在我的代码中可能是这样的
    FileSystem.get(URI.create("hdfs://loacalhost:9000/usr/smallfile"), conf)

    但是,如果我的项目正常,则应将小文件存储到HBase,然后在我的代码中使用URI hdfs://loacalhost:9000/usr/smallfile时,它应该返回NULL

    问题是,我如何重定向到HBase并将其返回。我阅读了RPC,但仍然无法获得任何帮助。

    我的想法是在用户和hdfs之间添加一个服务器,它可以获取所有URI请求并停止它,然后在其中执行某些操作。但是我不知道如何。在技​​术上可行吗?

    最佳答案

    直接从hdfs读取HBase文件不是一个好主意,因为命名是不可预测的。而且,性能会真的很差。
    如果文件的最大大小为几MB,则可以将其存储在HBase中,并使用HBase api来获取数据。
    将1个文件存储在1个单元格中,然后您就可以通过HBase api轻松检索该文件。您还可以使用HBase星际之门通过Http Rest调用来获取文件。

    关于hadoop - 当我使用FileSystem.get(URI.create (“hdfs://loacalhost:9000/filepath”),conf时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30555489/

    相关文章:

    hadoop - 对于Hadoop:哪个数据存储?

    hbase - 如何从hbase表中获取最新的样本记录(最近n小时)?

    apache-spark - 使用 Yarn 集群设置 Apache Spark

    hadoop - pig : Unable to load data using PigStorage

    hadoop - 如何使用cloudera管理(ui)控制台编辑hadoop-metrics.properties?

    python - 如何将百万歌曲数据集等大数据集加载到 BigData HDFS 或 Hbase 或 Hive 中?

    java - 保证 Solr 提交已经发生

    hadoop - 运行Hive查询时出现MySQL错误

    hadoop - 驱动程序的MRUnit测试用例

    java - 使用 RowFilter 按键查询 HBase 表不起作用