随笔分类 -  Hadoop

MapReduce作业运行机制
摘要:一,作业的提交Job.waitForCompletion(true):1)此方法调用submit(). 在Submit()方法里面连接JobTracker,即生成一个内部JobSummitter(实际上是new JobClient(),在new JobClient()里面生成一个JobSubmissionProtocol接口(JobTracker实现了此接口)对象jobSubmitClient(是它连接或对应着JobTracker)),在Submit()方法里面也调用JobClient.submitJobInternal(conf)方法返回一个RunningJob(步骤1);2)参数true说 阅读全文

posted @ 2012-06-28 20:50 liangzh123 阅读(896) 评论(0) 推荐(0)

HDFS读写数据流
摘要:一, 读文件剖析Configuration conf = new Configuration();FileSystem fs = FileSystem.get(conf);FSDataInputStream in = fs.open(new Path(uri));客户端调用FileSystem的get()方法得到一个实例fs(即分布式文件系统DistributedFileSystem),然后fs调用open()打开希望读取的文件(步骤1)DistributedFileSystem(fs)通过使用RPC调用NameNode以确定文件起始block的位置(步骤2)。(Block位置信息存储在nam 阅读全文

posted @ 2012-06-08 14:50 liangzh123 阅读(1165) 评论(0) 推荐(0)

MultipleOutputFormat和MultipleOutputs
摘要:一,介绍1,旧API中有 org.apache.hadoop.mapred.lib.MultipleOutputFormat和org.apache.hadoop.mapred.lib.MultipleOutputsMultipleOutputFormat allowing to write the output data to different output files.MultipleOutputs creates multiple OutputCollectors. Each OutputCollector can have its own OutputFormat and types 阅读全文

posted @ 2012-05-22 22:08 liangzh123 阅读(7610) 评论(2) 推荐(2)

DataJoin: Replicated join using DistributedCache
摘要:Reduce-side join比较灵活但效率不高,因为在数据在reduce端才作join,在网络中需要shuffle所有数据,而且在join时又丢掉很多无用的数据。如果能在map端执行join则会有较高的效率,但map不容易同时获得需要作join的多个记录。在实际的应用中,需要作join的数据源可能一个很大一个比较小,如果此小数据源小到能够放到mapper的内存中,并把此数据源拷贝到所有的mapper机器上,那就可以在map端执行join. 这就是Replicated join.Hadoop has a mechanism called distributed cache that’s de 阅读全文

posted @ 2012-05-19 16:04 liangzh123 阅读(424) 评论(2) 推荐(0)

DataJoin: Reduce-side join
摘要:首先三个概念:A data source is analogous to a table in relational databases.( a single file or multiple files)tag:Tagging the record will ensure that specifi c metadata will always go along with the record.group key: like a join key in a relational database 两个数据源data sources: Customers ... 阅读全文

posted @ 2012-05-18 21:56 liangzh123 阅读(431) 评论(0) 推荐(0)

运行Hadoop遇到的问题
摘要:1, 伪分布式模式不能用root?? 以root执行start-all.sh出现 localhost: Unrecognized option: -jvm localhost: Could not create the Java virtual machine. 下面是别人的解决方案:(可以修改的地方有两个) 第一个(次要的):$HADOOP_HOME/conf/hadoop-env.sh 修改参数: export HADOOP_HEAPSIZE=256 #默认值为1000M,为Java虚拟机占用的内存的大小 第二个(主要的):查看$HADOOP_HOME/bin/hadoop 源码: i.. 阅读全文

posted @ 2012-04-06 14:11 liangzh123 阅读(4751) 评论(0) 推荐(0)

linux安装Hadoop
摘要:安装Hadoop:1,下载hadoop-0.20.203.0.tar.gz 用命令tar -zxf hadoop-0.20.203.0.tar.gz 此时会出现hadoop-0.20.203.0文件夹2,vi /etc/profile或修改conf/hadoop-env.sh 在里面添加如下代码: #This is Hadoop #HADOOP_INSTALL is an environment variable that points to the Hadoop installation directory export HADOOP_HOME=/usr/hadoop-0.20.... 阅读全文

posted @ 2012-04-06 13:46 liangzh123 阅读(431) 评论(0) 推荐(0)

导航