草庐IT

image - 将图像存储在 HBASE 中以供处理和快速访问

我有大量的图片文件需要在HDFS上存储和处理让我们假设两种情况:图片小于5MB图片大小从50KB到20MB我想用图像做4件事:我需要对每个图像独立应用一些函数fnc()。我需要不时地(1000次/天)从HDFS中提取特定图像并将其显示在网站上。这些是用户对特定图像的查询,因此延迟应该是几秒钟。每年必须删除一组图像。系统将添加新图片(1000张新图片/天)IMO应考虑的解决方案设计:小文件问题:MR处理快速访问文件快速写入新文件不是什么大问题,因为图像不会立即使用。延迟几分钟或几小时都可以。我的第一个想法是聚合图像以解决小文件问题,这满足了1和2。但我只剩下快速随机访问图像问题和添加新图

hadoop - Cloudera hadoop : not able to run Hadoop fs command and at same time HBase is not able to create directory on HDFS?

我已经启动并运行了6个节点的cloudera5.0beta集群但是我无法使用命令查看hadoopHDFS的文件和文件夹sudo-uhdfshadoopfs-ls/在输出中它显示了linux目录的文件和文件夹。尽管namenodeUI正在显示文件和文件夹。在HDFS上创建文件夹时出现错误sudo-uhdfshadoopfs-mkdir/testmkdir:`/test':Input/outputerror由于此错误,hbase未启动并关闭并出现以下错误:Unhandledexception.Startingshutdown.java.io.IOException:Exceptioninm

java - 将 1GB 数据加载到 hbase 需要 1 小时

我想将1GB(1000万条记录)的CSV文件加载到Hbase中。我为此编写了Map-Reduce程序。我的代码运行良好,但需要1小时才能完成。LastReducer花费了半个多小时的时间。谁能帮帮我?我的代码如下:驱动.Javapackagecom.cloudera.examples.hbase.bulkimport;importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.fs.Path;importorg.apache.hadoop.hbase.HBaseConfiguration;importorg.ap

hadoop - 在 Hive 中, "Load data local inpath"是覆盖现有数据还是追加?

我希望在cron上运行到Hive的导入,并且希望只使用“将数据本地输入路径‘/tmp/data/x’加载到表X”到表中就足够了。后续命令会覆盖表中已有的内容吗?还是会追加? 最佳答案 本站http://wiki.apache.org/hadoop/Hive/LanguageManual在处理Hive时是你的friend。:)解决将数据加载到Hive的页面是http://wiki.apache.org/hadoop/Hive/LanguageManual/DML该页面指出iftheOVERWRITEkeywordisusedthent

java - 高效查询Hbase

我正在使用Java作为查询Hbase的客户端。我的Hbase表是这样设置的:ROWKEY|HOST|EVENT-----------|--------------|----------21_1465435|host.hst.com|clicked22_1463456|hlo.wrld.com|dragged.........我需要做的第一件事是获取与host.hst.com关联的所有ROWKEY的列表。我可以在列host上创建一个扫描器,并且对于具有columnvalue=host.hst.com的每一行值,我将添加相应的ROWKEY到列表。看起来很有效率。O(n)用于获取所有行。现在

hadoop - HBase:创建多个表还是包含多个列的单个表?

什么时候创建多个表而不是创建具有大量列的单个表是有意义的。我知道表通常只有几个列族(1-2),每个列族可以支持1000多个列。当HBase在单个表中可能包含大量列的情况下表现良好时,何时创建单独的表才有意义? 最佳答案 在回答问题本身之前,让我首先说明一些起作用的主要因素。我将假定使用的文件系统是HDFS。一个表被划分为称为区域的键空间的非重叠分区。键范围->区域映射存储在称为meta的特殊单个区域表中。一个区域的一个HBase列族中的数据存储在单个HDFS目录中。它通常是几个文件,但是出于所有目的和目的,我们可以假定某个列族的区域

hadoop - 如何排除此 Hadoop 文件系统安装错误?

我正在尝试在非ClouderaUbuntu测试镜像上安装Hadoop。在我运行./bin/start-all.sh之前,一切似乎都很顺利.名称节点永远不会出现,所以我什至无法运行hadoopfs-ls连接到文件系统。这是名称节点日志:2011-03-2411:38:00,256INFOorg.apache.hadoop.ipc.Server:Stoppingserveron543102011-03-2411:38:00,257ERRORorg.apache.hadoop.hdfs.server.namenode.NameNode:org.apache.hadoop.hdfs.serve

hadoop - Hbase 中的日志结构化合并树

我正在研究Hbase。我对Hbase如何使用LSM按排序顺序存储数据有疑问。据我了解,Hbase在大规模数据处理中使用LSMTree进行数据传输。当数据来自客户端时,它首先按顺序存储在内存中,然后排序并存储为B-Tree作为存储文件。比它将存储文件与磁盘B树(关键)合并。这是正确的吗?我错过了什么吗?如果是,则在集群环境中。有多个接受客户端请求的RegionServer。在那种情况下,(每个区域服务器的)所有Hlog如何与磁盘B树合并(作为现有key分布在所有数据节点磁盘上)?是不是像Hlog一样只是合并同一个regionServer的Hfile的数据? 最

java - 线程 "main"java.lang.NoClassDefFoundError : org/apache/hadoop/hbase/HBaseConfiguration 中的异常

我正在使用Hadoop1.0.3和HBase0.94.22。我正在尝试运行映射器程序以从Hbase表中读取值并将它们输出到文件中。我收到以下错误:Exceptioninthread"main"java.lang.NoClassDefFoundError:org/apache/hadoop/hbase/HBaseConfigurationatjava.lang.Class.forName0(NativeMethod)atjava.lang.Class.forName(Class.java:340)atorg.apache.hadoop.util.RunJar.main(RunJar.ja

hadoop - Hbase - 如何获取表中的列名?

我有一些包含数百万行但只有几列的HBase表。我想提取每个表的列名并将其存储在一个单独的文件中。做这个的最好方式是什么?谢谢。 最佳答案 这应该将列名称保存在本地(而不是hdfs)的Hbase_table_columns.txt文件中:echo"scan'table_name'"|$HBASE_HOME/bin/hbaseshell|awk-F'=''{print$2}'|awk-F':''{print$1}'>Hbase_table_columns.txt这应该在控制台上保存列名:echo"scan'table_name'"|$H