标签:

1.安装phoenix

在界面上设置Phoenix的parcel包:

http://52.11.56.155:7180/cmf/settings?groupKey=config.scm.parcel.display_group&groupParent=

添加一个Remote Parcel Repository URLs url:http://archive.cloudera.com/cloudera-labs/phoenix/parcels/1.0/

CM会自动发现新的parcel,然后点击Download,Distribute and Active。重启集群

2.进入到某台服务器上,查看phoenix的安装路径

[root@ip-172-31-25-243 ~]# cd /opt/cloudera/parcels/CLABS_PHOENIX

[root@ip-172-31-25-243 phoenix]# lsbin dev examples lib phoenix-4.3.0-clabs-phoenix-1.0.0-client.jar phoenix-4.3.0-clabs-phoenix-1.0.0-server.jar phoenix-4.3.0-clabs-phoenix-1.0.0-server-without-antlr.jar

bin目录下为可执行文件,examples目录下为一些样例

3.导入CSV格式的表

CSV文件为/root/ceb/cis_cust_imp_info.csv,内容如下:

20131131,100010001001,BR01,2000.01

20131131,100010001002,BR01,2000.02

20131131,100010001003,BR02,2000.03

定义一个表结构的文件/root/ceb/cis_cust_imp_info.sql,内容如下,

CREATE TABLE IF NOT EXISTScis_cust_imp_info(

statistics_dtvarchar(50),

cust_idvarchar(50),

open_org_idvarchar(50),

assert9_baldecimal(18,2),CONSTRAINT pk PRIMARY KEY(statistics_dt, cust_id)

);

注意最后的分号是必须的。

运行命令,导入CSV

[root@ip-172-31-25-243 phoenix]# bin/psql.py 172.31.25.244 /root/ceb/cis_cust_imp_info.sql /root/ceb/cis_cust_imp_info.csv

SLF4J: Failed to load class"org.slf4j.impl.StaticLoggerBinder".

SLF4J: Defaulting to no-operation (NOP) logger implementation

SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

15/09/04 10:26:59 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable15/09/04 10:27:00 WARN impl.MetricsConfig: Cannot locate configuration: tried hadoop-metrics2-phoenix.properties,hadoop-metrics2.properties

no rows upserted

Time:0.259sec(s)

csv columns from database.

CSV Upsert complete.3rows upserted

Time:0.067 sec(s)

在hbase shell中进行验证:

hbase(main):001:0>list

TABLE

CIS_CUST_IMP_INFO

SYSTEM.CATALOG

SYSTEM.SEQUENCE

SYSTEM.STATS4 row(s) in 0.2650seconds=> ["CIS_CUST_IMP_INFO", "SYSTEM.CATALOG", "SYSTEM.SEQUENCE", "SYSTEM.STATS"]

hbase(main):002:0> scan ‘CIS_CUST_IMP_INFO‘ROW COLUMN+CELL20131131\x00100010001001 column=0:ASSERT9_BAL, timestamp=1441362422661, value=\xC2\x15\x01\x0220131131\x00100010001001 column=0:OPEN_ORG_ID, timestamp=1441362422661, value=BR0120131131\x00100010001001 column=0:_0, timestamp=1441362422661, value=

20131131\x00100010001002 column=0:ASSERT9_BAL, timestamp=1441362422661, value=\xC2\x15\x01\x0320131131\x00100010001002 column=0:OPEN_ORG_ID, timestamp=1441362422661, value=BR0120131131\x00100010001002 column=0:_0, timestamp=1441362422661, value=

20131131\x00100010001003 column=0:ASSERT9_BAL, timestamp=1441362422661, value=\xC2\x15\x01\x0420131131\x00100010001003 column=0:OPEN_ORG_ID, timestamp=1441362422661, value=BR0220131131\x00100010001003 column=0:_0, timestamp=1441362422661, value=

3 row(s) in 0.1840 seconds

4.以MR的方式导入大量CSV文件

[root@ip-172-31-25-243 phoenix]# hadoop jar phoenix-4.3.0-clabs-phoenix-1.0.0-client.jar org.apache.phoenix.mapreduce.CsvBulkLoadTool --table cis_cust_imp_info --input /root/ceb/cis_cust_imp_info.csv --zookeeper 172.31.25.244

发生错误:

java.util.concurrent.ExecutionException: java.lang.IllegalAccessError: class com.google.protobuf.HBaseZeroCopyByteString cannot access its superclass com.google.protobuf.LiteralByteString

at java.util.concurrent.FutureTask.report(FutureTask.java:122)

at java.util.concurrent.FutureTask.get(FutureTask.java:188)

at org.apache.hadoop.hbase.client.HTable.coprocessorService(HTable.java:1795)

at org.apache.hadoop.hbase.client.HTable.coprocessorService(HTable.java:1751)

at org.apache.phoenix.query.ConnectionQueryServicesImpl.metaDataCoprocessorExec(ConnectionQueryServicesImpl.java:1006)

at org.apache.phoenix.query.ConnectionQueryServicesImpl.getTable(ConnectionQueryServicesImpl.java:1257)

at org.apache.phoenix.schema.MetaDataClient.updateCache(MetaDataClient.java:348)

at org.apache.phoenix.schema.MetaDataClient.updateCache(MetaDataClient.java:309)

at org.apache.phoenix.schema.MetaDataClient.getCurrentTime(MetaDataClient.java:293)

at org.apache.phoenix.compile.StatementContext.getCurrentTime(StatementContext.java:253)

at org.apache.phoenix.execute.BaseQueryPlan.iterator(BaseQueryPlan.java:184)

at org.apache.phoenix.execute.BaseQueryPlan.iterator(BaseQueryPlan.java:154)

at org.apache.phoenix.jdbc.PhoenixStatement$1.call(PhoenixStatement.java:235)

at org.apache.phoenix.jdbc.PhoenixStatement$1.call(PhoenixStatement.java:226)

at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)

at org.apache.phoenix.jdbc.PhoenixStatement.executeQuery(PhoenixStatement.java:225)

at org.apache.phoenix.jdbc.PhoenixStatement.executeQuery(PhoenixStatement.java:1039)

at org.apache.phoenix.jdbc.PhoenixDatabaseMetaData.getColumns(PhoenixDatabaseMetaData.java:492)

at org.apache.phoenix.util.CSVCommonsLoader.generateColumnInfo(CSVCommonsLoader.java:296)

at org.apache.phoenix.mapreduce.CsvBulkLoadTool.buildImportColumns(CsvBulkLoadTool.java:291)

at org.apache.phoenix.mapreduce.CsvBulkLoadTool.loadData(CsvBulkLoadTool.java:200)

at org.apache.phoenix.mapreduce.CsvBulkLoadTool.run(CsvBulkLoadTool.java:186)

at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)

at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84)

at org.apache.phoenix.mapreduce.CsvBulkLoadTool.main(CsvBulkLoadTool.java:97)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:606)

at org.apache.hadoop.util.RunJar.run(RunJar.java:221)

at org.apache.hadoop.util.RunJar.main(RunJar.java:136)

Caused by: java.lang.IllegalAccessError: class com.google.protobuf.HBaseZeroCopyByteString cannot access its superclass com.google.protobuf.LiteralByteString

网上搜索,发现是由于HBASE的一个bug,解决方法是:

[root@ip-172-31-25-243 phoenix]# cd /opt/cloudera/parcels/CDH/lib/hadoopln -s /opt/cloudera/parcels/CDH-5.4.5-1.cdh5.4.5.p0.7/lib/hbase/lib/hbase-protocol-1.0.0-cdh5.4.5.jar hbase-protocol-1.0.0-cdh5.4.5.jar

重新运行导入命令,发现如下错误:

15/09/04 11:04:43 WARN security.UserGroupInformation: PriviledgedActionException as:root (auth:SIMPLE) cause:org.apache.hadoop.security.AccessControlException: Permission denied: user=root, access=WRITE, inode="/user":hdfs:supergroup:drwxr-xr-x

at org.apache.hadoop.hdfs.server.namenode.DefaultAuthorizationProvider.checkFsPermission(DefaultAuthorizationProvider.java:257)

at org.apache.hadoop.hdfs.server.namenode.DefaultAuthorizationProvider.check(DefaultAuthorizationProvider.java:238)

原因是/user目录权限问题,用hdfs用户重新跑一遍,发生错误:

sudo -u hdfs hadoop jar phoenix-4.3.0-clabs-phoenix-1.0.0-client.jar org.apache.phoenix.mapreduce.CsvBulkLoadTool --table cis_cust_imp_info --input /root/ceb/cis_cust_imp_info.csv --zookeeper 172.31.25.244

15/09/04 11:06:05 ERROR mapreduce.CsvBulkLoadTool: Import job on table=CIS_CUST_IMP_INFO failed due to exception:org.apache.hadoop.mapreduce.lib.input.InvalidInputException: Input path does not exist: hdfs://ip-172-31-25-243.us-west-2.compute.internal:8020/root/ceb/cis_cust_imp_info.csv

15/09/04 11:06:05 INFO client.ConnectionManager$HConnectionImplementation: Closing zookeeper sessionid=0x14f97b7df1400a4

原来用MR模式跑,文件需要放到HDFS上

标签:

hbase导入csv文件_CDH5.4.5运行Phoenix导入CSV文件相关推荐

  1. phoenix导出csv文件

    原文地址:https://www.cnblogs.com/alexgl2008/articles/12852013.html?share_token=E21CB83E-5BBF-4D90-AF9B-5 ...

  2. 【转】Postman系列四:Postman接口请求设置环境变量和全局变量、测试沙箱和测试断言、测试集运行与导入数据文件

    一:Postman中接口请求设置环境变量和全局变量 全局变量和环境变量可以通过Pre-request Script和Tests设置,会在下面测试沙箱和测试断言中讲到. 全局变量的设置:官网参考http ...

  3. 向HBase中导入数据3:使用MapReduce从HDFS或本地文件中读取数据并写入HBase(增加使用Reduce批量插入)

    前面我们介绍了: 向HBase中导入数据1:查询Hive后写入 向HBase中导入数据2:使用MapReduce从HDFS或本地文件中读取数据并写入HBase(只使用Map逐条查询) 为了提高插入效率 ...

  4. python如何将utf-8编码文件改为ansi编码文件_Excel导入CSV文件乱码?两个小方法让文件正常显示...

    最近网友抱怨,收到别人发来的数据表,打开后长这样: CSV再EXCEL中显示为乱码 除了数字,其他是啥玩意儿 完全乱码... (乱码!乱马!乱吗?乱!) 但是当使用记事本打开,检查确认是否文件有问题时 ...

  5. 数据库管理工具:如何使用 Navicat Premium 转储(导出)和运行(导入)*.sql 文件?

    文章目录 前言 一.转储(导出)数据库 SQL 文件 1.1.选择"转储 SQL 文件" 1.2.选择导出文件存放位置 1.3.查看转储 SQL 文件界面 1.4.查看 SQL 输 ...

  6. mysql导入csv文件 第一行有问题_mysql 导入 csv文件中数据,只能导入第一行

    用workbench导入csv数据,只能导入数据的第一行,也就是标注每一列的列名的那一行. 但问题是,每次导入完成时,系统提示已经导入了500条记录(这个文件中的确有500条记录),可是刷新数据库后打 ...

  7. R语言导入数据文件(数据导入、加载、读取)、导入csv、excel、sav、por、dat、sas7bdat格式文件

    R语言导入数据文件(数据导入.加载.读取).导入csv.excel.sav.por.dat.sas7bdat格式文件 目录

  8. php 导入 导出Excel 实现翻译两种不同的Excel文件(xlsx文件和csv文件)

    需要注意的是申请百度翻译的APPID 和 密钥时,我申请的是标准服务,所以每秒只能调用一次,就必须休眠一秒,不然会报54003,所以翻译大量数据列时调用就比较慢,想要快一些可以申请时选择另外两种申请服 ...

  9. pandas之数据文件导入和导出(python读取.csv,.txt,excel文件(.xlsx)以及导出为.csv、excel文件)

    文件类型:.csv,.txt,.xlsx .csv文件,一行即为数据表的一行.生成数据表字段用逗号隔开(英文的逗号!!!!).csv文件用记事本和excel都能打开,用记事本打开显示逗号,用excel ...

最新文章

  1. 阿里员工都是这样排查Java问题的,附工具单
  2. spring boot与spring cloud版本匹配关系
  3. Python编程 | 新手必会的 9 个 Python 技巧
  4. matlab 拉普拉斯锐化函数_机器视觉 03.3 频域高通滤波(锐化)
  5. 【Flink】Flink界面如何查看数据是否倾斜
  6. Spring-beans-BeanDefinitionReader
  7. 【排序算法】归并排序-递归方法
  8. Java面试题总结 - Java多线程篇(附答案)
  9. 计算机CPU核的位数,如何查cpu位数
  10. 红帽linux系统内核版本7,如何查看Linux发行版内核版本及系统版本?
  11. R语言绘制箱体图举例图文版
  12. 尚医通(九)数据字典模块前后端 | EasyExcel
  13. wpf toolbar右对齐_侧方停车是与旁车对齐还是反光镜对B柱?有什么停车技巧吗
  14. Java笔试的各种输入总结
  15. 我的软件之自动更新程序
  16. Excel合并单元格如何实现组内合并单元格后排序
  17. WebRebuild第三届年会菩提树下介绍及相关资料下载
  18. JAVA类与对象构造方法,java基础-1-面向对象(1)-概念介绍与类、对象、构造方法...
  19. 怎么解决 Cache entry deserialization failed, entry ignored
  20. 系统练习太极拳六个阶段

热门文章

  1. vb.net 视频前了解
  2. java-php-net-python-家庭理财系统计算机毕业设计程序
  3. python爬取基金股票_爬取天天基金网、股票数据
  4. Discuz模板的安装方法
  5. java获取电脑配置_使用Java获取cao作系统和硬件信息
  6. 许多研究生的一个通病:对导师过度依赖!
  7. MySQL数据备份与恢复----------mysqldump-----多种恢复方法
  8. 用C语言递归求最大公约数
  9. 使用UltralISO(软碟通)制作ubuntu系统的U盘启动
  10. 一款车载GPS定位产品后端服务器架构的填坑之路(一)