草庐IT

hadoop - 所有内置的可写对象都使用默认的原始比较器吗?

我只是感到困惑,是否所有内置的可写对象(如IntWritable、FloatWritable、GenericWritable等)默认都使用原始比较器进行比较?如果没有,我们应该如何注册它们以使用rawcomparator。 最佳答案 如何获取RawComparator在JobConf.getOutputKeyComparator中:publicRawComparatorgetOutputKeyComparator(){ClasstheClass=getClass("mapred.output.key.comparator.class

hadoop - 热点使用hive插入Cassandra

使用EC2datastaxami评估DSE3.1.3Cassandra.测试设置5xm1.xlarge在一次测试中:4vcpus,15G,4x420G实例店铺。另一个5xhi1.4xlarge:16vcpus,60G,2x1TBSSD实例存储。数据5000多个apache日志文件,约60GB,60MM行。工作流程通过dsehadoopfs-put加载到CFS使用RegexSerDe从CFS加载到Hive。通过键空间日志中的CQL在Cassandra中创建事件表。通过INSERTINTOlogs.event从hive插入Cassandra。总体而言,前两个步骤的性能以及基本查询与其他ha

java - apache avro 中的 mapred 和 mapreduce 包有什么区别?

我正在从事我的项目以整合apacheavro进入我的MapR程序。然而,我很困惑与ma​​pred相比,通过使用新的ma​​preduce包。latter详细说明如何使用在不同的情况下,新的信息较少。但是我知道的是,它们分别对应hadoop的新旧接口(interface)。有没有人有使用ma​​preduce接口(interface)的经验或例子对于输入为非Avro数据的作业(例如TextInputFormat)文件输出为avro文件。 最佳答案 这两个包代表相应的Hadoopmapred和mapreduceAPI的输入/输出格式、

c++ - : No module named _hdfs_*

我能够毫无错误地构建和安装Pydoop,因此,例如,我可以执行以下操作:>>>importpydoop>>>pydoop.__version__'0.10.0'但是,当我尝试导入主要的Pydoop模块(例如pipes或hdfs)时,我遇到了ImportError:>>>importpydoop.hdfsTraceback(mostrecentcalllast):File"",line1,inFile"pydoop/hdfs/__init__.py",line79,infromfsimporthdfs,default_is_localFile"pydoop/hdfs/fs.py",lin

hadoop - Pig,用特定列的整数替换字符串

我是Pig的新手,所以这可能是一个微不足道的问题。我无法得到合理的答案,因此提出这个问题。有3列如下:useriditemidaction2454'view'2456'click'14912'buy'1491'click'等等……我有一个映射,例如:'view'=1、'click'=1.4、'buy'=2.1等我想要的输出是:useriditemidaction2454124561.4149122.114911.4可以帮助我实现这一目标的简单命令?我需要在第3列上执行一些计算,因此不能使用字符串格式。 最佳答案 使用这些映射值在HD

hadoop - 为什么oozie需要数据库?

我已经在我的系统中安装了apacheoozieversion4.1.2..安装时,我使用以下命令为oozie创建了一个数据库。ooziedb.shcreate-sqlfileoozie.sql-run(linux)为什么oozie需要数据库?它会在数据库中存储什么? 最佳答案 Oozie将工作流/调度程序详细信息和其他信息存储在数据库中。可以从控制台访问正在运行的作业和早期作业的状态。 关于hadoop-为什么oozie需要数据库?,我们在StackOverflow上找到一个类似的问题:

hadoop - Hive 中分区表的用途是什么?

我知道分区表用于水平分配负载,但它们的具体用途是什么?谁能用一个简单的例子向我解释一下? 最佳答案 分区允许Hive访问您的数据子集,而无需读取所有数据。这是为什么这可能有用的具体示例。为了使这一点易于理解,我的解释非常精简,如果您想要的不仅仅是我试图提供的表面层面的理解,我建议您阅读其他地方的Hive分区。您正在以每天~1TB的速率接收带时间戳的数据。您有100天前的数据,总数据负载为~100TB。很多时候,您希望汇总过去10天的一些数据。如果不进行分区,您将不得不读入所有100TB数据,尽管其中大部分数据无论如何都会被Hive忽

hadoop - 默认 Mapper-Reducer 类

假设我有两个数据集:helloworldbyeworld和helloearthnewearth并且我想运行一个没有指定映射器类或化简器类的map-reduce任务,因此将调用默认的映射器和化简器——它们都是恒等函数。当我运行该作业时,输出为::0helloworld0helloearth12newearth12byeworld我很困惑为什么key像0和12?!当我在main()::中注释掉这些行时,我只是使用了默认的映射器和缩减器//job.setMapperClass(Map.class);//job.setCombinerClass(Reduce.class);//job.setR

jdbc - 使用CDH4+Cloudera Manager时JDBC驱动放在哪里?

我试图让Sqoop2(CDH4.4.0)识别JDBCjar,但无论我把它们放在哪里,它们似乎都没有被识别。我听从了建议:here,here,并问了一个类似的问题here.有人可以对此提供明确的答案吗? 最佳答案 我强烈建议您遵循Hadoop发行版及其相关版本的官方安装指南。看来您使用的是CDH4.4.0,但正在查看CDH4.2.1安装说明。而在CDH4.2.1中,JDBC驱动程序jar文件应在/usr/lib/sqoop2中,自CDH4.3.0起,它们应在/var/lib/sqoop2中(documentation)。

hadoop - 为什么我的 Hadoop 作业得到 Map task num = 1 ,并生成了 300 多个结果文件?

我有这样一份Hadoop工作。MR只有map,没有reduce。所以设置job.setNumReduces(0)。输入文件约300+然后我运行作业,我可以看到只有1个maptask在运行。完成它大约需要1个小时。然后我检查结果,我可以在输出文件夹中看到300多个结果文件。有什么问题吗?或者这是正确的做法?我真的希望Map应该等于输入文件的数量(而不是1)。我也不知道为什么输出文件数与输入文件数相同。hadoop作业是从oozie提交的。非常感谢您的热心帮助。新松 最佳答案 当您将reducer数量设置为0时,生成的输出对应于map任