草庐IT

hadoop - 有什么方法可以控制在 Hadoop MapReduce 框架中启动哪个节点 reducer ?

简而言之我需要一种方法来向HadoopMapRediceAPI提供提示,告诉我希望在哪个主机上运行基于其分区的特定reducer。有什么办法吗?有点长的故事:我很少有映射器任务为某些HBase表生成(或从其他来源导入)记录。发出的记录以ImmutableBytesWritable作为键。此作业的reducer数量与表区域的数量完全匹配,自定义分区器用于分发记录,以便每个区域的记录都到达适当的reducer。Reducer旨在生成HFile图像,每个区域一个图像,以便稍后可以在它们上使用批量加载。这里唯一严重的问题是我希望reducer至少在适当的区域服务器正在运行的相同主机上“尝试运行

java - Hadoop HDFS 中 JSON 推文的情感分析

我使用ApacheFlume将大量推文传输到Hadoop的HDFS中。我试图对这些数据进行情绪分析-只是从一些简单的开始,比如正面与负面的词比较。我的问题是,我找到的所有向我展示如何做到这一点的指南都有一个包含正面和负面词语的文本文件,然后是一个包含每条推文的巨大文本文件。当我使用Flume时,我所有的数据都已经在Hadoop中了。当我使用localhost:50070访问它时,我可以根据月/日/小时在单独的文件中看到数据,每个文件包含三到四个推文。我每小时可能有50个这样的文件。虽然它没有在任何地方说明,但我假设它们是JSON格式。考虑到这一点,我该如何对它们进行分析?在我看到的所有

hadoop - 使用不同集群的 HDFS 时的数据局部性

类似于DatalocalityifHDFSnotused,但特定于HDFS。我们有2个hadoop集群,我们正在向集群AJobTracker提交一个pig作业,它从集群B读取一个大数据集(100GB)并将其连接到集群A的一个小数据集(10行)。b_data=load'hdfs://b-cluster/big.txt'as(customer_id:chararray);a_data=load'hdfs://a-cluster/small.txt'as(customer_id:chararray);j_data=joina_databyacct_idleft,b_databycustome

hadoop - PIG - 加载错误继续

pig的新手。我正在将数据加载到这样的关系中:raw_data=LOAD'$input_path/abc/def.*;它工作得很好,但如果找不到任何匹配def.*的文件,整个脚本就会失败。这是一种在没有匹配项时继续执行脚本其余部分的方法。只产生一个空集?我尝试过:raw_data=LOAD'$input_path/abc/def.*ONERRORIgnore();但这并没有解析。 最佳答案 您可以编写返回文件或空元组的自定义加载UDF。http://wiki.apache.org/pig/UDFManual

java - 使用 mapreduce 如何在 HDFS 中存在的所有其他文件中搜索特定文件的单词

我有多个文件,其中包含员工的姓名、ID和技能集,还有另一个文件“skills.txt”,其中包含一些特定技能的列表。我正在尝试编写一个javamapreduce程序来找出具有skills.txt中提到的技能的员工。例如假设有3个员工文件如下:emp1.txt-姓名:TomEmpId:001技能:C++、Java、SQLemp2.​​txt-姓名:JerryEmpId:002技能:C++、PHP、SQLemp3.txt-姓名:JackEmpId:002技能:Java、PHPSkills.txt-PHPSQL那么我的结果应该如下所示。PHPJerry-002;jack-003SQLTom-

用于 Flume 接收器文件的 Hadoop Streaming MapReduce - FileNotFoundException

我遇到以下异常:java.io.FileNotFoundException:Filedoesnotexist:/log1/20131025/2013102509_at1.1382659200021.tmpatorg.apache.hadoop.hdfs.DFSClient$DFSInputStream.fetchLocatedBlocks(DFSClient.java:2006)atorg.apache.hadoop.hdfs.DFSClient$DFSInputStream.openInfo(DFSClient.java:1975)...当MR作业正在运行时。Flume将文件名从xx

hadoop - fs.defaultFS 只监听localhost的8020端口

我有一个CDH4.3一体机启动并运行,我正在尝试远程安装一个hadoop客户端。我注意到,在不更改任何默认设置的情况下,我的hadoop集群正在监听127.0.0.1:8020。[cloudera@localhost~]$netstat-lent|grep8020tcp00127.0.0.1:80200.0.0.0:*LISTEN492100202[cloudera@localhost~]$telnet${all-in-onevmexternalIP}8020Trying${all-in-onevmexternalIP}...telnet:connecttoaddress${all-i

r - 在 rhdfs 中的 hdfs.init() 中出现错误

我想运行hdfs.init(),我的代码是:Sys.setenv(HADOOP_CMD="C:\\hdp\\hadoop\\hadoop-1.2.0.1.3.0.0-0380\\bin\\hadoop")Sys.setenv(HADOOP_CONF_DIR="C:\\hdp\\hadoop\\hadoop-1.2.0.1.3.0.0-0380\\conf")library(rhdfs)hdfs.init()执行hdfs.init()后,我得到如下错误:>hdfs.init()Errorin.jnew("org/apache/hadoop/conf/Configuration"):jav

mysql - 将数据插入 HIVE 表时出错

我正在尝试将“制表符分隔文件”中的一些数据插入到已经创建的HIVE表中。我在名为“用户”的HIVE表中创建了4个基本列。我正在使用以下命令:loaddatalocalinpath'D:\users.txt'intotableusers;运行上述命令后出现以下错误信息:FAILED:SemanticException[Error10028]:Line1:23Pathisnotlegal''D:\users.txt'':Sourcefilesystemshouldbe"file"if"local"isspecified我正在使用Windows7并通过PUTTY在AmazonWebServi

hadoop - HDFS单节点复制

在单独的物理硬盘驱动器上运行具有多个数据目录的单节点HDFS集群(或伪分布式模式)时,是否可以在磁盘故障的情况下进行block复制?我知道单节点安装是非典型的,但仍然想知道。我阅读的所有内容都只涉及节点故障,但我找不到任何关于单节点场景中磁盘故障的信息。注意:我只对这里数据丢失的可能性感兴趣,而不对所谓的“集群”的可用性感兴趣。 最佳答案 节点故障可能仅由磁盘故障引起,因此每次磁盘故障都会导致节点故障,这意味着如果您只有一个磁盘和一个节点,数据就会丢失。但是如果你在一个节点上有两个磁盘,你可以在该机器上有两个DataNode,每个都