Hadoop
文章平均质量分 69
炼气散人
等儿子高考后,或许会回来
展开
-
Ubuntu上使用Hadoop 2.x 五 编译2.3.0 64bit版本
Hadoop 2.3.0已经发布,编译方式主要还是参考前文:Ubuntu 12.04 上使用Hadoop 2.2.0 三 编译64bit版本不过有一点区别,就是不需要修改pom.xml文件了。jetty的bug已经修复。原创 2014-02-28 13:36:01 · 3911 阅读 · 0 评论 -
MapReduce 编程 系列七 MapReduce程序日志查看
首先,如果需要打印日志,不需要用log4j这些东西,直接用System.out.println即可,这些输出到stdout的日志信息可以在jobtracker站点最终找到。其次,如果在main函数启动的时候用System.out.println打印的日志,直接在控制台就可以看到。再其次,jobtracker站点很重要。http://your_name_node:50030/jobtracker.j原创 2014-10-02 18:54:38 · 5055 阅读 · 0 评论 -
MapReduce 编程 系列八 根据输入路径产生输出路径和清除HDFS目录
有了前面的MultipleOutputs的使用经验,就可以将HDFS输入目录的路径解析出来,组成输出路径,这在业务上是十分常用的。这样其实是没有多文件名输出,仅仅是调用了MultipleOutputs的addNamedOutput方法一次,设置文件名为result.先看pom.xml, 现在参数只有一个输入目录了,输出目录会在该路径后面自动加上/output.<project xmlns="htt原创 2014-10-02 23:04:50 · 4422 阅读 · 0 评论 -
MapReduce 编程 系列九 Reducer数目
本篇介绍如何控制reduce的数目。前面观察结果文件,都会发现一般是以part-r-00000 形式出现多个文件,其实这个reducer的数目有关系,reducer数目多,结果文件数目就多。在初始化job的时候,是可以设置reducer的数目的。example4在example的基础上做了改动。修改了pom.xml,使得结束一个参数作为reducer的数目。修改了LogJob.java的代码,作为原创 2014-10-03 14:21:50 · 3109 阅读 · 0 评论 -
MapReduce 编程 系列十一 Map阶段内部细节和调节参数
MapOutputBuffer对于每一个Map,都有一个内存buffer用来缓存中间结果,这不仅可以缓存,而且还可以用来排序,被称为MapOutputBuffer, 设置这个buffer大小的配置是io.sort.mb默认值是100MB.一般当buffer被使用到一定比例,就会将Map的中间结果往磁盘上写,这个比例的配置是:io.sort.spill.percent默认值是80%或者0.8.在内存原创 2014-10-03 23:02:21 · 3005 阅读 · 0 评论 -
MapReduce 编程 系列十二 Reduce阶段内部细节和调节参数
Reduce计算分为若干阶段1. copy(或者叫shuffle)阶段和merge阶段并行之前Map产生的结果被存放在本地磁盘上,这时需要从reduce节点将数据从map节点复制过来。放得下进内存,比较大的则写到本地磁盘。同时,有两个线程对已经获得的内存中和磁盘上的数据进行merge操作。具体细节是:通过RPC调用询问task tracker已经完成的map task列表,shuffle(洗牌)是原创 2014-10-04 13:50:54 · 3066 阅读 · 0 评论 -
MapReduce 编程 系列二 编写简单mapper
现在想从日志中提取数据,日志文件如下:2014-05-10 13:36:40,140307000287,536dbacc4700aab274729cca,login2014-05-10 13:37:46,140310000378,536dbae74700aab274729ccb,login2014-05-10 13:39:20,140310000382,536dbb284700aab27472原创 2014-09-25 23:44:09 · 3223 阅读 · 1 评论 -
MapReduce 编程 系列三 编写简单reducer
Reduce代码就是做加和统计,package org.freebird.reducer;import java.io.IOException;import org.apache.hadoop.io.IntWritable;import org.apache.hadoop.mapreduce.Reducer.Context;import org.apache.hadoop.mapredu原创 2014-09-26 00:27:33 · 2972 阅读 · 0 评论 -
MapReduce 编程 系列十二 用Hadoop Streaming技术集成newLISP脚本
本文环境和之前的Hadoop 1.x不同,是在Hadoop 2.x环境下测试。newLISP脚本,在stdin中读取数原创 2014-10-04 21:13:58 · 3143 阅读 · 1 评论 -
hdfs test 命令
有时候需要写一个脚本测试hdfs中的某个文件或者目录是否存在,比如当接收机发现磁盘分区剩余空间已经到了危险值的时候,需要首先测试一下是否日志已经存入HDFS目录,如果是,则可以删除接收机上的本地日志文件,避免磁盘满的事故。下面是hdfs2.0的test命令介绍:hdfs dfs -help-test -[defsz] : Answer various questions about , with原创 2014-10-19 15:59:52 · 8928 阅读 · 0 评论 -
4年后Hadoop的再回首
居然无疑中搜到了几年前我讨论的帖子,造化弄人,如今我已经管理着321台服务器组成的hadoop集群。现在回顾一下这个讨论还是值得的:1. Hadoop的稳定性的确不错,比如task tracker经常出现失败,但是绝大多数会被重试后成功。2. Hadoop是离线计算框架,用它来做低延迟的实时性计算肯定是错误的,应该用Spark/Storm等来代替。老实说,慢的可以。绝对不能将其作为互联网应用的直接原创 2015-01-27 00:32:38 · 2900 阅读 · 0 评论 -
HDFS 2.x 使用经验
本文会不断增加内容查看namnode状态web方式两个namenode的话,可以通过网页的方式查看http://10.149.11.152:50070/dfshealth.html#tab-overviewhttp://10.149.11.153:50070/dfshealth.html#tab-overview在两个页面的overview可以看到namenode的状态:active or sta原创 2015-09-28 14:46:40 · 2056 阅读 · 1 评论 -
CentOS 6.6 安装 HDFS 2.7.1
本文尝试在CentOS上搭建10台HDFS集群,不会搭建YARN和Hive, 因为之后会采用Spark。先安装jdk 1.8, 此处不细说。下载首先下载hadoop binary包wget http://apache.mesi.com.ar/hadoop/common/hadoop-2.7.1/hadoop-2.7.1.tar.gz解压后放在/data/slot0/目录下,并建立软链接/data/原创 2015-09-25 18:40:38 · 4751 阅读 · 3 评论 -
Ubuntu上使用Hadoop 2.x 一 hdfs超级用户创建和设置
在Ubuntu 12.04 server上安装 Hadoop 2.2.0原创 2014-02-21 17:16:52 · 7235 阅读 · 1 评论 -
去除HDFS WARN util.NativeCodeLoader
经常遇到这个警告# hdfs dfs -ls /input15/11/10 10:00:32 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable问题在哪里?有人说这是hadoop的预编译包是原创 2015-11-10 10:09:10 · 5043 阅读 · 0 评论 -
HDFS用户权限管理
超级用户启动namenode服务的用户就是超级用户具体配置参考之前我的博客Ubuntu上使用Hadoop 2.x 一 hdfs超级用户创建和设置 CentOS 6.6 安装 HDFS 2.7.1 设计思想很多设计原子POSIX文件系统,可以参考之前的博客 Linux用户管理命令 文件和原创 2015-11-08 10:34:38 · 36640 阅读 · 0 评论 -
MapReduce 编程 系列六 MultipleOutputs使用
在前面的例子中,输出文件名是默认的:_logs part-r-00001 part-r-00003 part-r-00005 part-r-00007 part-r-00009 part-r-00011 part-r-00013 _SUCCESSpart-r-00000 part-r-00002 part-r-00004 part-r-00006 part-原创 2014-10-02 18:21:21 · 5107 阅读 · 0 评论 -
newlisp获取bash命令的退出状态
newlisp exec可以执行bash命令,但是返回的状态如何执行呢?特别是我需要监控hdfs dfs -test 返回的结果,经过一番摸索,找到了简单的答案:#!/usr/bin/newlisp(set 'x (exec "hdfs dfs -test -d /user/chenshu;echo $?"))(println "x: " x)(exit)输出结果:x: ("0")原创 2014-10-27 22:32:58 · 2596 阅读 · 0 评论 -
MapReduce 中的两表 join 几种方案简介
文章写到简洁明快,很好懂。我急http://my.oschina.net/leejun2005/blog/95186转载 2014-10-06 10:53:33 · 2840 阅读 · 0 评论 -
Ubuntu上使用Hadoop 2.x 四 Multi-node cluster 基本设置
这次玩分布式了,在多台虚拟机上安装原创 2014-02-22 23:20:18 · 4878 阅读 · 0 评论 -
Ubuntu上使用Hadoop 2.x 二 配置single node server
现在开始设置环境变量:原创 2014-02-21 23:02:53 · 3939 阅读 · 0 评论 -
Ubuntu上使用Hadoop 2.x 六 HDFS cluster搭建
和一般的hadoop配置不一样的是,本文只配置Hadoop 2.3.0下的HDFS集群。因此更容易理解和上手。原创 2014-03-09 20:33:21 · 5744 阅读 · 4 评论 -
Ubuntu上使用Hadoop 2.x 八 HDFS cluster管理命令
hadoop dfsadmin是命令行的管理工具,查看帮助用如下命令:hadoop dfsadmin -help所以dfsadmin是hadoop程序的一个参数,而不是独立的工具。不过现在版本有点变化,hadoop dfsadmin的用法已经被废止,改为hdfs dfsadmin命令。下面是查看简单的报告:hduser@namenode:~$ hdfs dfsadmin -reportConfi原创 2014-03-10 11:12:48 · 3089 阅读 · 0 评论 -
Ubuntu上使用Hadoop 2.x 七 HDFS cluster使用
namenode管理站点首先namenode有一个web站点,默认端口号是50070, 下面是我的截屏:至少说明namenode服务启动正常了。为什么只看到datanode1?shell command查看日志原创 2014-03-10 10:43:34 · 3470 阅读 · 1 评论 -
Ubuntu上使用Hadoop 2.x 十 HDFS Federation
HDFS Federation能解决一下问题:1. 支持多个namespace2. 水平扩展出多个namenode后,就可以避免网络架构上的性能瓶颈问题3. 多个应用可以使用各自的namenode,从而相互隔离。不过还是没有解决单点故障问题。官方文档:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/Fede原创 2014-03-17 10:27:47 · 3193 阅读 · 0 评论 -
Ubuntu上使用Hadoop 2.x 十一 HDFS Cluster ViewFS和HDFS混用
在Federation中同时使用HDFS和ViewFS原创 2014-03-18 16:00:39 · 5009 阅读 · 0 评论 -
Ubuntu上使用Hadoop 2.x 三 编译2.2.0 64bit版本
编译原创 2014-02-22 01:53:58 · 6580 阅读 · 0 评论 -
Hive创建外部表以及分区
创建外部表的好处是数据可以随时从hdfs中挂载进表中使用分区的好处是可以缩短查询范围下面的例子展示了如何创建外部表CREATE EXTERNAL TABLE my_daily_report( last_update string, col_a string, col_b string, col_c string, col_d string, col_原创 2014-05-31 23:24:03 · 12596 阅读 · 0 评论 -
查看hive版本
hive没有提供hive --version这种方式查看版本好,所以要找到hive所在目录,然后查看jar包的版本号,比如:# ls /usr/local/hive/lib/antlr-2.7.7.jar datanucleus-core-2.0.3.jar hive-jdbc-0.10.0.jar jline-1.0.ja原创 2014-06-22 20:52:37 · 35221 阅读 · 2 评论 -
MapReduce 编程 系列一 搭建基本的Maven工程
这是一个maven 工程,安装完mvn 3.2.2后, mvn --versionApache Maven 3.2.3 (33f8c3e1027c3ddde99d3cdebad2656a31e8fdf4; 2014-08-12T04:58:10+08:00)Maven home: /opt/apache-maven-3.2.3Java version: 1.7.0_09, vendor: O原创 2014-09-24 13:21:24 · 2751 阅读 · 0 评论 -
Ubuntu上使用Hadoop 2.x 九 HDFS cluster拓扑管理
什么是rack awareness?如何设置拓扑信息?需要设置core-site.xml文件,官方手册:http://hadoop.apache.org/docs/r2.3.0/hadoop-project-dist/hadoop-common/core-default.xml参考文章:http://bigdataprocessing.wordpress.com/2013/07/30/hadoop原创 2014-03-11 22:36:22 · 3193 阅读 · 0 评论 -
Ubuntu上使用Hadoop 2.x 十二 HDFS Cluster HA QJM和Federation联合使用
Federation结合使用HA QJM原创 2014-03-18 19:25:02 · 2949 阅读 · 0 评论 -
MapReduce 编程 系列四 MapReduce例子程序运行
MapReduce程序编译是可以在普通的Java环境下进行,现在来到真实的环境上运行。首先,将日志文件放到HDFS目录下$ hdfs dfs -put *.csv /user/chenshu/share/logs/14/09/27 17:03:22 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your原创 2014-09-27 18:05:19 · 2797 阅读 · 0 评论 -
MapReduce 编程 系列五 MapReduce 主要过程梳理
前面4篇文章介绍了如何编写一个简单的日志提取程序,读取HDFS share/logs目录下的所有csv日志文件,然后提取数据后,最终输出到share/output目录下。本篇停留一下,梳理一下主要过程,然后提出新的改进目标。首先声明一下,所有的代码都是maven工程的,没有使用任何IDE。 这是我一贯的编程风格,用Emacs + JDEE开发。需要使用IDE的只需要学习如何在IDE中使用mave原创 2014-09-27 20:59:44 · 2662 阅读 · 0 评论 -
MapReduce 编程 系列十 使用HashPartitioner来调节Reducer的计算负载
example4演示了如何指定Reducer的数量,本节演示如何使用HashPartitioner将Mapper的输出按照key进行分组后交给Reducer来处理。合理的分组策略将使得每个Reducer获得的计算负载差距不大,从而整体reduce的性能更加均衡。Reducer的数量由HashPartitioner函数getPartition返回值来确定。public int getPartitio原创 2014-10-03 15:29:48 · 5172 阅读 · 0 评论