Installation Vue.js (Eclipse)

Posted at 2018. 5. 24. 21:32 | Posted in Study/Vue.js
반응형

Introduction


Eclipse 에서 Vue.js 개발 환경을 구축해보자.




Preparation


이클립스는 JavaScript and Web Developers 패키지로 받았다.




npm을 어디서든사용할 수 있도록 nodejs를 받아서 Path 환경 변수에 등록하자.





Install CodeMix Plugin


Eclipse Marketplace(Help - Eclipse Marketplace...)에서 vue를 검색하면 플러그인이 나온다. (하나만 있는듯? -_-)


With CodeMix, unlock a wide array of technologies from Visual Studio Code and add-on extensions built for Code OSS directly inside your Eclipse IDE.


- First class JavaScript coding & debugging

- Vastly improved HTML and CSS editing

- New languages including TypeScript, PHP and Python

- New frameworks from React and Vue.js to Angular

- New UX patterns like the Quick Open shortcuts

- As-you-type content assist




라이선스.. 네네...




설치 후 재시작 해준다.




재시작 하면 CodeMix 에 대한 설명+설정이 나온다.







Create Vue project


File - New - Project




프로젝트 이름 입력 후 Finish




아래와 같은 구조로 프로젝트가 만들어진다.




프로젝트에서 마우스 오른쪽 버튼 - Run As - npm Install 클릭.




프로젝트에 필요한 모듈들을 설치하게 된다.


Microsoft Windows [Version 10.0.16299.309]
(c) 2017 Microsoft Corporation. All rights reserved.

D:\dev\workspace\vue.js>npm install

> node-sass@4.9.0 install D:\dev\workspace\vue.js\node_modules\node-sass
> node scripts/install.js

Cached binary found at C:\Users\Antop\AppData\Roaming\npm-cache\node-sass\4.9.0\win32-x64-57_binding.node

> uglifyjs-webpack-plugin@0.4.6 postinstall D:\dev\workspace\vue.js\node_modules\uglifyjs-webpack-plugin
> node lib/post_install.js


> node-sass@4.9.0 postinstall D:\dev\workspace\vue.js\node_modules\node-sass
> node scripts/build.js

Binary found at D:\dev\workspace\vue.js\node_modules\node-sass\vendor\win32-x64-57\binding.node
Testing binary
Binary is fine
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.4 (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.4: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

added 891 packages in 151.496s

D:\dev\workspace\vue.js>exit


node_modules 라는 디렉터리가 생성되고 하위에 필요한 모듈들이 들어있다. (이 디렉터리는 VCS에 포함시키지 말자!)




package.json - dev 에서 마우스 오른쪽 버튼. Run As - npm Script




아래와 같이 Console이 나오게 된다.


Microsoft Windows [Version 10.0.16299.309]
(c) 2017 Microsoft Corporation. All rights reserved.

D:\dev\workspace\vue.js>npm run-script dev

> vue-hello-world@1.0.0 dev D:\dev\workspace\vue.js
> cross-env NODE_ENV=development webpack-dev-server --open --hot

Project is running at http://localhost:8080/
webpack output is served from /dist/
404s will fallback to /index.html



브라우저가 자동으로 실행되고 아래와 같이 나온다면 성공!



반응형

'Study > Vue.js' 카테고리의 다른 글

Installation Vue.js (WebStorm + Vue CLI)  (0) 2018.05.21
//

Installation Vue.js (WebStorm + Vue CLI)

Posted at 2018. 5. 21. 13:22 | Posted in Study/Vue.js
반응형

Introduction


WebStorm + Vue CLI를 이용해서 Vue.js 개발 환경을 구축해보자.


Vue.js는 단일 페이지 응용 프로그램을 빠르게 스캐폴딩하기 위한 공식 CLI를 제공합니다. 현대적인 프론트엔드 워크플로우를 위해 잘 구성된 빌드 설정을 제공합니다. 핫 리로드, lint-on-save 및 프로덕션 준비가 된 빌드로 시작하고 실행하는데 몇 분 밖에 걸리지 않습니다.


처음 CLI 를 접하기 전에 사전 지식을 필요로 하니 당장 Vue.js 만 공부하려면 순수 HTML, CSS, Javascript 로 구성해서 학습하는 것도 괜찮을 것 같다. (난 사전 지식 없는데 왜 이걸로 하고 있지... ㅠㅠ)


CLI는 Node.js 및 관련 빌드 도구에 대한 사전 지식을 필요로 합니다. Vue 또는 프런트엔드 빌드 도구를 처음 사용하는 경우 CLI를 사용하기 전에 빌드 도구없이 가이드를 읽어 보시기 바랍니다.




Preparation


Node.js가 필요하다. 다운로드 받은 후 환경변수 PATH 등록 해두자.



vue-cli 를 설치한다.


D:\>npm install --global vue-cli
npm WARN deprecated coffee-script@1.12.7: CoffeeScript on NPM has moved to "coffeescript" (no hyphen)
D:\develoment\tools\node-v8.11.2-win-x64\vue-list -> D:\develoment\tools\node-v8.11.2-win-x64\node_modules\vue-cli\bin\vue-list
D:\develoment\tools\node-v8.11.2-win-x64\vue -> D:\develoment\tools\node-v8.11.2-win-x64\node_modules\vue-cli\bin\vue
D:\develoment\tools\node-v8.11.2-win-x64\vue-init -> D:\develoment\tools\node-v8.11.2-win-x64\node_modules\vue-cli\bin\vue-init
+ vue-cli@2.9.3
added 258 packages in 27.115s




Create Vue.js Project


WebStorm 실행 후 프로젝트를 새로 생성한다.




Location: 프로젝트의 디렉터리

Node interpreter : node.exe 파일의 위치

vue-cli or @vue/cli: vue-cli 모듈의 위치. 위에서 vue-cli 를 설치 했으면 자동으로 인식 된다.

Project template: 만들어질 프로젝트 기본 템플릿 6가지

  • browserify : hot-reload, linting 및 단위 테스팅 등 대부분의 기능을 갖춘 Browserify + vueify 설정.
  • browserify-simple : 단순히 Browserify와 vueify만 포함. 빠르게 프로토타입을 만들 때 사용한다.
  • pwa : ot-reload, linting, 테스트 및 CSS 추출 기능을 갖춘 대부분의 기능을 갖추고 있는 Webpack + PWA 템플릿.
  • simple : 가장 단순하게 한 HTML 파일에 Vue 설정을 담고 있다.
  • webpack : hot-reload, linting, 테스트 및 CSS 추출 기능을 갖춘 대부분의 기능을 갖추고 있는 Webpack + vue-loader 설정.
  • webpack-simple : 단순히 Webpack과 vue-loader만 포함한다. 빠르게 프로토타입을 만들 때 사용한다.




프로젝트 이름...




프로젝트 설명...




작성자 이름...




Vue build

  • Runtime + Compiler : 일반 적인 대부분 사용자에게 권한다.
  • Runtime-only : 약 6KB 안되는 용량. 하지만 템플릿(.vue)만 사용할 수 있다.

개발 중에는 최소화 버전을 사용하지 마십시오. 일반적인 실수에 대한 모든 훌륭한 경고를 놓치게됩니다!


현재는 개발(공부) 용도이기 때문에 Runtime + Compiler 선택...




해시(#) URL이나 HTML5 History 등을 이용하여 SPA에서 페이지 네비게이션 기능을 vue.js에서 사용하고 싶을 때 쓰는 vue-router 모듈을 설치할 것인지 여부이다.




자바스크립트 코딩 스타일과 에러를 체크하는 ESLint를 사용할 지 여부.




ESLint 를 사용한다면 어떤 코딩 스타일 세팅(preset)을 사용할지 선택하는 단계이다.




단위 테스트를 사용할 지 여부.




어떤 테스트기(test runner)를 사용할 지 선택한다.




Nightwatch를 이용하여 e2e(End-to-End) 테스트를 할 수 있도록 설정할 것인지 여부.




프로젝트가 생성된 후에 NPM 을 사용할 것인지 물어본다...




이제 프로젝트가 만들어졌다.


IDE 우측 하단의 알람을 보면 종속 모듈을 설치해야 한다고 한다. Run 'npm install' 을 클릭 하거나 Terminal 에서 직접 커맨드를 입력해서 설치하면 된다.



Terminal 에서 직접 npm install 했을 때 내용은 대충... 아래와 같다.


>npm install
npm WARN deprecated socks@1.1.10: If using 2.x branch, please upgrade to at least 2.1.6 to avoid a serious bug with socket data flow and an import issue introduced in 2.1.0
npm WARN notice [SECURITY] mime has 1 moderate vulnerability. Go here for more details: https://nodesecurity.io/advisories?search=mime&version=1.3.6 - Run `npm i npm@latest -g` to upgrade your npm version, and then `
npm audit` to get more info.
npm WARN notice [SECURITY] https-proxy-agent has 1 high vulnerability. Go here for more details: https://nodesecurity.io/advisories?search=https-proxy-agent&version=1.0.0 - Run `npm i npm@latest -g` to upgrade your n
pm version, and then `npm audit` to get more info.
npm WARN notice [SECURITY] http-proxy-agent has 1 high vulnerability. Go here for more details: https://nodesecurity.io/advisories?search=http-proxy-agent&version=1.0.0 - Run `npm i npm@latest -g` to upgrade your npm
 version, and then `npm audit` to get more info.
npm WARN notice [SECURITY] debug has 1 low vulnerability. Go here for more details: https://nodesecurity.io/advisories?search=debug&version=2.2.0 - Run `npm i npm@latest -g` to upgrade your npm version, and then `npm
 audit` to get more info.
npm WARN notice [SECURITY] macaddress has 1 critical vulnerability. Go here for more details: https://nodesecurity.io/advisories?search=macaddress&version=0.2.8 - Run `npm i npm@latest -g` to upgrade your npm version
, and then `npm audit` to get more info.
npm WARN notice [SECURITY] growl has 1 critical vulnerability. Go here for more details: https://nodesecurity.io/advisories?search=growl&version=1.9.2 - Run `npm i npm@latest -g` to upgrade your npm version, and then
 `npm audit` to get more info.

> chromedriver@2.38.3 install D:\dev\projects\vue\node_modules\chromedriver
> node install.js

Downloading https://chromedriver.storage.googleapis.com/2.38/chromedriver_win32.zip
Saving to C:\Users\Antop\AppData\Local\Temp\chromedriver\chromedriver_win32.zip
Received 781K...
Received 1568K...
Received 2352K...
Received 3136K...
Received 3299K total.
Extracting zip contents
Copying to target path D:\dev\projects\vue\node_modules\chromedriver\lib\chromedriver
Done. ChromeDriver binary available at D:\dev\projects\vue\node_modules\chromedriver\lib\chromedriver\chromedriver.exe

> uglifyjs-webpack-plugin@0.4.6 postinstall D:\dev\projects\vue\node_modules\webpack\node_modules\uglifyjs-webpack-plugin
> node lib/post_install.js

npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.4 (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.4: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

added 1555 packages in 321.2s




Run Server


Terminal 에서 npm run dev 명령어 입력.


D:\develoment\projects\vue.js>npm run dev

> vue.js@1.0.0 dev D:\develoment\projects\vue.js
> webpack-dev-server --inline --progress --config build/webpack.dev.conf.js

 90% chunk assets processing


% 진행 되다가 아래와 같이 나오면 성공!


 DONE  Compiled successfully in 15419ms                                                                                                                                                                            12:50:43

 I  Your application is running here: http://localhost:8080


브라우저로 접속 시 화면이 나온다면 성공!





Reference


https://kr.vuejs.org/v2/guide/installation.html

https://www.jetbrains.com/help/webstorm/vue-js.html

https://github.com/vuejs-kr/vue-cli

반응형

'Study > Vue.js' 카테고리의 다른 글

Installation Vue.js (Eclipse)  (0) 2018.05.24
//

Install Ambari and Deploy HDP in CentOS

Posted at 2016. 6. 5. 11:41 | Posted in Study/Hadoop
반응형

소개


스터디를 위해서 Ambari를 이용하여 하둡 환경을 구성하면서 기록을 남긴다.


 Host

 IP 

 CPU/RAM/HDD

 Service

 hadoop-00

 192.168.20.20

 4vCPU / 4GB / 16GB

 Ambari

 hadoop-01

 192.168.20.21

 4vCPU / 4GB / 120GB 

 NameNode

 hadoop-02

 192.168.20.22

 4vCPU / 4GB / 120GB

 Hive / DataNode

 hadoop-03

 192.168.20.23

 4vCPU / 4GB / 120GB

 DataNode

 hadoop-04

 192.168.20.24

 4vCPU / 4GB / 120GB

 DataNode




환경 준비


아래 항목들은 모든 서버에 공통적으로 적용해야 할 것들이다.



FQDN[각주:1] 및 호스트네임 설정


호스트들 등록 x N


# vi /etc/hosts

# 추가한다.

192.168.20.20   hadoop-00 hadoop-00.antop.org

192.168.20.21   hadoop-01 hadoop-01.antop.org

192.168.20.22   hadoop-02 hadoop-02.antop.org

192.168.20.23   hadoop-03 hadoop-03.antop.org

192.168.20.24   hadoop-04 hadoop-04.antop.org


호스트네임 설정값 변경


각각 서버에 맞는 번호로 이름 변경 x N


# hostname hadoop-00.antop.org

# hostname -f

hadoop-00


# hostname

hadoop-00.antop.org


네트워크 설정 쪽에도 호스트네임이 들어가 있다. 이것도 변경 x N


# vi /etc/sysconfig/network


NETWORKING=yes

HOSTNAME=hadoop-00.antop.org

GATEWAY=192.168.20.1



Password-less SSH 설정


비밀번호를 물어보지 않는 SSH를 사용할 수 있도록 설정


Ambari 쪽에서 다른 각각의 서버로만 뚫으면 된다.


공개키/개인키 생성


[root@hadoop-00 ~]# ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

Generating public/private dsa key pair.

Created directory '/root/.ssh'.

Your identification has been saved in /root/.ssh/id_dsa.

Your public key has been saved in /root/.ssh/id_dsa.pub.

The key fingerprint is:

de:3a:1a:9b:cb:5d:ee:b4:a1:b6:e3:8a:64:a9:d2:54 root@hadoop-00.antop.org

The key's randomart image is:

.. 중략 ..


인증 심어놓기(?)


# 나 자신 서버에도 한다.

[root@hadoop-00 ~]# ssh-copy-id -i ~/.ssh/id_dsa.pub root@hadoop-00.antop.org

The authenticity of host 'hadoop-00.antop.org (192.168.20.20)' can't be established.

RSA key fingerprint is 93:02:94:19:21:aa:99:a8:94:87:75:36:06:08:3f:12.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added 'hadoop-00.antop.org,192.168.20.20' (RSA) to the list of known hosts.

root@hadoop-00.antop.org's password:

Now try logging into the machine, with "ssh 'root@hadoop-00.antop.org'", and check in:


  .ssh/authorized_keys


to make sure we haven't added extra keys that you weren't expecting.


[root@hadoop-00 ~]# ssh-copy-id -i ~/.ssh/id_dsa.pub root@hadoop-01.antop.org

[root@hadoop-00 ~]# ssh-copy-id -i ~/.ssh/id_dsa.pub root@hadoop-02.antop.org

[root@hadoop-00 ~]# ssh-copy-id -i ~/.ssh/id_dsa.pub root@hadoop-03.antop.org

[root@hadoop-00 ~]# ssh-copy-id -i ~/.ssh/id_dsa.pub root@hadoop-04.antop.org


Ambari 쪽에서 다른 서버들로 SSH 접속시 비밀번호를 물어보지 않고 접속이 잘 되어야 한다.


[root@hadoop-00 ~]# ssh root@hadoop-01.antop.org 'ls /'

# 비밀번호를 물어보지 않고 정상적으로 디렉터리 목록이 나와야함...


※ hadoop-00(Ambari)에 생성된 /root/.ssh/id_dsa 파일을 다운로드 받아놓자. Ambari Web UI에서 클러스터 생성시에 필요하다.



NTP[각주:2] 서비스 설치 및 실행


NTP 가 안깔려 있으면 설치하자.


# yum -y install ntp

# service ntpd start

# chkconfig ntpd on



방화벽 해제


하둡은 상당히 많은 포트를 사용한다. 철저하게 관리하면 좋겠지만..... 전부 해제!


# chkconfig iptables off

# /etc/init.d/iptables stop



SELinux 비활성화


# setenforce 0

vi /etc/selinux/config


# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

#     enforcing - SELinux security policy is enforced.

#     permissive - SELinux prints warnings instead of enforcing.

#     disabled - No SELinux policy is loaded.

SELINUX=disabled

# SELINUXTYPE= can take one of these two values:

#     targeted - Targeted processes are protected,

#     mls - Multi Level Security protection.

SELINUXTYPE=targeted



THP[각주:3] 비활성화


CentOS에서 THP가  활성화 되어있으면 성능 이슈가 발생할 수 있다고 경고가 나오게 된다.


HDP 가 설치되는 호스트들에 적용한다. (hadoop-01 ~ hadoop-04)


[root@hadoop-01 ~]# vi /etc/rc.local


#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local

# 추가된 부분
if test -f /sys/kernel/mm/redhat_transparent_hugepage/enabled; then
   echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled; fi
if test -f /sys/kernel/mm/redhat_transparent_hugepage/defrag; then
   echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag; fi


재부팅 후 값 확인


[root@hadoop-01 ~]#  cat /sys/kernel/mm/transparent_hugepage/enabled


※ 이렇게 하는게 맞는지는 확실히 모르겠슴.. 어찌어찌 하다가 경고 없어짐... 여기 참조



unmask 값 변경


/etc/profile 파일을 열어서 umask 설정 로직 하단에 umask 값을 강제로 변경하는 부분을 추가해 주도록 하자.


# vi /etc/profile


# 중략

# By default, we want umask to get set. This sets it for login shell

# Current threshold for system reserved uid/gids is 200

# You could check uidgid reservation validity in

# /usr/share/doc/setup-*/uidgid file

if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then

    umask 002

else

    umask 022

fi


# 추가

umask 022



JDK 설치


여기선 1.7을 설치 하자.


# wget 없다면 설치

# yum install -y wget


# 다른 종류의 JDK 있으면 삭제

# yum remove -y java-1.6.0-openjdk

# yum remove -y java-1.7.0-openjdk


# RPM 파일 다운로드

# cd ~

# wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/7u80-b15/jdk-7u80-linux-x64.rpm"


# 설치

# yum localinstall -y jdk-7u80-linux-x64.rpm

# rm -f ~/jdk-7u80-linux-x64.rpm


# 환경 변수 설정

# echo 'export JAVA_HOME=/usr/java/jdk1.7.0_80' >> /etc/profile

# echo 'export PATH=$PATH:$JAVA_HOME/bin' >> /etc/profile


# 설치 확인

# java -version




Ambari Server 설치



Public Repositories[각주:4] 등록


yum 으로 설치될 수 있도록 저장소를 등록한다.


[root@hadoop-00 ~]# cd /etc/yum.repos.d/

[root@hadoop-00 yum.repos.d]# wget http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.2.2.0/ambari.repo



설치


[root@hadoop-00 ~]# yum install ambari-server



설정


[root@hadoop-00 ~]# ambari-server setup

Using python  /usr/bin/python

Setup ambari-server

Checking SELinux...

SELinux status is 'disabled'

Customize user account for ambari-server daemon [y/n] (n)? n

Adjusting ambari-server permissions and ownership...

Checking firewall status...

Checking JDK...

[1] Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8

[2] Oracle JDK 1.7 + Java Cryptography Extension (JCE) Policy Files 7

[3] Custom JDK

==============================================================================

Enter choice (1): 3

WARNING: JDK must be installed on all hosts and JAVA_HOME must be valid on all hosts.

WARNING: JCE Policy files are required for configuring Kerberos security. If you plan to use Kerberos,please make sure JCE Unlimited Strength Jurisdiction Policy Files are valid on all hosts.

Path to JAVA_HOME: /usr/java/jdk1.7.0_80

Validating JDK on Ambari Server...done.

Completing setup...

Configuring database...

Enter advanced database configuration [y/n] (n)? n

Configuring database...

Default properties detected. Using built-in database.

Configuring ambari database...

Checking PostgreSQL...

Running initdb: This may take upto a minute.

Initializing database: [  OK  ]


About to start PostgreSQL

Configuring local database...

Connecting to local database...done.

Configuring PostgreSQL...

Restarting PostgreSQL

Extracting system views...

.....ambari-admin-2.2.2.0.460.jar

.

Adjusting ambari-server permissions and ownership...

Ambari Server 'setup' completed successfully.



시작


[root@hadoop-00 ~]# ambari-server start

Using python  /usr/bin/python

Starting ambari-server

Ambari Server running with administrator privileges.

Organizing resource files at /var/lib/ambari-server/resources...

Server PID at: /var/run/ambari-server/ambari-server.pid

Server out at: /var/log/ambari-server/ambari-server.out

Server log at: /var/log/ambari-server/ambari-server.log

Waiting for server start....................

Ambari Server 'start' completed successfully.




Deploy CLuster using Ambari Web UI


브라우저로 http://<hostname>:8080 에 접속하자.


최초 로그인 아이디는 admin/admin



중앙 Create a Cluster 항목의 Launch Install Wizard 버튼 클릭!



클러스터 이름을 설정한다. 나는 MicroscopeHadoop 으로 하였다.



서비스 스택 버전을 선택한다.


최신 버전인 2.4 해도 되고, 나의 경우 Toad for Hadoop 1.5.0 버전에서 HDP 2.3 을 지원 한다고 하여 2.3 으로 설치한다. 



설치할 호스트를 지정한다. FQDN을 줄줄이 써주면 된다.


위에서 다운로드 받아놓은 id_dsa 파일을 여기서 첨부 파일로 넣어준다.



각 호스트에 Ambari Agent 설치 및 이것저것 검사를 한다.


※ 위에 THP 처리를 안하면 아래와 같이 경고가 나오게 된다.



서비스를 선택한다. (항목이 너무 많아서 스크린샷을 편집함...)


나는 Hive 만을 사용하기 위한 최소 항목만 선택 하였다. 나중에 추가 설치 가능하다.



어느 호스트에 무엇을 설치할 것인지 설정한다.


이 부분은 경험과 노하우가 필요하겠다...


나의 경우 서버가 4대라서... 1번에 다 몰고... 2번에 하이브.. 2,3,4 를 데이터 노드로 사용하려고 하였다.



DataNode 로 쓸 호스트를 선택하자.



설정값을 조정하는 부분이다.


특별히 변경 할 건 없는거 같고... -_-/... 아래 처럼 탭 부분에 빨간색 숫자 뜨는 부분 찾아가서 채워 주자.



설치(Deploy) 전 마지막 확인!



설치 시작 그리고 테스트


설치 완료!



설치 완료 요약



완료... 된 것인가 ㅠ_ㅠ





추가로 HTTP 포트 변경하기


https://ambari.apache.org/1.2.3/installing-hadoop-using-ambari/content/ambari-chap2-2a.html



참조

https://ambari.apache.org/1.2.2/installing-hadoop-using-ambari

http://guruble.com/?p=147

  1. https://wiki.kldp.org/KoreanDoc/html/PoweredByDNS-KLDP/fqdn.html [본문으로]
  2. http://www.terms.co.kr/NTP.htm [본문으로]
  3. Transparent Huge Pages [본문으로]
  4. https://cwiki.apache.org/confluence/display/AMBARI/Install+Ambari+2.2.2+from+Public+Repositories [본문으로]
반응형

'Study > Hadoop' 카테고리의 다른 글

Installing Hive(Hadoop 1) + MySQL on CentOS 6.7  (0) 2016.01.05
Installing Hadoop 1 on Ubuntu 14.04  (0) 2015.11.12
//

Installing Hive(Hadoop 1) + MySQL on CentOS 6.7

Posted at 2016. 1. 5. 22:04 | Posted in Study/Hadoop
반응형

Introduction



Hive 를 공부해보기 MySQL을 메타 스토어로 사용하는 최소한의 설치를 설치해보자..




Requirements


여기서 MySQL 설치에 대해서 다루지 않겠다... 데이터베이스와 유저까지 만들자.


Host: mysqldb

Database: hive

Username: hive


※ MySQL 을 사용 하지 않을 경우를 위해서 생략 가능한 절차를 코맨트 하겠다.


하둡은 이미 설치되어 있어야 한다. 설치된 환경은 아래와 같다.


$ rpm -qa *-release

centos-release-6-7.el6.centos.12.3.x86_64


$ java -version

java version "1.7.0_80"

Java(TM) SE Runtime Environment (build 1.7.0_80-b15)

Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)


$ whoami

hadoop


$ pwd

/opt/hadoop


$ hadoop version

Hadoop 1.2.1

Subversion https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.2 -r 1503152

Compiled by mattf on Mon Jul 22 15:23:09 PDT 2013

From source with checksum 6923c86528809c4e7e6f493b6b413a9a

This command was run using /opt/hadoop/hadoop-1.2.1/hadoop-core-1.2.1.jar


하이브가 설치될 환경을 미리 잡아주자.


$ cat ~/.bashrc

# .bashrc

# 생략

# User specific aliases and functions

export HADOOP_HOME=/opt/hadoop/hadoop-1.2.1

export HIVE_HOME=/opt/hadoop/hive-1.2.1

export PATH=$PATH:$HADOOP_HOME/bin:$HIVE_HOME/bin




Download Hive


하이브 최신(1.2.1) 파일을 다운로드 받아 설치하자.


# 파일 다운로드

$ wget http://mirror.apache-kr.org/hive/hive-1.2.1/apache-hive-1.2.1-bin.tar.gz


# 압축 해제

$ tar -xzvf apache-hive-1.2.1-bin.tar.gz


# 이름 변경

$ mv apache-hive-1.2.1-bin hive-1.2.1




Install MySQL Connector/J


※ MySQL 을 사용하지 않을 거라면 패스


하이브에서 메타스토어를 다른 데이터베이스로 사용할 시에 해당 JDBC 라이브러리를 넣어줘야한다.


MySQL을 사용할 것이기 때문에 이에 맞는 라이브러리를 찾아 넣어주자. 


# 파일 다운로드

$ wget http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.38.tar.gz


# 압축 해제

$ tar -xzvf mysql-connector-java-5.1.38.tar.gz


# jar 파일 복사

$ cp mysql-connector-java-5.1.38/mysql-connector-java-5.1.38-bin.jar /opt/hadoop/hadoop-1.2.1/lib


MySQL 스키마 파일은 하이브에 포함되어 있다. 어떤 방법을 쓰든.... 실행하자.


$HIVE_HOME/scripts/metastore/upgrade/mysql/hive-schema-1.2.0.mysql.sql


나는 mysql client 를 이용해서 넣었다..


$ mysql --host=mysqldb --database=hive --user=hive --password=**** < $HIVE_HOME/scripts/metastore/upgrade/mysql/hive-schema-1.2.0.mysql.sql


Setting


하이브에서 사용하게 될 영역을 HDFS 내에 만들자.


$ $HADOOP_HOME/bin/hadoop fs -mkdir /tmp

$ $HADOOP_HOME/bin/hadoop fs -mkdir /user/hive/warehouse

$ $HADOOP_HOME/bin/hadoop fs -chmod g+w /tmp

$ $HADOOP_HOME/bin/hadoop fs -chmod g+w /user/hive/warehouse


설정 파일을 만들자. (이 파일이 처음에는 없을 것이다)


$ vi $HIVE_HOME/conf/hive-site.xml


<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <property>
        <name>fs.default.name</name>
        <value>hdfs://hadoop-01:9000</value>
    </property>
    <!-- MySQL 사용 안할 거라면 이 아래는 패스 -->
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://mysqldb:3306/hive</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>hive</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>****</value>
    </property>
</configuration>




이제 하이브를 한번 실행 해보자. 아래와 같이 CLI 커맨드가 나오면 OK!

$ hive

Logging initialized using configuration in jar:file:/opt/hadoop/hive-1.2.1/lib/hive-common-1.2.1.jar!/hive-log4j.properties
hive> _


반응형

'Study > Hadoop' 카테고리의 다른 글

Install Ambari and Deploy HDP in CentOS  (1) 2016.06.05
Installing Hadoop 1 on Ubuntu 14.04  (0) 2015.11.12
//

Installing Hadoop 1 on Ubuntu 14.04

Posted at 2015. 11. 12. 03:37 | Posted in Study/Hadoop
반응형

Introduction


시작하세요! 하둡 프로그래밍
국내도서
저자 : 정재화
출판 : 위키북스 2014.12.31
상세보기


거침없이 배우는 하둡
국내도서
저자 : 척 램(Chuck Lam) / 강택현,이현남역
출판 : 지앤선(지&선) 2012.07.17
상세보기


하둡을 공부하기 위하여 설치해보자.


연습을 실전 같이! 완전분산(Fully distributed) 모드로 설치한다.


 호스트

 아이피

 역할

 코어/메모리

 hadoop-01

 192.168.153.10

 NameNode

 1 코어 / 1 GB

 hadoop-02

 192.168.153.11

 Secondary NameNode / DataNooe

 1 코어 / 1 GB

 hadoop-03

 192.168.153.12

 DataNode 1 코어 / 1 GB

 hadoop-04

 192.168.153.xxx DataNode 1 코어 / 1 GB




하둡 실행 계정 생성


하둡 실행 계정은 하둡 클러스터를 구성하는 모든 서버에 동일하게 생성해야 한단다. (정말? 실화야?)


"hadoop" 계정을 사용하도록하겠다. 각 서버에 생성하자.


root@hadoop-01:~# adduser hadoop

root@hadoop-02:~# adduser hadoop

root@hadoop-03:~# adduser hadoop




호스트 파일 수정


IP를 직접 사용해도 되지만 호스트명을 사용하자. 각 서버에서 /etc/hosts 파일을 아래와 같이 수정한다.


※ 물론 이 작업을 수행하는 나의 컴퓨터에도 호스트 파일 수정 작업이 되어 있어야 한다.


root@hadoop-01:~# vi /etc/hosts


127.0.0.1       localhost

192.168.153.10  hadoop-01

192.168.153.11  hadoop-02

192.168.153.12  hadoop-03


root@hadoop-02:~# vi /etc/hosts

root@hadoop-03:~# vi /etc/hosts




인코딩 방식 설정


하둡은 인코딩 방식으로 UTF-8을 사용한단다... 다행이 우분투는 기본적으로 UTF-8 사용해서 천만 다행 -_-/




방화벽 해제


어차피 내부통신에다 연습용이니 다 해제!


root@hadoop-01:~# ufw disable

root@hadoop-02:~# ufw disable

root@hadoop-03:~# ufw disable




자바 설치


Oracle JDK 1.7 을 설치 하도록 하겠다.


http://ubuntuhandbook.org/index.php/2014/02/install-oracle-java-6-7-or-8-ubuntu-14-04/


Oracle JDK 7 을 설치 했을 시에 설치되는 위치는 "/usr/lib/jvm/java-7-oracle" 이다.




하둡 클러스터를 위한 SSH 설정


마스터 노드는 클러스터에 위치한 다른 모든 노드들에 접근할 수 있어야 한다. 하둡은 이러한 접근을 위해 SSH를 사용한다.


마스터 노드(hadoop-01)에서 쌍으로 이루어진 SSH 키를 생성한다.


hadoop@hadoop-01:~$ pwd

/home/hadoop


hadoop@hadoop-01:~$ ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/home/hadoop/.ssh/id_rsa): [Enter]
Created directory '/home/hadoop/.ssh'.
Enter passphrase (empty for no passphrase): [Enter]
Enter same passphrase again: [Enter]
Your identification has been saved in /home/hadoop/.ssh/id_rsa.
Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub.
The key fingerprint is:
c5:f5:5b:3a:83:13:1b:9b:07:2c:dc:11:34:3d:a9:41 hadoop@hadoop-01
The key's randomart image is:
...


생성된 공개키를 다른 서버에 복사한다.


ssh-copy-id -i [복사할 공개키 경로] [대상 서버 계정]@[대상 서버]


hadoop@hadoop-01:~$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub hadoop@hadoop-02

The authenticity of host 'hadoop-02 (192.168.153.11)' can't be established.

ECDSA key fingerprint is 28:1a:ab:fa:2d:a8:e0:c8:5b:ef:f7:ff:74:69:45:96.

Are you sure you want to continue connecting (yes/no)? yes

/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed

/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys

hadoop@hadoop-02's password: [SSH 비밀번호 입력]


Number of key(s) added: 1


Now try logging into the machine, with:   "ssh 'hadoop@hadoop-02'"

and check to make sure that only the key(s) you wanted were added.


hadoop@hadoop-01:~$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub hadoop@hadoop-03

hadoop@hadoop-01:~$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub hadoop@hadoop-01




하둡 다운로드 및 압축 해제


현재 최신 버전은 1.2.1 이다.


hadoop@hadoop-01:~$ pwd

/home/hadoop


hadoop@hadoop-01:~$ wget https://archive.apache.org/dist/hadoop/common/hadoop-1.2.1/hadoop-1.2.1.tar.gz


압축 해제!


hadoop@hadoop-01:~$ tar xvfz hadoop-1.2.1.tar.gz




hadoop-env 수정


이것 저것....


hadoop@hadoop-01:~/hadoop-1.2.1/conf$ pwd

/home/hadoop/hadoop-1.2.1/conf


hadoop@hadoop-01:~/hadoop-1.2.1/conf$ vi hadoop-env.sh


# The java implementation to use.  Required.

# 현재 우분투 14에 Oracle JDK 7을 설치하면 아래와 같은 경로에 설치된다.

export JAVA_HOME=/usr/lib/jvm/java-7-oracle


# The maximum amount of heap to use, in MB. Default is 1000.

export HADOOP_HEAPSIZE=768


# The directory where pid files are stored. /tmp by default.
# NOTE: this should be set to a directory that can only be written to by
#       the users that are going to run the hadoop daemons.  Otherwise there is
#       the potential for a symlink attack.
export HADOOP_PID_DIR=/home/hadoop/hadoop-1.2.1/pids




masters 수정


masters 파일에는 보조네임 노드를 실행할 서버를 설정한다. (여러개 가능)


hadoop@hadoop-01:~/hadoop-1.2.1/conf$ vi masters


hadoop-02




slaves 수정


slaves 파일에는 데이터 노드를 실행할 서버를 설정한다.


hadoop@hadoop-01:~/hadoop-1.2.1/conf$ vi slaves


hadoop-02

hadoop-03




core-site.xml 수정


이것 저것... ㅠㅠ


hadoop@hadoop-01:~/hadoop-1.2.1/conf$ vi core-site.xml


<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>


<!-- Put site-specific property overrides in this file. -->

<configuration>

        <property>

                <name>fs.default.name</name>

                <value>hdfs://hadoop-01:9000</value>

        </property>

        <property>

                <name>hadoop.tmp.dir</name>

                <value>/home/hadoop/hadoop-data</value>

        </property>

</configuration>




hdfs-site.xml 수정


...


hadoop@hadoop-01:~/hadoop-1.2.1/conf$ vi hdfs-site.xml


<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>


<!-- Put site-specific property overrides in this file. -->

<configuration>

        <property>

                <name>dfs.replication</name>

                <value>3</value>

        </property>

        <property>

                <name>dfs.http.address</name>

                <value>hadoop-01:50070</value>

        </property>

        <property>

                <name>dfs.secondary.http.address</name>

                <value>hadoop-02:50090</value>

        </property>

</configuration>




mapred-site.xml 수정


..


hadoop@hadoop-01:~/hadoop-1.2.1/conf$ vi mapred-site.xml


<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>


<!-- Put site-specific property overrides in this file. -->

<configuration>

        <property>

                <name>mapred.job.tracker</name>

                <value>hadoop-01:9001</value>

        </property>

</configuration>




하둡 환경설정 복사


네임노드에서 모든 수정 작업이 완료되면 다른 데이터노드 서버로 파일을 복사한다.


hadoop@hadoop-01:~$ cd ~

hadoop@hadoop-01:~$ tar zcvf hadoop.tar.gz hadoop-1.2.1

hadoop@hadoop-01:~$ scp hadoop.tar.gz hadoop@hadoop-02:/home/hadoop

hadoop@hadoop-01:~$ scp hadoop.tar.gz hadoop@hadoop-03:/home/hadoop


각각 서버로 전송된 파일 압축 해제


hadoop@hadoop-02:~$ tar xvfz hadoop.tar.gz

hadoop@hadoop-03:~$ tar xvfz hadoop.tar.gz




하둡 실행


네임노드를 초기화한다.


hadoop@hadoop-01:~/hadoop-1.2.1/bin$ ./hadoop namenode -format


INFO namenode.NameNode: STARTUP_MSG: /************************************************************ STARTUP_MSG: Starting NameNode STARTUP_MSG: host = hadoop-01/192.168.153.10 STARTUP_MSG: args = [-format] STARTUP_MSG: version = 1.2.1 STARTUP_MSG: build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.2 -r 1503152; compiled by 'mattf' on ... STARTUP_MSG: java = 1.7.0_80 ************************************************************/ INFO util.GSet: Computing capacity for map BlocksMap INFO util.GSet: VM type = 64-bit INFO util.GSet: 2.0% max memory = 778502144 INFO util.GSet: capacity = 2^21 = 2097152 entries INFO util.GSet: recommended=2097152, actual=2097152 INFO namenode.FSNamesystem: fsOwner=hadoop INFO namenode.FSNamesystem: supergroup=supergroup INFO namenode.FSNamesystem: isPermissionEnabled=true INFO namenode.FSNamesystem: dfs.block.invalidate.limit=100 INFO namenode.FSNamesystem: isAccessTokenEnabled=false accessKeyUpdateInterval=0 min(s), accessTokenLifetime=0 min(s) INFO namenode.FSEditLog: dfs.namenode.edits.toleration.length = 0 INFO namenode.NameNode: Caching file names occuring more than 10 times INFO common.Storage: Image file /home/hadoop/hadoop-data/dfs/name/current/fsimage of size 112 bytes saved in 0 seconds. INFO namenode.FSEditLog: closing edit log: position=4, editlog=/home/hadoop/hadoop-data/dfs/name/current/edits INFO namenode.FSEditLog: close success: truncate to 4, editlog=/home/hadoop/hadoop-data/dfs/name/current/edits INFO common.Storage: Storage directory /home/hadoop/hadoop-data/dfs/name has been successfully formatted. INFO namenode.NameNode: SHUTDOWN_MSG: /************************************************************ SHUTDOWN_MSG: Shutting down NameNode at hadoop-01/192.168.153.10 ************************************************************/


전부 실행


hadoop@hadoop-01:~/hadoop-1.2.1/bin$ ./start-all.sh


starting namenode, logging to /home/hadoop/hadoop-1.2.1/libexec/../logs/hadoop-hadoop-namenode-hadoop-01.out hadoop-03: starting datanode, logging to /home/hadoop/hadoop-1.2.1/libexec/../logs/hadoop-hadoop-datanode-hadoop-03.out hadoop-02: starting datanode, logging to /home/hadoop/hadoop-1.2.1/libexec/../logs/hadoop-hadoop-datanode-hadoop-02.out hadoop-01: starting secondarynamenode, logging to /home/hadoop/hadoop-1.2.1/libexec/../logs/hadoop-hadoop-secondarynamenode-hadoop-01.out starting jobtracker, logging to /home/hadoop/hadoop-1.2.1/libexec/../logs/hadoop-hadoop-jobtracker-hadoop-01.out hadoop-03: starting tasktracker, logging to /home/hadoop/hadoop-1.2.1/libexec/../logs/hadoop-hadoop-tasktracker-hadoop-03.out hadoop-02: starting tasktracker, logging to /home/hadoop/hadoop-1.2.1/libexec/../logs/hadoop-hadoop-tasktracker-hadoop-02.out




제대로 올라갔는지 확인하자


hadoop@hadoop-01:~$ jps

3050 JobTracker

2730 NameNode


hadoop@hadoop-02:~$ jps

3067 SecondaryNameNode

2951 DataNode

3190 TaskTracker


hadoop@hadoop-03:~$ jps

3087 TaskTracker

2949 DataNode


http://hadoop-01:50070




반응형

'Study > Hadoop' 카테고리의 다른 글

Install Ambari and Deploy HDP in CentOS  (1) 2016.06.05
Installing Hive(Hadoop 1) + MySQL on CentOS 6.7  (0) 2016.01.05
//