블로그 이미지
정홍주
Azure에 대한 내용뿐만 아니라 새로운 트렌드로 빅데이터, BI, SharePoint, 앱 등의 내용을 다룹니다.

calendar

        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  

Notice

2015.11.01 08:00 Microsft Azure/고급 분석

 

9가지 오픈소스 빅 데이터 기술

 

빅 데이터에 대한 관심은 여러 산업 분야에서 부각되는 이슈입니다. 이와 관련하여 클라우드에서도 다양한 빅 데이터 관련 기술이나 플랫폼을 제공하고 있습니다. Microsoft Azure 에서는 100% Apache HadoopHDInsight부터해서 다양한 기능을 아래 그림처럼 제공하고 있습니다.

요번글은 9가지 주목해야 할 9가지 오픈소스 빅 데이터 기술에 대한 글이 있어 정리해보았습니다. 자세한 정보는 아래 링크를 통해 확인할 수 있습니다.

http://www.ciokorea.com/slideshow/12897

 

1.     Hadoop

HDFS MapReduce로 구성되어 있으며 빅 데이터를 분할한 뒤 다수의 Node에서 병렬로 처리하며 현재 Hadoop은 빅 데이터를 구성하는 정형, 반정형, 비정형 데이터를 저장하는 가장 대중적인 기술

2.     R

통계적 컴퓨팅과 가상화를 지원하는 소프트웨어로 대량의 데이터 셋을 통계적으로 분석하기 위한 툴

3.     캐스케이딩(Cascading)

Hadoop용 오픈소스 소프트웨어 추상화 계층으로, Hadoop Cluster에서 Data processing workflow를 제작, 실행할 수 있도록 지원하며 광고 타겟팅(ad targeting)이나 로그 파일 분석, 생물정보학, 기기 학습, 예측적 애널리틱스, 웹 컨텐츠 마이닝, ETL 애플리케이션 등에 사용

4.     스크라이브(Scribe)

페이스북이 개발한 서버로, 여러 서버들에서 실시간으로 스트림되는 로그 데이터를 종합하는 역할

5.     엘라스틱서치

RESTful 오픈소스 검색 서버로 특별한 설정 없이도 거의 실시간의 검색과 멀티테넌시(multitenancy)를 지원하는 스케일러블 솔루션(scalable solution)

6.     Apache HBase

구글의 빅테이블(BigTable)을 본떠 자바로 작성된 오픈소스 Column 기반 NoSQL, HDFS에 기반한 구동을 목적으로 설계

7.     아파치 카산드라

페이스북이 개발한 오픈소스 분산형 데이터베이스 관리 시스템으로 NoSQL

8.     Mongo DB

Dynamic schema(동적 스키마)를 통해 정형 데이터를 BSON(Binary JSON)이라고 하는 JSON 형태의 문서로 저장하는 NoSQL

9.     Apach CouchDB

JSON을 이용해 데이터를 저장하고 있으며 자바스크립트를 쿼리 언어(query language), MapReduce HTTP API로 사용하는 오픈소스 NoSQL

 

데이터 과학자로서 위 중에서 Hadoop(Sqoop/Flume, Hive) R 은 가장 기본이며 NoSQL 중의 하나를 장착하는 것은 필수라고 생각합니다.

 

신고
posted by 정홍주
2015.09.25 08:00 Microsft Azure/고급 분석

 

Azure HDInsight 평가판

 

앞에서 HDInsight 등에 대한 정보를 알려드렸는데 HDInsight를 테스트하려면 먼저 Azure를 구독해야 합니다. Azure 구독을 위해서는 신용정보 확인이 필요해서 번거로울 수도 있습니다.

아래 링크를 확인해보시면 별도로 Azure 구독을 하지 않고 7일동안 Hadoop 클러스터를 테스트할 수 있습니다.

https://azure.microsoft.com/ko-kr/blog/try-hadoop-on-azure-hdinsight-7/

 

아래 정보를 위 링크에 있는 메일로 보내면 4 노드의 클러스터를 7일동안 평가판으로 이용할 수 있습니다.

First and last name

Company/organization

Work email address

Workload desired: Hadoop (Hive/Pig/MapReduce), HBase, Storm or Spark

Brief one line description stating intended use for trial period (ex. Learning hive, comparing to on-prem, building PoC)

 

평가판 7일이 끝나고 나면 설문조사를 링크를 받게 됩니다. 필요하다면 간단히 이메일로 신청하여 테스트해볼 수 있으니 참고하십시오.

 

신고
posted by 정홍주
2015.09.25 08:00 Microsft Azure/고급 분석

 

HDInsight Sample – Sensor Data Analysis

 

Hive Editor 를 통해 수집된 데이터로부터 Hive 쿼리를 통해 Hive 테이블을 생성하고 이를 Excel 2013에서 액세스해서 시각화 하는 예제를 알아보겠습니다. HDInsight Query Console 에 보면 Sensor Data Analysis 예제를 확인할 수 있으며 Building 데이터와 HAV (냉난방기) 데이터를 수집하여 Hive 분석하는 내용을 아래 그림처럼 설명해주고 있습니다.

먼저 데이터를 살펴보아야 할 것 같은데요, 일단 데이터는 이미 HDinsight에 연결된 저장소 계정의 컨테이너에 저장되어 있습니다. 데이터를 한번 열어보면 아래와 같은 CSV로 구성되어 있습니다. 전세계 빌딩에서 온도 정보가 수집된 데이터로 보시면 됩니다.

데이터를 수집하였으며 Hive 테이블로 EXTERNAL 테이블을 생성해보겠습니다. 아래와 같은 HIVE 쿼리 구문을 생성합니다. 저장소의 ‘,’로 구분된 CSV 파일로부터 hvac 라는 테이블을 생성합니다. Building 테이블도 마찬가지로 생성합니다.

DROP TABLE IF EXISTS hvac;

CREATE EXTERNAL TABLE hvac(date STRING, time STRING, targettemp BIGINT,

    actualtemp BIGINT,

    system BIGINT,

    systemage BIGINT,

    buildingid BIGINT)

ROW FORMAT DELIMITED FIELDS TERMINATED BY ','

STORED AS TEXTFILE LOCATION

'wasb://hbddemo@hbd.blob.core.windows.net/HdiSamples/SensorSampleData/hvac/';

 

위에서 생성한 Hvac 테이블로부터 분석에서 원하는 로직을 통해 데이터를 가공하거나 그룹핑, 필터링 등을 수행할 수 있습니다. 여기서는 temp_diff, extremetemp 라는 열을 통해 ‘HOT, COLD, NORMAL’에 대한 정보가 추가되는 hvac_temperatures 테이블을 생성합니다.

DROP TABLE IF EXISTS hvac_temperatures;

CREATE TABLE hvac_temperatures AS

SELECT *, targettemp - actualtemp AS temp_diff,

    IF((targettemp - actualtemp) > 5, 'COLD',

    IF((targettemp - actualtemp) < -5, 'HOT', 'NORMAL')) AS temprange,

    IF((targettemp - actualtemp) > 5, '1', IF((targettemp - actualtemp) < -5, '1', 0)) AS extremetemp

FROM hvac;

그리고 hvac_temperatures 테이블과 Building 테이블을 조인하여 국가, 빌딩년도 등의 정보를 가진 hvac_building 테이블을 생성합니다.

 

쿼리를 하나씩 실행해도 되고 한꺼번에 쿼리를 실행해도 됩니다.

생성된 Hive 테이블을 SELECT 하는 쿼리를 실행하여 결과를 확인해도 되며 예제에서처럼 Hive ODBC Driver 를 통해 연결하여 Excel에서도 시각화하여 확인이 가능합니다. Hive ODBC Driver를 설치하고 아래와 같이 클러스터 주소와 사용자 계정, 비밀번호를 입력하여 DSN을 설정합니다.

Excel 2013PowerPivot 에서 외부 데이터 가져오기를 ODBC를 통해 진행하면 아래 그림과 같이 HDInsightHive 테이블을 확인할 수 있습니다.

피벗차트 또는 피벗테이블을 통해 시각화를 진행할 수 있습니다.

 

간략히 HDInsight Query Console 에서 Hive Query를 실행하여 시각화하는 내용까지 살펴보았습니다.

 

 

신고
posted by 정홍주
TAG 정홍주
2015.08.28 08:00 Microsft Azure/고급 분석

Microsoft Azure HDInsight 쿼리 콘솔

 

이번 글에서는 Microsoft AzureHDInsight에서 쿼리 콘솔을 간략히 살펴보겠습니다. Azure 관리포털에서 HDInsight를 생성하였다면 이름을 클릭하여 대시보드 메뉴 아래에서 쿼리 콘솔 메뉴를 클릭합니다.

그러면 인증 창이 나타나는데 인증에 필요한 계정과 비밀번호는 HDInsight를 생성시 입력한 관리자 계정과 비밀번호에 대한 정보를 입력하면 됩니다. 그러면 Azure의 웹 사이트 로그와 저장소에 대한 분석을 할 수 있는 솔루션과 기본적으로 제공되는 샘플 데이터를 위한 솔루션을 볼 수 있습니다.

샘플 데이터를 위한 솔루션에서 적절한 것을 선택하고 설명대로 따라가면 Hive 등의 결과를 바로 확인할 수 있습니다.

Hive 쿼리에 익숙하여 직접 Hive 쿼리를 입력하고 작업을 제출할 수 있는 Hive Editor도 볼 수 있습니다.

제출된 작업의 기록을 확인하여 결과, 오류 등을 확인할 수 있습니다.

HDFS에서 파일을 직접 확인할 수 있는 File Browser 가 있습니다. 유용하게 사용할 수 있습니다.

최근에 추가된 내용으로 Hadoop 의 데이터 노드 등에 대한 정보를 확인하고 YarnApp에 대한 정보를 확인할 수 있습니다.

 

쿼리 콘솔을 통해 다양한 작업 등을 손쉽게 진행할 수 있습니다.

다음 글에서는 샘플 데이터를 위한 솔루션에서 센서 데이터 분석을 Hive 를 통해 진행해보겠습니다.

 

 

신고

'Microsft Azure > 고급 분석' 카테고리의 다른 글

Azure HDInsight 평가판  (0) 2015.09.25
HDInsight Sample – Sensor Data Analysis  (0) 2015.09.25
Microsoft Azure HDInsight 쿼리 콘솔  (0) 2015.08.28
HDInsight Hadoop – Word Count(2)  (0) 2015.08.14
HDInsight Hadoop – Word Count(1)  (0) 2015.08.07
HDInsight - Hadoop 시작  (0) 2015.08.07
posted by 정홍주
2015.08.14 08:00 Microsft Azure/고급 분석

 

HDInsight Hadoop – Word Count(2)

 

앞에서 Hadoop Command 창에서 Word Count를 실행해보았습니다. 사실 Hadoop에 연결해야 하는 번거로움이 있기는 합니다. Microsoft AzurePowerShell을 통해 원격에서도 Word Count 등의 MapReduce 작업을 실행할 수 있습니다. Azure PowerShellhttp://azure.microsoft.com/ko-kr/ 의 다운로드 링크를 통해 설치할 수 있습니다.

아래는 PowerShell ISE를 통해 진행합니다.

 

l  Word Count

# 변수 선언

$subscriptionName =Azure subscription name"

$clusterName = "HDInsight cluster name"

 

# Azure 로그온, 구독 선택

Import-AzurePublishSettingsFile "G:\HDInsight\Azure.publishsettings"

Select-AzureSubscription $subscriptionName

 

 

# MapReduce 작업 (한줄로 실행)

$wordCountJobDefinition = New-AzureHDInsightMapReduceJobDefinition

-JarFile "wasb:///example/jars/hadoop-mapreduce-examples.jar"

-ClassName "wordcount"

-Arguments "wasb:///example/data/gutenberg/davinci.txt", "wasb:///example/data/WordCountOutput"

 

# 작업 제출 (한줄로 실행)

$wordCountJob = Start-AzureHDInsightJob -Cluster $clusterName

-JobDefinition $wordCountJobDefinition | Wait-AzureHDInsightJob -WaitTimeoutInSeconds 3600 

 

 

# 작업 결과 확인

Get-AzureHDInsightJobOutput -Cluster $clusterName -JobId $wordCountJob.JobId -StandardError

 

Word CountPowerShell hadoop-mapreduce-examples.jar 파일을 통해 davinci.txt 파일을 처리한 결과입니다. MapReduce 작업 결과를 확인할 수 있습니다.

 

 

 

실제 출력 파일이 생성된 것을 관리 포털의 저장소, 컨테이너에서 확인 가능합니다.

 

 

l 출력 결과 문자열 확인

 

출력 결과 파일을 다운로드하여 cat 명령으로 특정 문자를 검색할 수 있습니다. 저장소에 있는 출력 파일을 다운로드하여 결과를 화면에 표시해줍니다.

 

# 변수 선언

$subscriptionName =Azure subscription name"

$clusterName = "HDInsight cluster name"

$storageAccountName = "Azure storage account name"

$containerName = "Blob storage container name

 

# 저장소 계정 정보

$storageAccountKey = Get-AzureStorageKey $storageAccountName | %{ $_.Primary }

$storageContext = New-AzureStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageAccountKey 

 

# 작업 결과 다운로드 (한줄로 실행)

Get-AzureStorageBlobContent -Container $ContainerName

-Blob example/data/WordCountOutput/part-r-00000 -Context $storageContext -Force

 

cat ./example/data/WordCountOutput/part-r-00000 | findstr "there"

 

아래는 위 PowerShell의 결과입니다.

 hadoop-mapreduce-examples.jar MapReduce 함수는 아래 링크를 참고할 수 있습니다.

https://azure.microsoft.com/ko-kr/documentation/articles/hdinsight-develop-deploy-java-mapreduce/

매번 작업에 jar 파일을 생성하기에는 제한적이며 보다 더 쉽게 구성할 수 있도록 Hive, Pig 등을 제공하고 있습니다. 다음 글에서는 Hive를 통해 MapReduce 작업을 살펴 보겠습니다.

 

 

신고
posted by 정홍주
2015.08.07 08:30 Microsft Azure/고급 분석

HDInsight Hadoop – Word Count(1)

 

Hadoop 클러스터를 원격으로 연결하여 Hadoop Command 에서 아래와 같은 명령어로 Word Count MapReduce 작업을 실행하여 결과를 확인해보겠습니다.

MapReduce 작업에 대한 설명은 아래 링크를 확인할 수 있습니다.

https://azure.microsoft.com/ko-kr/documentation/articles/hdinsight-use-mapreduce/

 

MapReduce 관련 작업을 실행하기 위해 반드시 Hadoop Command 에서 실행해야 하는 것은 아닙니다. Azure PowerShell을 통해 Hadoop 클러스터가 아닌 원격에서 실행할 수 도 있습니다.

아래 구문을 하나씩 복사하여 실행할 수 있습니다. Hadoop 버전을 확인하여 진행하면 됩니다.

cd %hadoop_home%

hadoop fs -mkdir /user

hadoop fs -mkdir /user/demo

hadoop fs -copyFromLocal C:\apps\dist\examples\data\gutenberg\davinci.txt /user/demo

hadoop fs -ls /user/demo

hadoop jar C:\apps\dist\hadoop-2.4.0.2.1.15.1-0001\share\hadoop\mapreduce\hadoop-mapreduce-examples-2.4.0.2.1.15.1-0001.jar wordcount /user/demo/*.txt /user/demo/WordCount_Output

hadoop fs -cat /user/demo/WordCount_Output/part-r-00000 | findstr "there"

 

처음은 user 아래에 demo 라는 폴더를 생성합니다.

hadoop fs -mkdir /user/demo

 

WordCount 할 수 있는 원본 파일을 복사해옵니다. 원본 파일은 examples 폴더에 들어가 있습니다.

hadoop fs -copyFromLocal C:\apps\dist\examples\data\gutenberg\davinci.txt /user/demo

 

파일을 확인하기 위해 ls 명령어로 확인해봅니다.

hadoop fs -ls /user/demo

 

이제 jar 파일을 통해 Wordcount 라는 클래스를 통해 Map 함수와 Reduce 함수를 수행하고 출력은 WordCount_Output 이라는 폴더 아래에 생성하도록 jar 명령어를 실행합니다. 마찬가지로 jar 파일은 examples 폴더에 들어가 있습니다. 출력 결과를 보면 Map 작업과 Reduce 작업을 확인할 수 있습니다.

hadoop jar C:\apps\dist\hadoop-2.4.0.2.1.15.1-0001\share\hadoop\mapreduce\hadoop-mapreduce-examples-2.4.0.2.1.15.1-0001.jar wordcount /user/demo/*.txt /user/demo/WordCount_Output

 

결과 파일이 생성되어 있고 내부 내용을 보기 위해 cat, findstr 명령어를 실행합니다.

hadoop fs -cat /user/demo/WordCount_Output/part-r-00000 | findstr "there"

 다음 글에서는 PowerShell을 통해 Word CountHadoop 클러스터에서 실행해보겠습니다.

신고
posted by 정홍주
TAG 정홍주
2015.08.07 08:00 Microsft Azure/고급 분석

 

HDInsight - Hadoop 시작

 

요번 글에서는 Microsoft Azure에서 HDInsightHadoop 을 만들어보겠습니다. 빅 데이터의 핵심이라고 할 수 있는 부분인 HadoopWindows Server에 구성하는 내용입니다.

관리 포털로 이동하여 새로 만들기에서 HDInsight에서 Hadoop을 선택합니다. 사전에 저장소를 생성해야 합니다.

 

시간이 약 30분이내로 흐르면 생성이 완료되어 실행 중으로 메뉴가 바뀌게 됩니다.

 

이름을 클릭하여 구성 메뉴로 이동합니다. 아래 쪽을 보면 원격 사용 메뉴를 확인할 수 있습니다.

 

원격 사용 메뉴를 클릭하여 RDP 사용자 이름과 암호, 만료날짜를 입력합니다.

 

시간이 지나면 연결 메뉴가 활성화 됩니다. 연결 메뉴를 클릭하여 위에서 입력한 RDP 사용자 이름과 암호로 로그온 합니다.

 

로그온하면 Windows Server 2012 R2 에서 바탕 화면이 바로 가기를 볼 수 있습니다.

 

Hadoop Command 을 열고 아래 명령어를 입력하면 Hadoop 버전을 알 수 있습니다.

hadoop version

 다음 글에서는 Hadoop Command 창에서 Word Count를 실행해보겠습니다.

 

신고

'Microsft Azure > 고급 분석' 카테고리의 다른 글

HDInsight Hadoop – Word Count(2)  (0) 2015.08.14
HDInsight Hadoop – Word Count(1)  (0) 2015.08.07
HDInsight - Hadoop 시작  (0) 2015.08.07
Big Data와 Microsoft Azure HDInsight  (0) 2015.07.19
Azure Machine Learning - 데모  (0) 2015.05.02
HDInsight에서 HBase 지원  (0) 2014.06.16
posted by 정홍주
TAG 정홍주
2015.07.19 20:54 Microsft Azure/고급 분석

 Big DataMicrosoft Azure HDInsight

 

Big DataMicrosoft Azure HDInsight에 대한 내용으로 연세대학교 원주캠퍼스에서 특강을 했습니다. 3월에는 캡스톤 평가에도 참석하였으며 IoT 관련하여 8월에 다시 방문할 예정입니다.

 

데이터 과학자에 대한 내용을 강조했으며, Big DataHadoop 내용이 의공학과 관련하여 학생들과 업체에 많은 도움이 되었으면 합니다.

 

의료관련 빅 데이터는 액세스가 어려웠지만 심평원 링크를 참고하여 직접 방문하거나 원격으로 액세스 할 수 있습니다.

http://opendata.hira.or.kr/home.do

 

빅데이터 전략센터에 대한 링크도 참고할 수 있습니다.

https://kbig.kr/

 

 

신고

'Microsft Azure > 고급 분석' 카테고리의 다른 글

HDInsight Hadoop – Word Count(1)  (0) 2015.08.07
HDInsight - Hadoop 시작  (0) 2015.08.07
Big Data와 Microsoft Azure HDInsight  (0) 2015.07.19
Azure Machine Learning - 데모  (0) 2015.05.02
HDInsight에서 HBase 지원  (0) 2014.06.16
HDInsight 3.0 미리보기  (0) 2014.03.01
posted by 정홍주
TAG 정홍주
2015.05.02 08:00 Microsft Azure/고급 분석

Azure Machine Learning - 데모

 

BUILD 관련해서 사진을 분석해서 나이를 알려주는 사이트가 많은 관심을 받았습니다. 아래 사이트를 방문해서 사진을 올려 나이를 한번 확인해보십시오~

아래 사이트를 참고해서 테스트 해볼 수 있습니다.

http://how-old.net/ 

나이를 확인한 사람들 중 실제나이보다 결과가 더 많게 나오면 불만이 많고 동안으로 나오면 조용한 것 같습니다. 안경을 벗어서 해보면 또 달라지기는 합니다, 또는 동양인은 예상과 다르다고들 하기도 합니다.

 

사진을 통한 결과에서 나이가 높다 낫다 라고 하는 것보다는 위 사이트의 링크를 통해서 관련 기술을 살펴볼 수 있습니다.

http://blog.how-old.net/

 

이 데모는 Azure Services를 이용해서 쉽고 빠르게 인텔리젼트한 응용 프로그램을 만들 수 있는지를 보여주는 애플리케이션입니다. Machine Learning을 통해 나이와 성별을 추출하고 스트림 분석(Azure Stream Analytics )을 통해 실시간 정보를 얻고 Bing Search API를 통해 지리적 정보를 확인하고 Power BI를 통해 대시보드를 제공하는 내용으로 이루어져 있습니다. 제게는 상당히 흥미로운 데모입니다.

해당 Azure Service는 얼굴 감지 API(Face Detection API)이며 Machine Learning 을 통해 사용되었습니다. 아래 정보를 통해 확인이 가능합니다.

http://gallery.azureml.net/MachineLearningAPI/b0b2598aa46c4f44a08af8891e415cc7

 

대학생 멘토링 프로젝트에서 얼굴 출석부 앱을 만드는 것이 있던데 MLFace API를 통해 앱 프로젝트를 좀 더 향상해볼 수 있을 것도 같습니다.

 

Microsoft Azure에서는 분석 관련 서비스를 다양하게 제공하고 있습니다. 아래 주소에서 확인이 가능하며 계속 업데이트 되고 있습니다.

l  HDInsight : 아파치 하둡

l  Machine Learning: 기계학습, 예측 분석

l  Azure Stream Analytics: 실시간 스트림 분석

l  Data Factory: 데이터 변환, 오케스트레이션

l  Event Hub: 이벤트 데이터 수집, 처리
 

 

Machine Learning에 대해서는 스터디나 공부를 좀 더 해보고 싶기는 합니다. Azure Analytics – 빅데이터, 고급 분석 등에 대한 스터디나 그룹이 구성되어 보다 더 발전했으면 좋겠네요~

 

신고

'Microsft Azure > 고급 분석' 카테고리의 다른 글

HDInsight - Hadoop 시작  (0) 2015.08.07
Big Data와 Microsoft Azure HDInsight  (0) 2015.07.19
Azure Machine Learning - 데모  (0) 2015.05.02
HDInsight에서 HBase 지원  (0) 2014.06.16
HDInsight 3.0 미리보기  (0) 2014.03.01
Windows with HDP 2.0  (0) 2014.01.23
posted by 정홍주
2014.06.16 08:00 Microsft Azure/고급 분석

 

HDInsight에서 HBase 지원

 

Azure에서 Redis Cache 서비스를 제공한다는 소식이 나온지 얼마 안되었는데 이제부터 HDInsight 3.0 부터는 HBase 지원이 가능해졌습니다. HBaseColumn Data Store 방식의 NoSQL입니다. 현재는 Beta 기능입니다. Hive 공부 하고 써먹어보려니 HBase를 공부해야겠습니다.

 

자세한 정보는 아래 링크를 참고할 수 있습니다.

http://azure.microsoft.com/en-us/documentation/articles/hdinsight-hbase-get-started/

 

그리고 최신 Apache Hadoop 2.4 릴리즈로 업데이트되면서 Hive 쿼리를 아주 빠르게(기존보다 100) 지원하게 되었습니다. HDInsight를 통해 확인해볼 수 있습니다.

 

 

신고

'Microsft Azure > 고급 분석' 카테고리의 다른 글

Big Data와 Microsoft Azure HDInsight  (0) 2015.07.19
Azure Machine Learning - 데모  (0) 2015.05.02
HDInsight에서 HBase 지원  (0) 2014.06.16
HDInsight 3.0 미리보기  (0) 2014.03.01
Windows with HDP 2.0  (0) 2014.01.23
Windows Azure의 HDInsight 시작  (0) 2014.01.17
posted by 정홍주
prev 1 2 3 next

티스토리 툴바