草庐IT

hadoop - HBase 批量加载会产生大量的 reducer 任务——任何解决方法

HBase批量加载(使用configureIncrementalLoad辅助方法)将作业配置为创建与hbase表中的区域一样多的reducer任务。因此,如果有几百个区域,那么该作业将产生数百个reducer任务。这在小型集群上可能会变得非常慢。是否可以使用MultipleOutputFormat或其他方式解决问题?谢谢 最佳答案 按区域分阶段减少减少会给您带来很多长期利益。一旦导入的数据在线,您就会获得数据局部性。您还可以确定何时将区域负载平衡到另一台服务器。我不会这么快进入更粗略的粒度。由于reduce阶段是单个文件写入,您应该

java - 关于如何为 Hbase 编写 Hadoop InputFormat/OutputFormat 的任何想法

有没有人有编写从Hbase获取日期的HadoopInputFormat/OutputFormat的经验?我想要比HbaseTableInputFormat更具体的东西,因为我的想法是将我的业务对象直接返回到mapred程序。这意味着能够构建一个可以分布在多行中的对象。谢谢你的帮助哎呀 最佳答案 您可以扩展RecordReader和/或FileInputFormat并在其中实现您需要执行的操作。也许扩展HbaseTableInputFormat并覆盖你需要不同行为的功能。(没有使用过HbaseTableInputFormat所以不确定

sql-server - 在 SQL 与 HBase 之间转换(同步)数据

我们正在彻底改造我们的产品,从Microsoft和.NET系列完全转向开源(其中一个原因是成本削减和数据呈指数级增长)。我们计划将我们的数据模型从SQLServer(关系数据)完全迁移到Hadoop(著名的键值对生态系统)。一开始,我们希望同时支持两个版本(比如1.0和新的v2.0)。为了保持数据的一致性,我们计划在两个系统之间同步数据,这是一项相当具有挑战性且容易出错的任务,但我们别无选择。从哪里开始有点困惑,我正在寻找专家社区。在这个方向上的任何策略/现有文献或任何其他类型的指导都会非常有帮助。 最佳答案 我不完全确定你的代码是

hadoop - 您会推荐使用 Hadoop/HBASE 吗?

我们有一个SQLserver2008和其中一个表,假设表A具有以下特征:每天,我们都会从其他系统获得多个包含数字数据的异构提要。提要在别处暂存,转换为符合A架构的格式。插入到A.架构如下:表格的行数可变。基本上我们必须在周末清除它,否则大小会影响性能。因此,一周内的尺寸范围为3m-15m行。由于一些新要求,我们预计到2012年底这个数字将增加1000万。所以我们会谈论10m-25m行。现在另外A中的数据永远不会改变。中间层可能使用A的数据,但它将是只读操作。但通常中间层甚至不关心内容。它通常(并非总是如此,但在80%的情况下)运行存储过程以生成报告并在其他系统中交付报告。这些表的客户通

rest - 如何通过负载均衡在 HBase 集群上使用 REST api

我有一个带有1个主节点和5个从节点的试验HBase集群。我想通过其RESTAPI访问(基本上通过GET写入广告印象数据)集群。我希望稍后能够使用Hadoop/Hive?Pig(TBD)运行聚合报告,所以我想要一张数据图片。我是在主节点上启动REST服务器并只写入该单个端点,还是在每个从节点上启动REST服务器实例并在从节点之间进行负载平衡写入?(后者似乎不正确,但我在文档中看到一些提及,所以有点困惑)。 最佳答案 我使用带有通过nginx提供的负载平衡的restapi。你的nginx配置看起来像这样......upstreamclu

java - hbase 拒绝远程用户连接

嗨,我是hbase和hadoop的新手。我已经正确设置了它们,但是从同一台机器上检查它们并且工作正常。现在当尝试从java客户端远程连接时,这个异常来了。我真的需要帮助指导我这件事。异常(exception)情况如下:/04/1717:41:35INFOzookeeper.ZooKeeper:Clientenvironment:user.name=xyz12/04/1717:41:35INFOzookeeper.ZooKeeper:Clientenvironment:user.home=/home/xyz12/04/1717:41:35INFOzookeeper.ZooKeeper:C

hadoop - 以HBase为数据源计算文档的TF-IDF

我想计算存储在HBase中的文档的TF(词频)和IDF(逆文档频率)。我还想把计算出来的TF保存在一个HBase表中,也想把计算出来的IDF保存在另一个HBase表中。你能指导我完成吗?我查看了Mahout0.4中的BayesTfIdfDriver,但我没有抢先一步。 最佳答案 解决方案的概要非常简单:对您的hbase表进行单词计数,存储每个单词的词频和文档频率在你的reduce阶段聚合每个单词的词频和文档频率根据您的文档数量,再次扫描您的聚合结果并根据文档频率计算IDF。关于TF-IDF的维基百科页面是记住公式细节的一个很好的引用

hadoop - Apache HBase 和 Cloudera HBase 兼容吗?

在工作中我们正在尝试做以下事情:通过Amazon运行ElasticMapReduce作业,将Hadoop卡住在0.20.205版本将输出写入运行在EC2上的HBase,特别是来自Cloudera的0.92.1-cdh4.0.1到目前为止,我发现当我在Hadoop作业(通过maven打包)中使用ApacheHBase0.92.1时,我的WordCount测试似乎有效。我担心这是意外工作,随着我的使用成熟,它可能会崩溃。但是,当我在我的Hadoop作业中打包HBase0.92.1-cdh4.0.1时,我得到一个ClassNotFoundException:https://emr-qa.ev

hadoop - 在 amazon EMR 上运行 HBase 时,为什么/tmp 文件夹与实际数据相比很大?

我们在amazonEMR上有一个默认配置的hadoop+hbase集群,所以mapred.child.tmp和hbase.tmp.dir都指向/tmp。我们的集群已经运行了一段时间,现在/tmp为500Gb,而实际/hbase数据为70Gb。这种差异似乎太大了,我们是否应该定期删除一些/tmp数据? 最佳答案 经过一些调查,我发现我们的/tmp数据的最大部分是由Amazon将Hbase自动备份到S3期间失败的mapreduce任务创建的。我们成功的mapreduce任务不会在/tmp中留下太多数据。我们决定禁用Amazon的自动备份

java - hbase数据的分布式分析

我对hbase有点陌生,已经能够设置hbase并查询存储在多台hadoop机器上的数据,但我想知道是否也可以在hbase中分发数据分析。这是我的情况,我有几十亿条记录需要快速分析,我想让X服务器查询数据库并获取查询的独特部分,以便它们可以处理它,而不是让单个服务器遍历整个数据集。这可能吗?我该怎么做?我非常不确定如何处理这个问题,因为我意识到所有查询都需要协调(每个服务器不能单独查询hbase,否则hbase将不知道如何在服务器之间拆分请求)。我很困惑,但我想也许有一种native方法可以在hadoop中执行此操作?如果有帮助,我的应用程序正在运行java,并且我正在使用clouder