【问题标题】:Apache Phoenix Bulk Data Loading - Can't use table name by small letterApache Phoenix 批量数据加载 - 不能使用小写字母的表名
【发布时间】:2016-12-16 08:38:24
【问题描述】:

我有现有的 Phoenix 表 abc 我想通过 MapReduce 批量数据加载 然后使用以下命令加载csv文件

hadoop jar /root/Phoenix/apache-phoenix-4.8.0-HBase-0.98-bin/phoenix-4.8.0-HBase-0.98-client.jar org.apache.phoenix.mapreduce.CsvBulkLoadTool --t abc --input /example.csv

但是,它似乎没有找到表 abc

线程“main”java.lang.IllegalArgumentException 中的异常:未找到表 ABC

我尝试更改命令表名 --t 'abc' 和 --t "abc" 但它不起作用 如何使用表名小写字母??

而且,我发现了同样的情况

http://apache-phoenix-user-list.1124778.n5.nabble.com/Load-into-Phoenix-table-via-CsvBulkLoadTool-cannot-find-table-and-fails-td2792.html

谢谢

【问题讨论】:

  • 我做过类似的事情并且能够重现您所说的问题。但我认为在作业参数中,您可以使用字符串 toUpperCase 方法。我相信它会起作用。

标签: phoenix bulk-load bulkloader


【解决方案1】:

我遇到了同样的错误,经过大量调试后,我意识到 phoenix 将您输入的“abc”转换为全部大写的“ABC”并尝试查找具有此名称的表。正如here 所述,Phoenix 区分大小写。

尝试在 phoenix shell 中创建所有大写的表,然后运行相同的命令,它应该可以正常工作。

通过 mapreduce 创建示例表和批量上传:

CREATE TABLE "CODEFREQUENCY" (pk VARCHAR PRIMARY KEY,"week"."weekNum" VARCHAR,"week"."addition" VARCHAR,"week"."deletion" VARCHAR);

HADOOP_CLASSPATH=$(hbase mapredcp):~/Installs/Hbase/conf/:~/Installs/apache-phoenix-4.10.0-HBase-1.2-bin/ ./hadoop jar ~/Installs/apache-phoenix-4.10.0-HBase-1.2-bin/phoenix-4.10.0-HBase-1.2-client.jar org.apache.phoenix.mapreduce.CsvBulkLoadTool -Dfs.permissions.umask-mode=000 -d $'\t' -t CODEFREQUENCY --input /hbase/Code_Frequency.csv

【讨论】:

    猜你喜欢
    • 2022-10-14
    • 2015-08-21
    • 1970-01-01
    • 2021-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-17
    相关资源
    最近更新 更多