简单,可复制

点点滴滴,尽在文中

  :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 43 下一页

2013年1月3日

摘要: Is the cluster set up correctly? The best way to answer this question is empirically: run some jobs and confirm that you get the expected results. Benchmarks make good tests, as you also get numbers that you can compare with other clusters as a sanity check on whether your new cluster is performing 阅读全文
posted @ 2013-01-03 15:48 ggjucheng 阅读(1919) 评论(0) 推荐(0)

摘要: 背景 分布式的集群通常包含非常多的机器,由于受到机架槽位和交换机网口的限制,通常大型的分布式集群都会跨好几个机架,由多个机架上的机器共同组成一个分布式集群。机架内的机器之间的网络速度通常都会高于跨机架机器之间的网络速度,并且机架之间机器的网络通信通常受到上层交换机间网络带宽的限制。 具体到Hadoop集群,由于hadoop的HDFS对数据文件的分布式存放是按照分块block存储,每个block会有多个副本(默认为3),并且为了数据的安全和高效,所以hadoop默认对3个副本的存放策略为:第一个block副本放在和client所在的node里(如果client不在集群范围内,则这第一个nod.. 阅读全文
posted @ 2013-01-03 15:26 ggjucheng 阅读(21406) 评论(2) 推荐(3)

摘要: 通过dfs.umask可以控制在hdfs上创建的文件夹和文件的属性,该值的默认值为0022。在hadoop中通过dfs.umask参数可以控制默认的文件的权限。dfs.umask的设置<property> <name>dfs.umask</name> <value>0002</value></property>这个参数和linux中的umask不大一样。比如我想让文件的属性为-rw-r–r–,那么在linux中应该设置umask为022,而设置dfs.mask的值为0022的时候,结果并不是我希望的。后来发现在dfs.um 阅读全文
posted @ 2013-01-03 14:52 ggjucheng 阅读(3923) 评论(0) 推荐(0)

摘要: 最近要对hdfs上空间使用和文件结点使用增加报警,当超过一定的限额的时候就要发报警好通知提前准备。[sunwg]$ hadoop fs -count /sunwg 2 1 108 hdfs://sunwg:9000/sunwg第一个数值2表示/sunwg下的文件夹的个数,第二个数值1表是当前文件夹下文件的个数,第三个数值108表示该文件夹下文件所占的空间大小,这个大小是不计算副本的个数的[sunwg]$ hadoop fs -count -q /sunwg 1024 1021 10240 10132 2 1 108 ... 阅读全文
posted @ 2013-01-03 14:46 ggjucheng 阅读(20593) 评论(0) 推荐(0)

摘要: Lateral View语法lateralView: LATERAL VIEW udtf(expression) tableAlias AS columnAlias (',' columnAlias)*fromClause: FROM baseTable (lateralView)*描述lateral view用于和split, explode等UDTF一起使用,它能够将一行数据拆成多行数据,在此基础上可以对拆分后的数据进行聚合。lateral view首先为原始表的每行调用UDTF,UTDF会把一行拆分成一或者多行,lateral view再把结果组合,产生一个支持别名表的虚 阅读全文
posted @ 2013-01-03 14:39 ggjucheng 阅读(8742) 评论(0) 推荐(2)

摘要: 在做Shuffle阶段的优化过程中,遇到了数据倾斜的问题,造成了对一些情况下优化效果不明显。主要是因为在Job完成后的所得到的Counters是整个Job的总和,优化是基于这些Counters得出的平均值,而由于数据倾斜的原因造成map处理数据量的差异过大,使得这些平均值能代表的价值降低。Hive的执行是分阶段的,map处理数据量的差异取决于上一个stage的reduce输出,所以如何将数据均匀的分配到各个reduce中,就是解决数据倾斜的根本所在。规避错误来更好的运行比解决错误更高效。在查看了一些资料后,总结如下。1数据倾斜的原因1.1操作:关键词情形后果Join其中一个表较小,但是key集 阅读全文
posted @ 2013-01-03 13:12 ggjucheng 阅读(57752) 评论(3) 推荐(4)

摘要: 目前hive不支持 in或not in 中包含查询子句的语法,所以只能通过leftjoin实现。假设有一个登陆表login(当天登陆记录,只有一个uid),和一个用户注册表regusers(当天注册用户,字段只有一个uid),这两个表都包含一个字段,uid。in查询如果要查询当天登陆的注册用户,需要用in查询,hive sql如下:select login.uid from login left outer join regusers on login.uid=regusers.uid where regusers.uid is not null如果login表和regusers表按天分区,字 阅读全文
posted @ 2013-01-03 13:05 ggjucheng 阅读(51126) 评论(1) 推荐(0)

摘要: 表或者字段有中文的时候需要修改hive的元数据库的设置。以mysql为例子,当mysql的字符集设置成utf8的时候使用hive会有问题,详细见hive的wiki。所以当hive使用mysql作为元数据库的时候mysql的字符集要设置成latin1。为了保存那些utf8的中文,要将mysql中存储注释的那几个字段的字符集单独修改为utf8。修改字段注释字符集alter table COLUMNS modify column COMMENT varchar(256) character set utf8;修改表注释字符集alter table TABL_PARAMS modify column 阅读全文
posted @ 2013-01-03 12:23 ggjucheng 阅读(10639) 评论(2) 推荐(0)

摘要: CommonJoin最为普通的join策略,不受数据量的大小影响,也可以叫做reduce side join ,最没效率的一种join方式. 它由一个mapreduce job 完成.首先将大表和小表分别进行map 操作, 在map shuffle 的阶段每一个mapoutput key 变成了table_name_tag_prefix + join_column_value , 但是在进行partition 的时候它仍然只使用join_column_value 进行hash.每一个reduce 接受所有的map 传过来的split , 在reducce 的shuffle 阶段,它将mapou 阅读全文
posted @ 2013-01-03 12:20 ggjucheng 阅读(12511) 评论(0) 推荐(0)

摘要: 原文出自http://www.cnblogs.com/ggjucheng/archive/2012/12/17/2821935.html英文出自http://docs.oracle.com/javase/tutorial/java/package/summary-package.html包该章节解说如何捆绑类和接口到包里,如何使用包里的类,如何在文件系统分类,让编译器找到你的源代码。创建和使用包为了让类型更容易查找和使用,避免命名冲突,访问控制,程序员要把相关的类型的组捆绑为包。声明:包是相关的类型的组,提供访问控制,命名空间管理。注意类型是类,接口,枚举和注解。枚举和注解类型是特殊的类和接口 阅读全文
posted @ 2013-01-03 00:55 ggjucheng 阅读(3312) 评论(0) 推荐(0)

上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 43 下一页