草庐IT

hbase-shell

全部标签

java - HBase:如何在单个扫描操作中指定多个前缀过滤器

我使用前缀过滤器获得了给定部分行键的扫描结果:行键示例:123_abc、456_def、789_ghivarprefix=Bytes.toBytes("123")varscan=newScan(prefix)varprefixFilter=newPrefixFilter(prefix)scan.setFilter(prefixFilter)varresultScanner=table.getScanner(scan)现在,我的问题是如何指定多个前缀过滤器作为扫描操作的输入。结果对象应包含具有给定前缀(例如123或456)的行键值的所有行。我尝试了以下使用FilterList方法但无法获

hadoop - 不使用 Pig 脚本从 HDFS 加载 HBase 中的数据

我在HDFS中有.csv文件。我想在不使用Pig脚本的情况下将它们加载到HBASE表中。还有其他方法吗? 最佳答案 可能有几种方法。但有些选项如下所示。选项1:简单的方法是ImportTsvImportTsv是一个将TSV格式的数据加载到HBase的实用程序。它有两种不同的用法:通过Puts将数据从HDFS中的TSV格式加载到HBase,以及通过completebulkload准备要加载的StoreFiles。通过Put加载数据(即非批量加载):$bin/hbaseorg.apache.hadoop.hbase.mapreduce.

hadoop - 如何从 Hbase 的列族中删除列?

要删除列族,我们有以下命令。hbase>disabletablenamehbase>alter'tablename',{NAME=>'COLFAMNAME',METHOD=>'delete}如果有列族:'empdetails'在表'emptable'中,列为:'col1,col2',有没有办法从列族中删除特定列?我不打算实现它,但这只是为了我的知识,并想知道是否有这种可能性。 最佳答案 如果我没答错你的问题,你想删除列族下的列限定符。正如我们所知,在创建表时,我们只会定义列族而不是列限定符。因此,列限定符将即时创建,这取决于需要。这

hadoop - Hbase 有自己的复制策略还是继承自 HDFS?

由于HBase是建立在HDFS之上的,它具有容错的复制策略,这是否意味着HBase是天生的容错和由于底层的HDFS,存储在HBase中的数据将始终可以访问?或者HBase是否实现了自己的复制策略(例如跨区域的表复制)? 最佳答案 是的,您可以在Hbase中创建区域副本,如前所述here.但是请注意,HBase高可用性是只读的。它的写入可用性不高。如果区域服务器出现故障,那么在将区域分配给新的区域服务器之前,您将无法写入。要启用只读副本,您需要通过将hbase.region.replica.replication.enabled设置为

hadoop - Hbase 上的 phoenix 和 hive ETL

phoenix是否适合ETL和聚合?我正在尝试对我的数据进行一些ETL。现在我正在使用hbase来存储我的数据(我们网站上的足迹)。我需要对这些数据进行一些聚合,例如每个url的页面浏览量......等等。根据我的研究,我知道hive可以用于hbase数据的ETL,加上hql提供了sql语言,这样我们就不需要自己写map-reduce代码了。但是当我尝试使用hive(pyhive)查询hbase时,需要很长时间才能完成。此外,如果我有phoenix在hbase上执行sql,我的hbase上还需要hive吗?现在当我尝试使用一些复杂的sql时,phoenix会超时。而且hive非常非常慢

database - 如何使用 shell 脚本将 HiveQL 查询的结果输出到 CSV?

我想运行多个Hive查询,最好是并行而不是顺序运行,并将每个查询的输出存储到一个csv文件中。例如,query1在csv1中输出,query2在csv2中输出,等等。我会在之后运行这些查询离开工作的目标是在下一个工作日对输出进行分析。我对使用bashshell脚本很感兴趣,因为这样我就可以设置一个cron任务以在一天中的特定时间运行它。我知道如何将HiveQL查询的结果存储在CSV文件中,一次一个查询。我用类似下面的东西来做到这一点:hive-e"SELECT*FROMdb.table;""|tr"\t"",">example.csv;上面的问题是我必须监视进程何时完成并手动启动下一个

apache-spark - 用于 ETL 的 Impala shell 或 Spark?

我最近开始研究Hadoop环境。我需要做一些基本的ETL来填充几个表。目前,我正在使用sqoop将数据导入Hadoop,并使用Impalashell命令编写用于转换的SQL查询。但最近我经常听说Spark。在我的情况下,用Spark而不是Impalashell编写ETL会有什么优势吗?谢谢S 最佳答案 过去,许多人使用A)SQL脚本(如Impala)和UNIX脚本,或者使用B)ETL工具进行ETL。但是,问题是1)更大规模imo和2)技术标准化。既然都在用Spark,那为什么不在Spark上做标准化呢?我经历过这个周期,使用Spar

python - 在 bash shell 中使用 Python 2.6 从目录中读取文件的正确方法

我正在尝试读入文件进行文本处理。我的想法是使用我正在编写的map-reduce代码在我的虚拟机上通过Hadoop伪分布式文件系统运行它们。界面是UbuntuLinux,我安装的是Python2.6。我需要使用sys.stdin读取文件,并使用sys.stdout从映射器传递到缩减器。这是我的映射器测试代码:#!/usr/bin/envpythonimportsysimportstringimportglobimportosfiles=glob.glob(sys.stdin)forfileinfiles:withopen(file)asinfile:txt=infile.read()tx

scala - 我怎样才能让 HBase 与 sbt 的依赖管理配合得很好?

我正在尝试启动一个使用CDH3的Hadoop和HBase的sbt项目。我正在尝试使用project/build/Project.scala文件来声明对HBase和Hadoop的依赖关系。(我承认我对sbt、maven和ivy的掌握有点薄弱。如果我说或做一些愚蠢的事情,请原谅我。)Hadoop依赖项使一切顺利进行。添加HBase依赖项导致对Thrift0.2.0的依赖项,似乎没有repo协议(protocol),或者从这个SOpost.听起来是这样的所以,真的,我有两个问题:1.老实说,我不想依赖Thrift,因为我不想使用HBase的Thrift接口(interface)。有没有办法告

hadoop - 为什么 Hbase with Hadoop map reduce 性能慢?

我已经在3台具有完全分布式模式的机器上配置了hadoop1.0.3。在下面的第一台机器上,作业正在运行:1)4316SecondaryNameNode4006NameNode4159数据节点4619任务追踪器4425JobTracker2)2794任务追踪器2672数据节点3)3338数据节点3447任务追踪器现在当我在上面运行简单的mapreduce作业时,执行mapreducejob需要更长的时间。所以我在Hadoop上安装了HBASE层。现在我在3个集群上有以下HBASE进程。1)5115HQuorumPeer5198HMaster5408HRegionServer2)3719H