- 博客(42)
- 收藏
- 关注
原创 表单验证学习
<html><script type="text/javascript"> function check(){ if(document.getElementById("username").value==""){ alert("用户名不能为空!"); document.getElementById("username").focus(); return false; }
2017-01-15 17:37:16 354
转载 利用MapReduce解决在海量数据中求Top K个数<转>
package jtlyuan.csdn; import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.conf.Configured; import org.apache.hadoop.fs.Path;
2016-12-11 14:41:36 555
转载 Hadoop Partition使用实例<转>
Hadoop Partition使用实例<转> 如何使用Hadoop的Partitioner Hadoop里面的MapReduce编程模型,非常灵活,大部分环节我们都可以重写它的API,来灵活定制我们自己的一些特殊需求。今天散仙要说的这个分区函数Partitioner,也是一样如此,下面我们先来看下Partitioner的作用: 对map端输出的数据key作一个散列,使数据能够均匀分布在各个
2016-12-11 14:11:49 981
转载 Linux中文件中字符替换
方法有二:(一)通过vi编辑器来替换。参考博文:http://www.linuxdiyf.com/viewarticle.php?id=99843http://kingaragorn.javaeye.com/blog/467308vi/vim 中可以使用 :s 命令来替换字符串。以前只会使用编辑软件进行替换,今天发现该命令有很多种写法(vi 真是强大啊,还有很多需要学习),记录几种在此,方便以后查询
2016-12-10 12:26:36 1478
转载 Map Join和Reduce Join的区别
MapReduce Join对两份数据data1和data2进行关键词连接是一个很通用的问题,如果数据量比较小,可以在内存中完成连接。如果数据量比较大,在内存进行连接操会发生OOM。mapreduce join可以用来解决大数据的连接。 1 思路 1.1 reduce join在map阶段, 把关键字作为key输出,并在value中标记出数据是来自data1还是data2。因为在shuffle阶
2016-12-08 10:29:04 2718
原创 awk脚本实现wordcount
今天学习了linux下的shell脚本, 写了一个小例子wordcount: 1.数据文件$ cat word.txt baidu 100 5000 pukai 100 5000 6000diwenpu di di di wen wenpu p u2.awk脚本 $ cat ak.awk #!/bin/awk -f# 开始BEGIN{}# 运行中{ for(i=1;i<
2016-12-02 21:35:27 1702
转载 Hive优化问题
1.HADOOP计算框架特性 • 数据量大不是问题,数据倾斜是个问题。 • jobs数比较多的作业运行效率相对比较低,比如即使有几百行的表,如果多次关联多次汇总,产生十几个jobs,耗时很长。原因是map reduce作业初始化的时间是比较长的。 • sum,count,max,min等UDAF,不怕数据倾斜问题,hadoop在map端的汇总合并优化,使数据倾斜不成问题。
2016-11-24 22:02:13 373
原创 Hive中的排序
Hive编程指南,记录排序的规则: Hive中的排序: 1.order by: 会对所有的数据进行一个全局排序,所有的数据都会通过一个Reduce进行处理,对于 大规模的数据会消耗特别长的时间。 2.sort by: 其只会在在每个reduce中对数据进行排序,也就是执行一个局部排序的过程。这可以 保证每个reduce的输出都是有序的(并非全局有序)。这
2016-11-24 21:55:01 813
原创 MapReduce处理过程分析
Map阶段: 1. 使用job.setInputFormatClass(TextInputFormat)做为输入格式。注意输出应该符合自定义Map中定义的输出。 2. 调用job.setPartitionerClass(),对指定的key落在具体的分区 3. 每个分区内又调用job.setSortComparatorClass()设置的key比较函数类排序(如果没有
2016-11-24 09:28:37 485
原创 Hive常规操作总结
Hive目录的说明 ● bin: 包含了各种Hive服务的可执行文件例如CLI命令行界面 ● .hiverc: 位于用户的主目录下的文件,如果不存在可以创建一个 里边的命令可以在启动CLI时,会先自动执行! ● metastore(元数据存储): Hive所需要的组件只有元数据信息是hadoop没有的,它存储 了表的
2016-11-21 23:01:15 515
原创 MapReduce优化问题
总结了一下MR优化问题,涉及到hadoop1.0和2.0的调优 1. 从集群的性能方面: 集群能够同时运行Map或者Reduce任务的最大任务数 假设一台机器最多能同时运行10个Map任务和5个Reduce任务, 这个集群有100台服务器,那么map的任务槽就是1000,Reduce的任务槽就是500 合理的设置Map和Reduce任务数: map:具体
2016-11-21 17:47:48 339
原创 MapReduce表关联
今天重新学习了表关联,为了以后用到的时候能够快速想到。这里记录下来设计的思想: 由于多表关联跟单表关联一样,甚至如果是两个表,那么的结构更加清新,所以只记录单表关联 单表关联: 所谓单表关联,即使特殊的多表关联,表关联一个思想就是区分出左右表,最后求笛卡尔积即可! 实例: child parent tom lucy tom jack jone luc
2016-11-20 16:12:00 468
原创 Hadoop作业构建中的主要方法
在主函数里边有几个方法的说明:Configuration conf = new Configuration(); // 配置设定 Job job = Job.getInstance(conf, “word count”); // 得到作业 job.setJarByClass(WordCount.class); // 主类名job.setOutputKeyClass(); //
2016-11-19 14:36:51 377
原创 Reduce端的Iterable集合的理解:
Iterable: 1.value里边的每个数值在内存中是用完全二叉树存储的形式存储的(小顶堆) 2.小顶堆的顶端(根节点)存储着按排序后的最大或最小值(小顶堆的特性) (到底是最大还是最小根据你的排序规则确定) 3.每次循环一次,小顶堆的堆顶数值都会改变,但是不变的是顶堆的数一定是最大或最小值(小顶堆的特性) 4.当第一次调用这个reduce(Text,Iterable,Context)
2016-11-18 21:27:55 712
原创 模拟操作系统进程调度算法
先来先服务算法: 1.链表存储 2.输入要有先后顺序(没有设计排序算法)#include<iostream>#include <conio.h>#include<stdlib.h>#include<time.h>#include <windows.h>using namespace std;#define NULL 0int N = 0;//全局变量N,节点个数//进程节点type
2015-11-09 21:25:47 1413
原创 舞伴问题(链队)
问题: 假设在周末舞会上,男士们和女士们进入舞厅时,各自排成一队。 跳舞开始时,依次从男队和女队的队头上各出一人配成舞伴。 若两队初始人数不相同,则较长的那一队中未配对者等待下一轮舞曲。 现要求写一算法模拟上述舞伴配对问题 程序功能: 能够使男女依次组合,如若男女相等配对完成,否则输出等待下一轮的男士或者女士。 算法: 学习队列于是采用链队
2015-09-17 11:21:46 3024 2
原创 计算器(栈实现)
算法: 1.先利用ARR[]存储所需要计算的表达式字符串; opnd存储操作数的栈,optr存储运算符的栈; arr[]存储连续的数字字符,然后转化的整型数; 2.依次读入ARR[]的每个字符(flag为标记),如果是数字字符转化后入opnd栈; 3.如果是运算符,则比较读入的字符与optr栈顶的运算符,根据事先确定的顺序决定是继续读入,是提取opnd的两个操作数计算,还是消除括号; 4
2015-09-12 13:14:47 635
原创 第七章:指针(二级指针与多维数组)
1.创建一个数组,其中包含三个数组指针,每个数组都可以包含六个int类型的值,把第一个整数数组的值设为1到6,下一个数组的元素值设置为第一个数组元素的平方,第三个数组的元素值设为第一个整数数组的三次方,输出3个数组的内容,再释放已分配的内存.#include<iostream>using namespace std;const int row = 3;const int col = 6;i
2015-09-08 21:30:08 473
原创 顺序栈(10进制转化成8进制数)
算法:1.利用辗转相除法求得每次的余数为8进制数;2.所产生的8进制数是按从低位到高位的顺序产生的,利用栈的来处理很适合,不用在设计其他的算法颠倒输出了!3.采用顺序栈简单灵活!4.代码没有设计一个类的方法,(有点麻烦)但是思想还是c++根据行为,执行操作#include<iostream>using namespace std;#define NULL 0const int MA
2015-09-08 10:19:15 2093
原创 第六章:数组和字符串
//练习题://1.例如:如果用户输入了字符串"Our house is at your disposal.",//要查找的单纯是our,则得到的字符串应该是"***house is at your disposal."而不是"***house is at y*** disposal."#include <stdlib.h>#include <stdio.h>#include <iostr
2015-09-01 10:31:46 400
原创 链栈的学习(回文数)
思路: 1.先用arr1[]存入字符串 2.把arr2[]中的字符入栈 3.把栈中字符出栈并存入arr2[]中 4.比较arr与arr2,相同则是回文数,反之则不是----------#include<iostream>using namespace std;#define NULL 0 struct node{ char x ; struc
2015-08-31 12:49:03 602
原创 第五章:循环
//练习题//1:编写一个程序,输出1到用户输入的数字之间的所有奇数的平方/////////////////////////////////////////////////////////////////////////////////////*#include<iostream>using namespace std ;int main (){ cout<<"输入一个数计算1~
2015-08-28 20:03:51 414
原创 第四章:选择if ()
//1:创建一个程序,提示用户输入一个1到100之间的整数,使用if语句判断该整数是否在设定的范围之内,//如果是,在判断整数是否大于,小于或等于50/*#include<iostream>using namespace std;int main (){ cout<<"输入一个整数:" ; int x = 0 ; cin>>x ; if (x > 1 &&
2015-08-26 19:01:53 401
原创 第三章:处理基本数据类型
练习题/////////////////////////////////////////////////////////////////////1:编写一个程序,计算用户输入非0整数的倒数,该程序应把计算的结果存储在double类型的变量中,再输出它#include<iostream>using namespace std;int main (){ int x = 0 ;
2015-08-26 19:00:10 348
原创 第二章:基本数据类型和计算
练习题://///////////////////////////////////////////////////////////////////// 1:编写一个程序,计算圆的面积.该程序应提示输入圆的半径, 使用公式area = pi*radius*radius 计算面积,在显示结果 *//*#include<iostream>using namespace std;cons
2015-08-26 18:49:36 397
原创 计算器(链表实现)
思路: 1.分为两步计算,第一步先计算括号里面的数据!没计算完一个括号以后,判断是否括号已经消除完毕,消除完毕结束循环 2.消除完,先计算乘除后计算加减,(在处理括号理同时含有乘除和加减时,调用此过程) 总结: 1.要画出循环图来,保证思路清晰!每个细节要注意到并以适当的方式改正过来! 漏洞: 由于采用的是字符数组的形式存储数字,但是不会把负数和小数点以数组的形式存储进去,所以整个过程当
2015-08-17 19:42:36 2254
原创 简单实现了一个学生成绩信息管理系统
要求: 1.该程序以链表的形式存储信息; 2.系统实现添加,查找,修改,删除,遍历操作的基本功能; 总结: 1.最大的问题没有建立一个管理系统的类,把各个功能当做管理类的成员函数,通过调用函数来操作,有待进一步改进!!!!//************************************学生信息管理系统********************#include<stdlib.h>#
2015-08-11 19:04:12 2480
原创 结构体练习统计学生成绩
#include<stdlib.h>#include<string.h>#include<iostream>using namespace std;typedef struct{ int num; char name[10]; int yuwen; int shuxue; int yingyu; double avg;}student;v
2015-08-06 23:38:23 788
原创 学习指针型函数和指向函数的指针
#include<stdlib.h>#include<string>#include<math.h>#include<iostream>using namespace std;char *str(char *a , char *b);int main(){ char str1[] = "Hello "; char str2[] = "Welcome C++";
2015-08-03 23:33:18 397
原创 练习使用条件编译
#include<stdlib.h>#include<string>#include<math.h>#include<iostream>#define PI 3.1415926using namespace std;int main(){ double s = 0, r, c; cout<<"输入半径 r = "; cin>>r;#ifdef PI
2015-08-02 20:39:10 274
原创 自己编写实现strcat()和strcmp()函数
#include<stdlib.h>#include<string>#include<math.h>#include<iostream>using namespace std;void cat (char array1[] ,int m , char array2[] ,int n ); //m,n分别为数组的长度!void cmp (char array1[] ,int m , c
2015-08-01 12:56:41 1837
原创 选择排序
算法: 把未排序的部分的最小值找出插入到已排序的后边,内层遍历完一次就找到一个最小的,外层控制插入到已排序的后面。#include<stdlib.h>#include<string>#include<math.h>#include<iostream>using namespace std;template<typename T , int size>void sort ( T
2015-07-29 13:22:00 361
原创 ********冒泡排序算法**********
#include<stdlib.h>#include<string>#include<math.h>#include<iostream>using namespace std;void maopao (int array[] , int n);int main(){ int array[10]; int n; cout<<"输入要排序的10个数字:";
2015-07-28 11:10:08 346
原创 输出(x/1!)+(x*x*x/3!)+(x*x*x*x*x/5!)+````
学习使用递归算法#include<stdlib.h>#include<string>#include<math.h>#include<iostream>using namespace std;double digui (double x,double n);double jich (double x);int main(){ double x, n; cout<<"输
2015-07-26 16:55:00 743
原创 递归实现求Fibonacci数列的第n项
#include<stdlib.h>#include<string>#include<math.h>#include<iostream>using namespace std;int jich (int x);int main(){ int n; cout<<"输出数列的第n项:"; cin>>n; cout<<"Fibonacci数列的第n个数为:"<
2015-07-25 21:52:31 5415 1
原创 杨辉三角7.24
杨辉三角7.24算法: 1.本题只考虑到了行,每行的输出用一个数组实现,b[20]; 2.下一行等以上一行的前后两个元素相加;把a[20]当成临时储存上一行的数组;#include<string.h>#include<stdlib.h>#include<iostream>using namespace std;int main(){ int a[20] = {0
2015-07-24 16:51:51 371
原创 strcat()函数与strlen()函数与strcpy()的使用
trcat()函数与strlen()函数(7.21)#include<string.h>#include<stdlib.h>#include<iostream>using namespace std;int main(){ char str1[100], str2[100]; cin>>str1; cin>>str2; //cout<<str1<<"\n";
2015-07-21 22:51:33 681
原创 gets()与puts()和cin>>与cout<<的比较
—–gets()与puts()和cin>>与cout<<的比较(7.21)—–#include<string.h>#include<stdlib.h>#include<iostream>using namespace std;int main(){ char a[100], b[100]; cout<<"输入一个字符串(gets方式):"; gets (a);
2015-07-21 22:45:00 2322
原创 1000以内水仙花数(嵌套循环)
*1000以内水仙花数(嵌套循环) 7.20*水仙花数:(各位的立方和等于该数值本身) 算法实现: 1.首先定义三个变量把这个数分解成为百位,十位,和个位。 2.每一个数 int n又可以用(百位*100+十位*10+个位)间接求得。 3.再判断是否 int n与各个位的立方之和 int m相等即可。*#include
2015-07-20 18:34:13 2317
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人