필수설치순번구분프로그램명버전참고URL권고라이선스1Zip Program반디집7.09https://kr.bandisoft.com/bandizip/○2Web Server S/WNginX1.19.0http://nginx.org/en/download.html●3Window Service RegisterNSSM2.24http://nssm.cc/download◐4LanguagePHP7.4.7https://windows.php.net/download●5형상관리Git2.27.0https://git-scm.com/download/win○6OracleOracle instantclient19.6.0https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html●7의존성 관리자Composer1.10.8https://getcomposer.org/download/●8FrameWorklaravel7.xhttps://laravel.kr/docs/7.x/releases●개별설치순번구분프로그램명버전참고URL권고라이선스1FTPFileZilla3.48.1https://filezilla-project.org/download.php?show_all=1◐2SSHPuTTY0.74https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html◐3DB ToolsMySQL Workbench8.0.20https://dev.mysql.com/downloads/workbench/◐HeidiSQL'11.0https://www.heidisql.com/download.php●4Editor ToolsPHP Storm2020.1.2https://www.jetbrains.com/ko-kr/phpstorm/download/#section=windows●유료Sublime Text3211https://www.sublimetext.com/3○유료VS Code1.46https://code.visual 보안 경고창이 뜨면 액세스 허용(A)을 한다. )1. 설치파일 다운로드2. Install2.1 받은 설치파일을 D:NPC에 풀어준다.2.2 CMD 창을 열어 D:NPC{nssm 설치폴더}nssm.exe 가 존재하는곳까지 이동한다.2.3. CMD에 nssm install nginx 라고 명령어를 친다.2.4 NginX를 윈도우 서비스에 등록하기 위해 NginX가 있는 Path를 지정해준다.2.5 Startup directory는 자동으로 잡히게 되며 Service name은 nginx라고 적어준뒤 Install service 누르면 설치가 완료된다.( ISSUE : 설치가 정상적으로 되지 않았거나 일부 설정이 누락되었을경우 nssm remove {Service name} 명령어로 삭제후 재설치한다. )2.6 제어판 > 서비스를 열어 NginX 서비스를 시작시키고 실행 파일 경로를 확인한다.( ISSUE : NSSM으로 서비스 등록 후 NSSM 파일 위치 이동시 다시 서비스등록을 해야하니 주의해야한다. )2.7 브라우저를 띄워 localhost로 접속하면 웹 서비스가 정상적으로 동작할 경우 아래와 같은 화면이 뜬다."( ISSUE : apache, iis가 중복이 된다면 conf/nginx.conf 파일을 열어 포트 설정 변경 필요하다. )"1. 설치파일 다운로드2. Install2.1 받은 설치파일을 D:NPC에 풀어준다.2.2 D:NPC{NginX 폴더}confnginx.conf 파일을 열고 아래와 같이 수정한다.fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;2.3. CMD에 nssm install php7 이라고 명령어를 친다.PATH > D:NPC{PHP 설치경로}php-cgi.exeStartup directory > D:NPC{PHP 설치경로}중요!!!Arguments > -b 127.0.0.1:9371 -c D:NPC{PHP 설치경로}php.ini2.4it clone https://github.com/study/{프로젝트}.git* 개별 프로그램 설치에 Sourcetree를 이용하여 카피가능2.4 소스 CopyC:Usersusergithubstudy{프로젝트} => D:Project{프로젝트명}* conf/nginx.conf 파일 변경하여 웹루트 조정 가능함2.5 윈도우 대소문자 구분 설정 처리(Optional)소스 카피 경로에 원도우 대소문자 구분 하도록 설정 처리 필요하위 폴더 속성 반영 명령어https://stackoverflow.com/questions/51591091/apply-setcasesensitiveinfo-recursively-to-all-folders-and-subfolders소스 상위 폴더위치에서 명령어 실행 필요 예) D:Project{프로젝트}l>(Get-ChildItem -Recurse -Directory).FullName | ForEach-Object {fsutil.exe file setCaseSensitiveInfo $_ enable}대상 폴더만 적용됨https://www.howtogeek.com/354220/how-to-enable-case-sensitive-folders-on-windows-10/파워셀 관리자 모드에서 아래 명령 실행"fsutil.exe file setCaseSensitiveInfo ""D:Project{프로젝트}"" enable"지원하지 않는 기능일 경우 아래 명령 실행 후 재부팅https://4sysops.com/forums/topic/failed-to-enable-folder-case-sensitivity-in-windows-10/Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux1. 설치파일 다운로드2. Install2.1 다운로드2.2 압축해제2.3 System Path 설정(맨 위로 사용을 권장)2.4 재부팅1. 설치파일 다운로드CMD창을 열어 아래 경로로 이동하여 composer install을 실행한다.( ISSUE : install 오류시 이미 git에서 다운받은 composer가 구성되어 있으므로 composer update를 실행한다. Warning은 무시한다.)D:Project{프로젝트}>composer installComposer install / update 실행시 Warning은 무시해도 되지만 Fail이 나오거나 oci8 에러 내용이 나오면 다음과정 진행이 어렵다.반드시 해결하고 지나가야 하는 문제이니 많은 구글링이 필요하다. 그중에 해결할수 있는 방안을 아래에 적어두었다.★ oci8 Error1. oci8.dll 파일을 다운로드하여 D:NPC{PHP 설치경로}ext 와 system32에 넣는다.https://ko.dll-files.com/download/f17547ca9a1c799baf344ecc57b6c655/php_oci8.dll.html?c=d1NieDNZWUpXc3dRNHFJYm5xamJxdz09"2. Microsoft Visual C++ 설치하도록 한다. 아래의 버전을 권장하지만 안될경우 2010, 2008, 2005 버전을 설치해본다."https://www.microsoft.com/ko-kr/download/details.aspx?id=481453. php.ini 파일의 extension3. PHP 설정 수정(php.ini)3.1 D:NPC{PHP 설치경로}php.ini 파일을 열어 주석을 제거한다.( ISSUE : php.ini가 없을경우 php.ini-development 파일을 복사하여 생성하도록 한다. Composer설치시에도 생성가능하다. )3.2 php 서비스 재가동3.3 localhost 접속하여 phpinfo 확인3.4 CMD에서 php -m 명령어를 이용하여 PHP 모듈을 확인4. ENV 생성 및 APP_KEY 생성4.1 D:Project{프로젝트}.env 생성 (07.3 ENV Sheet 참고)D:Project{프.conf)5.1 D:NPC{PHP 설치경로}conf/nginx.conf 수정(07.5 nginx.conf Sheet 참고)"( ISSUE : Laravel Webroot는 설치 경로의 Public 폴더이며, 해당 폴더에 index.php가 존재한다. )"5.2 Local Host 파일 수정C:WindowsSystem32driversetchosts 파일을 연다.127.0.0.1 {프로젝트 URL}.localhost 라고 입력하고 저장한다.5.3 nginx 서비스 재시작6. composer를 통해 Laravel 설치1. Install1.1 CMD창을 열어 프로젝트를 만들고자 하는 폴더로 이동한다.1.2 Composer Create-Project를 통한 설치composer create-project --prefer-dist laravel/laravel {프로젝트명}1.3 myapp 폴더가 생성되고 그 안에는 Laravel 구성요소들이 깔끔하게 설치되어 있다.1.4 localhost로 들어가서 welcome blade를 띄운다면 제대로 본인만의 연습할수있는 프로젝트를 생성한 것이다."( ISSUE : env설정, nginx설정, host파일 조작은 앞에서 설명했듯이 별도로 잡아줘야한다. 이부분은 공부해서 welcome 블레이드를 띄우길 바란다. )"이로써 모든 로컬셋팅 환경구축이 끝났다.APP_NAME=LaravelAPP_ENV=localAPP_KEY=base64:APP_DEBUG=trueAPP_URL={프로젝트 URL}.localhostLOG_CHANNEL=stack# Sampleserver {listen 80;listen 443;server_name {프로젝트 URL}.localhost;root D:htdocs{프로젝트}public;index index.php index.html index.htm;#error_page 404 /404.html;# redirect server error pages to the static page /50x.ht;}}
Company Name Keyword Marketing 2019.07 By CreaterKeyword Marketing? Keyword(Long tail VS Short tail) Strategy(By M.Monstar ) Index 01 02 03Keyword Marketing? # 사용자 방문유도 # 홍보 및 매출의 증대효과인터넷 광고의 한 형태로 키워드 마케팅 또는 타겟팅 마케팅 이라고도 한다 . 사용자가 특정한 단어나 문구를 검색 하면 웹사이트 및 웹페이지의 정보 가 검색 페이지에 노출 . 마케팅의 기본 요소 4P( Product 제품 /Price 가격 /Place 장소 /Promotion 촉진 ) 중 인터넷의 발달로 인해 장소 + 촉진이 하나의 범주로 묶여 질 수 있는 만큼 키워드 마케팅은 매우 유용한 방법 사용자의 방문을 유도 하여 홍보 및 매출의 증대 효과 를 가져오게 하는 온라인 마케팅 방법중의 하나이다 . Keyword Marketing? 01 4Keyword Long tail VS Short tailLong tail Keyword 란 사용빈도수는 적으나 사용자의 의도를 구체적으로 표현해주는 Keyword 를 말한다 . 그래서 주로 1, 2 개 단어로 구성되기 보다는 3 개 이상의 단어로 조합된 일종의 문구 , 문장 형태가 많은데 그렇다고 항상 3 개 이상의 단어 조합이 Long tail Keyword 라고 말 할 수는 없다 . Long tail Keyword? 01 6Long tail Keyword Example 02 7 Samsung S8+ blue hybrid case 는 Case 에 비해 많은 단어로 구성되어 있고 그만큼 검색자의 의도가 자세하게 반영되어 있다 . Case 라는 키워드는 CellPhone Case 인지 Laptop Case 인지 확실치 않고 , 또 Case 를 구매하려는 것인지 혹은 Case 를 수선하려는 것인지 의도가 모호한데 , Samsung S8+ blue hybrid case 는 삼성 갤럭시 S 8 휴대폰을 위한 파란색의 하이브리드 케이스를 찾고 있다는 의도를 명확하게 드러낸다 . Keyword 안에 검색자의 의도가 분명히 반영된 Keyword 를 Long tail Keyword 라고 한다 .Long tail Keyword 는 검색량이 낮은 편이다 . 검색량이 낮다보니 해당 Keyword 로 광고를 하거나 상위에 랭크되고 싶어하는 경쟁자도 비교적 적다 . 검색엔진 최적화 관련 소프트웨어 기업인 Yoast 의 Marieke van de Rakt 는 “ Short tail Keyword 에 비해 Long tail Keyword 로 검색엔진 상위에 노출되는 것은 매우 쉽다” 고 했다 . Q) 그런데 검색량이 낮은 Keyword 로 굳이 상위에 노출할 필요가 있을까 ? A) Long Tail Keyword 는 검색량이 낮지만 비즈니스에 중요한 전환율이 매우 높은 편이다 . 즉 , Samsung S8+ blue hybrid case 로 검색하여 웹사이트를 찾은 사람들 혹은 해당 Keyword 로 상품을 검색했을경우 웹사이트에서 마음에 드는 갤럭시 S8 용 파란색 하이브리드 케이스 상품을 찾으면 구매로 이어질 확률이 높다 . Long Tail Keyword 의 필요성 03 8Short tail Keyword 는 보다 일반적이고 넓은 의미를 내포하고 있는 Keyword 를 말한다 . 그렇다보니 여러 개의 사용자 의도를 가지는 Short tail Keyword 도 많다 . 쉽게 말하면 Short tail Keyword 는 Long tail Keyword 의 반대되는 개념이라고 생각할 수 있다 . Short tail Keyword? 04 9Short tail Keyword Example 05 10 왼쪽의 Graph 에서 Short tail Keyword 는 Case, Phone Case 를 들 수 있다 . Short tail Keyword 는 높은 검색량을 가지고 있고 , 경쟁도도 높은 수준이다 . 경쟁수준이 높으니 그만큼 검색광고에 소요되는 클릭당 비용도 높지만 , 반면 전환율은 낮은 편이다 .Short tail Keyword 는 많은 사람들이 검색하는 Keyword 이기 때문에 웹사이트가 비즈니스와 관련된 Short tail Keyword 로 상위에 랭크되면 많은 웹사이트 트래픽을 가져올 수 있다 . 상품 트래픽이 올라가면 상품이나 브랜드가 더 많은 사람들에게 노출되고 인지된다는 의미이기 때문에 , 비즈니스 관련 Short tail Keyword 를 확보하면 트래픽과 인지도를 상승시킬 수 있다 . Short Tail Keyword 의 필요성 06 11Strategy By M.Monstar상품등록시 목적에 따라 상품명에 적절한 키워드를 제공한다 . 셀러와 쇼핑몰 전략에 따라 해당 키워드를 제공해주면 브랜드 인지도 상승 또는 효과적인 매출 상승을 기대할수 있다 . M.Monstar 의 전략 01 13다수의 사이트들이 긴 상품명을 제공하고도 셀러들이 Short tail Keyword 에 국한되어 상품을 표현하거나 상품 모델명 , 반복적 키워드 등으로 노출하는 형태가 대다수임 . 경쟁사 분석 02 14How to Find Keyword? 03 15 메인 키워드를 파악하는게 제일 중요하다 . 3 단어 이하 업계 내에서 중간 혹은 상위 수준의 경쟁률 구글 키워드 플래너 및 기타 키워드 도구 툴에서 월 평균 최소 200 회 이상 검색 하나 이상의 업체들이 타깃으로 함 메인 키워드를 찾는 데에는 구글 키워드 플래너 , 혹은 구글 트렌드 등의 다양한 툴이 있다 .Finally 04 16 아이디어의 사업성 , 수익성 , 투자가치가 있다고 판단될 경우 방법과 방향을 구체화하여 수익창출에 이르끼까지의 전략이 필요 .{nameOfApplication=Show}
Developement Tool : 크로스 컴파일러(arm-linux-gcc 4.4.1)VM Ware를 사용하여 가상 OS(Ubuntu)를 설치하고 Linux기반의 Android 개발환경을 조성한다.설치 후 root 계정을 이용하여 로그인을 한다.( ID : root / PW : #hanback! )기본적인 네트워크 설정을 마친후 크로스 컴파일러의 동작을 확인한다.JDK(Java Developer’s Kit) Install: Java developer’s kit의 약어. 미국 JavaSoft사가 제공하는 Java용 Software Developement Tool. JDK는 각종 운영 체제 및 응용 프로그램과 연결시킬 수 있은 자바 API와 클래스 라이브러리, 자바 가상 머신 등으로 구성된다.Eclipse: 이클립스(Eclipse)는 다양한 플랫폼에서 쓸 수 있으며, 자바를 비롯한 다양한 언어를 지원하는 프로그래밍 통합 개발 환경을 목적으로 시작하였으나, 현재는 OSGi를 도입하여, 범용 응용 소프트웨어 플랫폼으로 진화하였다. 자바로 작성되어 있으며, 자유 소프트웨어이지만 막강한 기능을 자랑한다. 2004년과 2005년 졸트 어워드(Jolt Award)를 수상했다.식(蝕)을 뜻하는 이클립스란 이름은 자바를 개발한 회사의 Sun이란 이름을 염두에 두었다는 말도 있어 2003년도에 썬 마이크로시스템즈는 이클립스 파운데이션에 참여하지 않았던 이유중의 하나였지만 2005년도에 열린 EclipseCon의 키노트에서 Lee Nackman은 그 목적은 원래 마이크로소프트와 비주얼 스튜디오 생태 시스템을 겨냥한 것이었다고 말했다. 원래 IBM의 WebSpheare Studio Application Developer란 이름으로 개발되었던 것인데, 엔진부분을 오픈소스로 공개한 것을 기반으로 지금의 이클립스로 발전해 왔다. 각 목적별(C/C++ 개발자용, 자바 개발자용, 웹 개발자용 등등)의 다양한 배포판이 존재한다.
..PAGE:1DT시대와 Big Data발표자 OOO..PAGE:2DT GenerationThe amount of digital data produced in the world 2.8ZB(2012)=> The flood of information..PAGE:3The rise of Big DataKeywords of the Year & The size of the market(IDC)..PAGE:4What is BigData?..PAGE:5Why Are Big Data limelight?..PAGE:6Big Data Technology..PAGE:7Big Data Management&Storage Technology..PAGE:8Big Data Analysis Technology..PAGE:9Hadoop DefinitionHadoop(High-Availability Distributed Object-Oriented Platform)..PAGE:10Hadoop Function..PAGE:11Hadoop Architecture..PAGE:12HDFS(Hadoop Distributed File System)..PAGE:13Map Reduce..PAGE:14Hadoop Framework..PAGE:15Hadoop Project..PAGE:16R..PAGE:17R! Magician of data and statistics..PAGE:18Simulation..PAGE:19Case Example..PAGE:20Case Example..PAGE:21Case Example..PAGE:22Case Example..PAGE:23Business plan맞춤형 고객 상품 추천 서비스가. 추진 배경◆ 온라인 커머스 시장에서의 경쟁력 강화를 위한 상품 추천 서비스 플랫폼 구축◆ 내부 역량을 활용해 다양한 서비스에도 확산시킬 수 있도록 자체 역량 확보가 우선시◆ 아마존 닷컴이 빅데이터 기반 추천 시스템을 통해 매출의 35%가 증가..PAGE:24Business plan나. 추진 내용◆ 아마 각 방면에서 주목을 받고 있으며, 가트너, IDC, EMC와 같은 세계적인 시장 조사기관 10개중 9개에서는 빅 데이터를 IT관련 올해의 키워드로 선정하였다.이와 같이 빅 데이터가 주목을 받는 이유는 그림과 같이 빅 데이터 시장규모의 급격한 증가와 관련이 있다.빅 데이터 시장규모는 2012년 기준으로 6842억 달러(약680조)이고, 점차 증가하여 2015년 올해에는 16,920억 달러로 성장할 것으로 추정된다.이렇듯, 급격한 시장규모의 증가 추세와 맞물려 빅 데이터는 우리 삶에 지대한 영향을 미칠 것으로 예상된다3위키디피아 : 기존에 사용하던 방법으로 처리하기 힘든 크고 복잡한 Data Set을 빅데이터로 정의< 가트너의 3V >빅 데이터의 3가지 특징(The Three V’s of Big Data)빅 데이터라는 개념은 1997년 ACM의 VIS(Proceeding of the 8th conference on Visualization)학회에서 Cox와 Ellsworth에 의해 처음 발표되었다.Cox는 그의 논문 ‘Application-controlled demand paging for out-of-core visualization’에서 ‘더 이상 데이터 저장소에 담을 수 없는 사태를 맞이할 것이다’라고 문제를 제기하면서 빅 데이터 개념의 출발을 알렸다.이후 2001년 메타그룹의 Doug Laney는 학문적인 관점에서 3V라고 하는 빅 데이터의 세가지 특징(Velocity, Volume, Variety)을 그림과 같이 정의하였다.빅 데이터의 첫 번째 특징인 속도(Velocity)는 데이터들이 거의 실시간에 가깝게 생산 된다는 것을 의미한다.두 번째 특징은 대용량의 데이터(Volume)이다. 이는 데이터의 크기와 기록의 양 등이 현저하게 증가함을 의미한다.마지막은 다양성(Variety)이다. 과거에는 정형화된 데이터가 중심이 되어 각 정보들이 물건, 사건, 인물에 대한 정보 위주로 가공되었으나, 빅 데이터 시대에서는 비정형화된 데이터가 중심이 되어 오락, 일상이 채 10원도 되지 않는다.저장 비용의 감소로 인하여 최근 구글과 네이버와 같은 포탈업체들의 클라우드 서비스가 더욱 보편화 되었다.6빅데이터를 관리하고 저장하기 위한 기술들뒤에서 대표적인 빅데이터 분산처리를 해주는 아파치 톱레벨 오픈소스 프로젝트 Hadoop 언급을 하며자세하게 다룰 예정입니다.7Big Data 분석 기술들가. 자연언어처리(NLP) : 자연언어처리는 글로 된 인간 언어를 컴퓨터를 통해 처리하기 위한 기술나. 정보 검색(IR) : 빅데이터 처리를 위해서는 정보 검색이 필수. 대규모 데이터를 색인하고, 이 중에서 주제와 관련된 데이터를 빠르게 찾아 분석에 적용합니다. 기존의 검색과 다른 점은 기존 검색은 인간을 위한 정보 검색이라면, 빅 데이터 분석에서의 정보 검색은 컴퓨터가 검색 시스템을 사용하는 수요자라는 것입니다.다. 정보수집(CRAWLING) : 무수히 많은 컴퓨터에 분산 저장되어 있는 문서를 수집하여 검색 대상의 색인으로 포함시키는 기술. 어느 부류의 기술을 얼마나 빨리 검색 대상에 포함시키냐 하는 것이 우위를 결정하는 요소로서 최근 웹 검색의 중요성에 따라 발전되고 있다.라. 기계 학습(MACHINE LEARNING) : 기계 학습은 인공 지능의 한 분야로, 컴퓨터가 학습을 할 수 있도록 하는 알고리즘을 말한다. 가령, 기계 학습을 통해서 수신한 이메일이 스팸인지 아닌지를 구분할 수 있도록 훈련할 수 있다.마. 텍스트 마이닝(TEXT MINING) : 자연어로 구성되어 있는 비정형 데이터로 부터 패턴 또는 관계를 추출하여 가치와 의미있는 정보를 찾아내는 기법. 사용자의 글을 분석하여 특정 상품이나 서비스에 대한 선호도 및 여론의 방향을 파악 할 수 있다.바. 클라우드 컴퓨팅과 NoSQL : 클라우드 컴퓨팅이란 정보처리를 자신의 컴퓨터가 아닌 인터넷으로 연결된 다른 컴퓨터로 처리하는 기술을 말한다. 빅데이터를 처리하기 위해서는 다수의 서버를 통한 분산처리가 필수적이다. 분산처리는 클라우드의 핵심 기술이므로 빅데이터와 클라우드는 밀접한 관역할을 한다.10하둡은여래 개의 저렴한 컴퓨터를 마치 하나인 것처럼 묶어서 데이터를 처리하는 기술입니다.수천대의 분산된 x86 장비에 대용량 파일을 저장할 수 있는 기능을 제공하는 분산파일 시스템과(HDFS),저장된 파일 데이터를 분산된 서버의 CPU와 메모리 자원을 이용해 쉽고 빠르게 분석할 수 있는 컴퓨팅 플랫폼인 맵리듀스로 구성되어 있습니다.가. HDFS의 경우 마스터를 네임노드라 부르고 슬레이브를 데이터 노드라고 함1) 네임노드 : 네임노드는 HDFS의 모든 메타 데이터를 관리하고, 클라이언트가 HDFS에 저장된 파일에 접근가능하게 해줌2) 데이터노드 : HDFS에 데이터를 입력하면 입력 DATA는 64MB의 블록으로 나누어져 여러대의 데이터 노드에 분산되어 저장나. MapReduce의 경우 마스터를 잡트래커라고 부르고 슬레이브를 태스크트래커라고 부름1) 잡트래커 : 하둡 클러스터에 등록된 전체 잡의 스케쥴링을 관리하고 모니터링 함2) 테스트 트래커 : 사용자가 설정한 맵리듀스 프로그램을 데이터 노드에서 실행하는 데몬이다. 이때 맵 태스크와 리듀스 태스크가 실행다. MapReduce프로그램을 실행하면 잡트래커가 태스크트래커에 일을 나눠주어 병렬로 실행하는 형태로 진행라. MapReduce프레임워크는 처리할 입력데이터를 HDFS에서 읽어들이고 처리된 데이터를 다시 HDFS에 씀마. HDFS자체는 혼자서 독립적으로 분산파일시스템으로 쓰일 수 있지만 MapReduce프레임워크는 HDFS를 데이터읽기와 쓰기를 위해 필요로 함블록 단위로 파일을 보관. 기본 설정은 64MB분산파일 시스템 : 블록을 다중 노드에 분산해서 보관Replication : 하나의 블록은 여러 노드에 복제, 특정 노드 장애에 무정지 대응고가용성(High Availability)을 유지,보장하기 위해 데이터를 Replication, 즉, 3배수 복제하여 저장을 하고,특히, HDFS 2.0 버전 부터는 Name Node를 이중화(Active-Standby) 지원이 가능해졌다.Name Node의데이타를 저장하는 노드로,디렉토리 구조,파일에 대한 각종 메타 데이타,그리고 물리적 파일이 저장되어 있는 위치등을 저장한다.DatanodesDatanodes는 실제 파일을 저장하고 읽어온다.하나의 파일을 블록이라는 단위로 나눠서 저장하는 역할을 수행한다.그리고 Namenodes와 주기적으로 통신하여 저장하고 있는 블록에 대한 정보를Namenodes에 저장하도록 한다.Namenodes에는 모든 블록에 대한 메타정보가 들어와 있기 때문에, Namenodes가 장애가 나면 전체HDFS이 장애가 나는SFP ( Single Failure Point )가 된다.이Namenodes에 대한 이중화가 필요하다. Namenodes에 대한 이중화 방안에 대해서는 방법이 흔하지 않으며 고려해야할 사항이 많습니다.블럭(Block)블럭은HDFS에서Read와Write를 하는 최소 단위이다.하나의 파일을 여러개의 블럭으로 나눠서 저장된다.이Hadoop의 블럭 사이즈는 일반적인 파일 시스템의 블럭사이즈(수Kilobytes 일반적으로 파일시스템에서는512 KB )에 비해서 큰 블럭사이즈를 사용한다. Hadoop에서는 디폴트로64MB를 사용하고,보통128MB를 사용한다.클 블럭사이즈를 사용하는 이유는, MR처리에 있어서Map Task가 하나의 파일 사이즈 단위로 처리하기 때문에,작은 파일 억세스 보다는Map Task단위로 처리할 수 있는 단위가 필요하다.(이것이 블럭)이를 위해서 큰 사이즈 단위로 파일 처리를 할 수 있는 블럭을 지정하는 것이다.또한 블럭 크기를 크게 함으로써,해당 파일에 대한Seeking Time을 줄일 수 있고,블럭 사이즈를 적게 하면Master Node에서 저장 및 처리해야 하는 데이타의 양이 많아지기 때문에Master Node에 많은 부하가 걸리기 때문에 큰 블럭 사이즈를 사용한다.이런 이유로 반대로 블럭 사이즈가 작거나 사이즈가 작은 데이타 처리의 경우Hadoop에서는 충분한 분산 처리 성능을 기대하기 어렵다.HDFS는 대규모 분산 처리에 필요한 대용량input데이타를발)
ALU(Arithmetic-Logic Unit)▶ 정의컴퓨터의 CPU를 구성하는 부분의 하나로 덧셈 · 뺄셈 · 곱셈 · 나눗셈의 사칙연산, AND · OR · SHIFT 등의 논리연산을 하는 장치를 말하며, 일반적으로 몇 비트의 데이터를 병렬로 처리할 수가 있는 회로를 칭한다.산출논리 연산 유니트, 또는 간단히 연산유니트라고도 부른다.16비트 컴퓨터와 같이 n비트 컴퓨터라고 표현할 때 n은 그 CPU가 가지는 ALU로서 일시에 병렬로 처리할 수 있는 데이터의 비트 수를 나타낸다.▶ Module Design산술연산과 논리연산의 두 연산모드를 선택하기 위해서 모드 선택신호 M을 사용한다. 모드 선택신호 M이 0이면, 산술 연산모드가 M이 1이면 논리 연산모드가 선택된다. 다음은 각 모드에서 수행되는 연산을 결정하는 제어신호가 필요한데, 여기서는 작은 크기의 ALU를 예로 사용하기 위하여 각 모드마다 4개의 연산만을 허용하고 4개 중 하나의 연산을 지정하기 위한 제어신호로 S1, S2를 사용한다.이 회로가 수행하는 산술연산으로는 덧셈, 뺄셈, 1증가, 1감소가 있고, 논리연산에는 보수, AND, OR, 전달 연산이 있다. 이 연산들은 다음 표와같이 M, S1, S2 신호에 의해 결정된다.S1S2산술연산(M=0)논리연산(M=1)00뺄셈보수011증가AND101감소OR11덧셈전달위의 산술연산과 논리연산을 구현하려면, 산술연산과 논리연산을 두 피연산자 A, B에 다음과 같이 적용시키면 된다.뺄셈A-B1증가A+11감소A-1덧셈A+B보수A’ANDA AND BORA OR B전달A▶ Logic산술연산과 논리연산의 동작을 Truth Table로 나타내면 다음과 같다.MS1S2X(alu_o1)Y(alu_o2)Co000AB’1001A01010A10011AB0100A’00101A AND B00110A OR B00111A00▶ ALU 회로도(RTL Viewer) & Symbol▶ Souce Code? < ALU.v > - 1bit ALU Design? < ALU_T > - Top Module ALU Design(16Bits)? < tb_alu > - Test Bench File=> 산술연산 Part Test Bench=> 논리연산 Part Test Bench▶ SimulationALU 동작에 관한 Verilog Code의 Simulation 결과이다.위의 Simulation은 지연시간을 고려하지 않은 RTL Simulation의 결과로서 회로의 구성과 동작이 잘 이루어지는지 확인하기 위한 Simulation 이다.Hz(하이 임피던스)와 Z(Unknown)값이 출력되지 않는 것으로 보아 Port 연결 및 회로구성에 이상이 없음을 알수 있다.다음은 논리연산과 산술연산이 제대로 이루어 지고 있는지 자세히 Simulation의 Wave Form을 분석해 보았다.▶ Analysis? 산술 Part위의 Wave Form을 살펴보면 산술연산과 논리연산의 선택신호인 M이 0으로 산술연산을 수행한다. S1 = 0, S2 = 1일 때, 출력 X(alu_o1)와 Y(alu_o2)에 각각 A(A = 2)와 0이 나오게 된다. 이 출력값(alu_o1 = 2, alu_o2 = 0)은 CLA Adder의 입력으로 들어가게 되어 Add 연산을 수행(2 + 0)을 거쳐 위에 보이는 출력 X와 cout으로 나오게 된다. 출력 X는 Sum값으로 2, cout은 Carry값으로 발생되지 않는 것을 볼수 있다.? 논리 Part위의 Wave Form에서는 입력 A와 B에 각각 4와 3이 입력되었고 논리연산(M = 1)이 선택된 모습이다. 이때 S1 = 1, S2 = 1 동작은 출력으로 X(alu_o1)와 Y(alu_o2)에 A(전달)와 0이 나오게 된다.따라서 Adder의 입력으로 들어가는 출력 alu_o1 = 6이 되고, alu_o2 = 0이 Adder의 입력으로 들어가게 되고 CLA Adder에서 더한 결과값이 위의 화면에서 보이는 X(sum)값(X = 6)으로 나오게 된다.