표본공간 - 통계적 실험에서 발생가능한 모든 결과들의 집합, S로 표시


예를 들어 주사위 두개를 던진다 가정하였을 경우, 주사위 두개로 나올수 있는 모든 경우의 수를 표본공간이라 부른다.



1/6 * 1/6 = 1/36


사상 -표본공간의 부분집합


표본 공간안에서 우리가 관심있는 부분은 특정 상태를 나타내는 event 일것이다. 만약 6을 뺀 나머지 숫자로 조합할수 있는 경우의 수가 특정 events라고 한다면 사상은 밑의 그림과 같다. 



저작자 표시
신고

표본분산(Sample variance)


관측된 표본의 산포를 측정하기 위한것임. 분산은 평균으로부터 편차제곱의 평균을 나타낸것. 다시 말해 모 집단의 평균값으로 부터 각 변수를 각각 빼준값에 제곱을 한후 n-1 로 나누면 표본분산을 구할수 있다. 제곱을 하는 이유는 각 평균의 차를 합하면 결국 값이 0 이 나오게 된다. 이를 방지하기 위해 각 평균의 차를 제곱하여 모든수를 양수로 만든후 합한다. 결국 표준편차를 구할때 루트를 씌우면 제곱과 함께 루트가 벗겨지므로 실제 편차를 구할수 있다??? 













표준편차(Standard deviation)


위의 식에 루트를 씌우면 표준편차임.... 하....Text Mining 을 위해서는 확률과 통계는 필수인거 같음 ㅠㅠ 아직은 초짜이지만...곧 화통, 미적, 마스터 해버리겠음....ㅡㅡ!!


저작자 표시
신고



PutMerge 프로그램


hadoop 에서는 getmerge 라는 명령어를 제공하는데 이 명령어는 HDFS 안에 있는 다수의 파일들을 로컬 머신에 복사할때 하나의 파일로 통합해주는 역활을 한다. 요번 예제는 getmerge 와는 반대인 로컬머신에 존재하는 다수의 파일을 HDFS 안에 하나의 통합된 파일로 복사하는 PutMerge 소스를 구현해보겠다. 


!! start-all.sh 로 HDFS on!!


소스 편집


[root@master hadoop-1.0.3]# vi PutMerge.java   // 소스를 생성하고 편집


import java.io.IOException;


import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.fs.FSDataInputStream;

import org.apache.hadoop.fs.FSDataOutputStream;

import org.apache.hadoop.fs.FileStatus;

import org.apache.hadoop.fs.FileSystem;

import org.apache.hadoop.fs.Path;


public class PutMerge {

        public static void main(String[] args) throws IOException {


                Configuration conf = new Configuration();    

                FileSystem hdfs = FileSystem.get(conf);    //HDFS 와 인터페이스 하기 위한 클래스

                FileSystem local = FileSystem.getLocal(conf);    //LOCAL 시스템과 인터페이스 하기 위한 클래스


                Path inputDir = new Path(args[0]);

                Path hdfsFile = new Path(args[1]);

                try {

                        FileStatus[] inputFiles = local.listStatus(inputDir);    //path 객체와, 파일과 디렉터리의 메타 데이터를 저장

                        FSDataOutputStream out = hdfs.create(hdfsFile);        //HDFS 에 파일을 쓰기 위한 객체


                        for (int i = 0; i<inputFiles.length; i++) {                // 아마 파일 갯수 만큼 반복되는거 같음

                                System.out.println(inputFiles[i].getPath().getName());

                                FSDataInputStream in = local.open(inputFiles[i].getPath());  //로컬 입력 스트림 열기    

                                byte buffer[] = new byte[256];

                                int bytesRead = 0;

                                while( (bytesRead = in.read(buffer)) > 0) {        //바이트 단위로 HDFS 파일에 쓰기

                                        out.write(buffer, 0, bytesRead);

                                }

                                in.close();

                        }

                        out.close();

                } catch (IOException e) {

                        e.printStackTrace();

                }

        }

}



  테스트


위에서 짠 java 소스 파일을 컴파일!!
  
[root@master hadoop-1.0.3]# javac -cp hadoop-core-1.0.3.jar -d classes PutMerge.java

// 만약 commons 객체 를 찾지 못하는 오류가 뜬다면  아래와 같이 다시 컴파일...
[root@master hadoop-1.0.3]# javac -cp hadoop-core-1.0.3.jar:lib/commons-cli-1.2.jar -d classes PutMerge.java

// classpath 설정이 재대로 되질 않아 commons 객체를 인식하지 못하는 오류같다...


// jar 파일로 압축후 실행 

[root@master hadoop-1.0.3]# jar -cvf jars/putmerge.jar -C classes/ .
Manifest를 추가함
추가하는 중: PutMerge.class(입력 = 1822) (출력 = 930)(48%를 감소함)

// inputtext 폴더안에 두개의 txt파일을 생성하고 실행!!
[root@master hadoop-1.0.3]# hadoop jar jars/putmerge.jar PutMerge inputtext word-merge.txt 
input1.txt
input2.txt
[root@master hadoop-1.0.3]# hadoop fs -ls
Found 3 items
-rw-r--r--   1 root supergroup         25 2012-08-31 17:16 /user/root/input
drwxr-xr-x   - root supergroup          0 2012-08-31 17:26 /user/root/output
-rw-r--r--   1 root supergroup        109 2012-09-01 02:39 /user/root/word-merge.txt   // 통합된 txt파일 생성

[root@master hadoop-1.0.3]# hadoop fs -cat word-merge.txt        //두개의 txt 파일이 하나로 합쳐져서 출력된다.!!
what is Hadoop?
ok! now let's study Hadoop!!!!
a few minutes later....
What the hell !!! what does it mean?

저작자 표시
신고