1. Django 프로젝트 urls 설정

vi mysite/urls.py

from django.conf.urls import url, include

from django.contrib import admin


urlpatterns = [

  url(r'^admin/', admin.site.urls),

  url(r'', include('demo.urls')),

]

cd demo

vi urls.py

from django.conf.urls import url

from . import views


urlpatterns = [

  url(r'^demo/$',views.demo_base.as_view(), name='demo_base'),

]


2. Django 프로젝트 views 설정

vi views.py

# -*- coding: utf-8 -*-

from __future__ import unicode_literals


from django.shortcuts import render

from django.views import View


# Create your views here.

class demo_base(View):

  def get(self, request, *args, **kwargs):

    return render(request, 'demo/demo_base.html', context={})


3. Django 프로젝트 html 생성

mkdir -p templates/demo

vi templates/demo/demo_base.html

<!doctype html>

<html lang="ko">

<html>

  <head>

    <meta charset="utf-8">

    <title>Django Demo</title>

  </head>


  <body>

    <a href="http://poorman.tistory.com">

      <img src="https://t1.daumcdn.net/cfile/tistory/2368C93A587F63331A"> &nbsp

      Poorman Tistory

    </a>

  </body>


</html>


- 결과

http://~:8080/demo


0. Django 장고 프로젝트 경로 설정

project_path = './demo'

app_name = 'demo'


1. Django 장고 프로젝트 생성

django-admin startproject mysite $project_path


2. Django 장고 프로젝트 APP 생성

cd $project_path

python manage.py migrate

python manage.py startapp $app_name


vi mysite/settings.py

ALLOWED_HOSTS = [

'192.168.0.1',

]


INSTALLED_APPS = [

    'django.contrib.admin',

    'django.contrib.auth',

    'django.contrib.contenttypes',

    'django.contrib.sessions',

    'django.contrib.messages',

    'django.contrib.staticfiles',

    'demo',

]


TIME_ZONE = 'Asia/Seoul'

python manage.py makemigrations $app_name

python manage.py migrate $app_name


3. Django 장고 프로젝트 슈퍼 유저 생성

python manage.py createsuperuser


4. Django 장고 프로젝트 실행

python manage.py runserver 0:8000


- 결과

http://~:8080/


How to use argparse  FLAGS




하둡 어플리케이션은 보통 Mapper -> Shuffle -> Reducer 순으로 작업을 진행한다.

파이썬 예제와 함께 각각의 결과물을 확인한다.

1. Mapper


$ cat wordcount_mapper.py | python ./wordcount_mapper.py > output_mapper.txt
$ cat output_mapper.txt
import	1
sys	1
for	1
line	1
in	1
sys.stdin:	1
line	1
=	1
line.strip()	1
keys	1
=	1
line.split()	1
for	1
key	1
in	1
keys:	1
value	1
=	1
1	1
print("{0}\t{1}".format(key,value))	1


2. Shuffle


$ cat output_mapper.txt | sort > output_sort.txt
$ cat output_sort.txt
=	1
=	1
=	1
1	1
for	1
for	1
import	1
in	1
in	1
key	1
keys:	1
keys	1
line	1
line	1
line.split()	1
line.strip()	1
print("{0}\t{1}".format(key,value))	1
sys	1
sys.stdin:	1
value	1


3. Reducer


$ cat output_sort.txt | python wordcount_reducer.py > output_reducer.txt
$ cat output_reducer.txt 
=	3
1	1
for	2
import	1
in	2
key	1
keys:	1
keys	1
line	2
line.split()	1
line.strip()	1
print("{0}\t{1}".format(key,value))	1
sys	1
sys.stdin:	1
value	1


4. Mapper | Shuffle | Reducer


$ cat wordcount_mapper.py | python wordcount_mapper.py | sort | python wordcount_reducer.py > output.txt
$ cat output.txt
=	3
1	1
for	2
import	1
in	2
key	1
keys:	1
keys	1
line	2
line.split()	1
line.strip()	1
print("{0}\t{1}".format(key,value))	1
sys	1
sys.stdin:	1
value	1





딥 러닝에 대해 독학을 하면서 정리한 걸 적고 있습니다.

전공과 무관하며 전문적인 지식이 아니므로 개인적인 의견과 부족하고 틀린 점이 많습니다.

추가 지식 및 잘못된 점을 지적해주시면 공부하는데 많은 도움이 되겠습니다. 감사합니다^^

- 푸어맨


[Reference]

(Writing Hadoop Applications in Python with Hadoop Streaming) http://www.glennklockwood.com/data-intensive/hadoop/streaming.htm

(하둡 스트리밍을 활용한 word count 예제) http://blog.acronym.co.kr/606

(파이썬 문자열 관련함수) http://agiantmind.tistory.com/31


+ Recent posts