반응형

사양이 괜찮던 데스크탑에서 우분투 가상환경로 하둡 공부를 했었는데, 

수료 후에 집에 있는건 맥북 뿐인지라... 맥북에서라도 하둡을 공부하고자하여 설치할려고 했었으나

brew로 인스톨 시 알수없는 에러 때문에 무한히 삽질하다가,,, 다른 방법을 찾아 블로그에 기록으로 남겨

나와 같은 고통받는 사람이 그나마 좀 적었으면 하는 바람이다.

필자는 하둡1을 다운받을 예정이다.

(필자는 이미 설치를 완료하였기 때문에 이점을 유의하고 진행하길 바란다.)

(하둡 환경변수 또한 이미 설정되어있다.)


http://apache.tt.co.kr/hadoop/common/stable1/

위 주소에서 하둡을 다운받을 수 있다.

hadoop-1.2.1.tar.gz 링크의 주소를 복사해서 터미널에서 진행한다.


터미널에서 wget 명령어를 통해 해당 링크의 아이템을 다운받는데 물론 마우스클릭으로 받아도 상관은 없다.


쭈루루룩... 다운이 받아지는 중이고 

결과품은 홈 디렉토리에 위치하고있을것이다.

이제 압축을 풀어보자 

tar xzvf hadoop-1.2.1.tar.gz  

압축을 풀면 

hadoop-1.2.1이라는 폴더가 생기고

이 폴더에 심볼로 hadoop을 생성해주자

ln -s hadoop-1.2.1 hadoop

(이유는 나중에 환경변수 등등 일일이 -1.2.1을 타이핑해주기 귀찮기 때문에...)

자 이제 하둡설치가 끝났다.!

그럼 이제 환경설정을 담당해야한다.

하둡에는 3가지 모드가 있다.


●독립모드(Standalone mode) 

 데몬 프로세스가 동작하지 않고, 모든것이 단독 JVM 내에서 동작. 개발하는 동안 맵리듀스 프로그램을 동작시키기에 적합한데, 테스트 및 디버깅이 용이.

●가상분산모드(Pseudo-distributed mode) 

 하둡 데몬 프로세스가 로컬컴퓨터에서 동작하므로 작은 규모의 클러스터를 시뮬레이트 할 수 있다.

●완전분산모드(Fully distributed mode)

 하둡 데몬프로세스는 다수 컴퓨터로 구성된 그룹에서 동작한다.




독립모드에서는 hdfs가 필요없고 로컬에서 바로 진행된다.

우리는 몇대의 컴퓨터가 집에 있는 것도아니고 하둡에 대해 잘알아서 테스트 디버깅용으로 필요한것이 아니기 때문에

가상분산모드로 진행한다.

(따로 모드를 선택하는 장치나 옵션은 없다.

환경설정 내용에 따라 모드가 갈린다.)

내용으로 돌아와서 conf안에는 환결설정 파일들로 가득하다.

이중에서 우리가 만져야될 파일은

hadoop-env.sh

mapped-site.xml

slaves

masters

core-site.xml

hdfs-site.xml

총 6개이다.

차근차근히 따라오길 바라며, 처음 접한다면 수기로 직접 작성해보길 바란다.

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

hadoop-env.sh에서 할일은 자바 경로를 잡아주는것과 실행시 일어날 워닝을 잡아주는 구문이나

라인11은 선택사항이다.

(자바설치 경로가 기억나지않는다면

위 명령어로 조회할 수 있다)

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

core-site.xml

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

hdfs-site.xml

8번은 복제옵션을 지칭하며 9번은 복사갯수를 정한다.

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

mapped-site.xml

잡트래커 옵션을 준다

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

마지막으로 slaves와 masters에는 localhost라고 막 적는다.

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

실행전

hadoop namenode -format 명령어로 네임노드를 포맷시켜주고 실행하여야한다.


모든 설정이 정상적으로 이루어졌다면 start-all.sh을 실행시켜보라

로그를 보았을때 어디서 무엇이 실행되는지 보이지 않는가?

모든 노드들과 트래커들이 실행된 모습.

이제 예제를 실행시켜보고 문제가 없으면 사용에 준비는 끝났다.

hdfs에 hadoop-evn.sh을 넣어놓고 wordcount 예제를 돌려보자.


LoganLeeui-MacBook-Pro:hadoop Logan$ hadoop jar hadoop-examples-1.2.1.jar wordcount conf/hadoop-env.sh output

18/02/10 03:25:11 INFO input.FileInputFormat: Total input paths to process : 1

18/02/10 03:25:11 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

18/02/10 03:25:11 WARN snappy.LoadSnappy: Snappy native library not loaded

18/02/10 03:25:11 INFO mapred.JobClient: Running job: job_201802100324_0001

18/02/10 03:25:12 INFO mapred.JobClient:  map 0% reduce 0%

18/02/10 03:25:15 INFO mapred.JobClient:  map 100% reduce 0%

18/02/10 03:32:44 INFO mapred.JobClient: Task Id : attempt_201802100324_0001_r_000000_0, Status : FAILED

Shuffle Error: Exceeded MAX_FAILED_UNIQUE_FETCHES; bailing-out.

18/02/10 03:32:44 WARN mapred.JobClient: Error reading task outputConnection refused (Connection refused)

18/02/10 03:32:44 WARN mapred.JobClient: Error reading task outputConnection refused (Connection refused)

18/02/10 03:40:14 INFO mapred.JobClient: Task Id : attempt_201802100324_0001_r_000000_1, Status : FAILED

Shuffle Error: Exceeded MAX_FAILED_UNIQUE_FETCHES; bailing-out.

18/02/10 03:40:14 WARN mapred.JobClient: Error reading task outputConnection refused (Connection refused)

18/02/10 03:40:14 WARN mapred.JobClient: Error reading task outputConnection refused (Connection refused)

18/02/10 03:47:45 INFO mapred.JobClient: Task Id : attempt_201802100324_0001_r_000000_2, Status : FAILED

Shuffle Error: Exceeded MAX_FAILED_UNIQUE_FETCHES; bailing-out.

18/02/10 03:47:45 WARN mapred.JobClient: Error reading task outputConnection refused (Connection refused)

18/02/10 03:47:45 WARN mapred.JobClient: Error reading task outputConnection refused (Connection refused)

18/02/10 03:55:18 INFO mapred.JobClient: Job complete: job_201802100324_0001

18/02/10 03:55:18 INFO mapred.JobClient: Counters: 20

18/02/10 03:55:18 INFO mapred.JobClient:   Map-Reduce Framework

18/02/10 03:55:18 INFO mapred.JobClient:     Combine output records=178

18/02/10 03:55:18 INFO mapred.JobClient:     Spilled Records=178

18/02/10 03:55:18 INFO mapred.JobClient:     Map output materialized bytes=3151

18/02/10 03:55:18 INFO mapred.JobClient:     Map input records=62

18/02/10 03:55:18 INFO mapred.JobClient:     SPLIT_RAW_BYTES=116

18/02/10 03:55:18 INFO mapred.JobClient:     Map output records=306

18/02/10 03:55:18 INFO mapred.JobClient:     Map output bytes=3856

18/02/10 03:55:18 INFO mapred.JobClient:     Combine input records=306

18/02/10 03:55:18 INFO mapred.JobClient:     Total committed heap usage (bytes)=179306496

18/02/10 03:55:18 INFO mapred.JobClient:   File Input Format Counters 

18/02/10 03:55:18 INFO mapred.JobClient:     Bytes Read=2676

18/02/10 03:55:18 INFO mapred.JobClient:   FileSystemCounters

18/02/10 03:55:18 INFO mapred.JobClient:     HDFS_BYTES_READ=2792

18/02/10 03:55:18 INFO mapred.JobClient:     FILE_BYTES_WRITTEN=60256

18/02/10 03:55:18 INFO mapred.JobClient:   Job Counters 

18/02/10 03:55:18 INFO mapred.JobClient:     Launched map tasks=1

18/02/10 03:55:18 INFO mapred.JobClient:     Launched reduce tasks=4

18/02/10 03:55:18 INFO mapred.JobClient:     SLOTS_MILLIS_REDUCES=7072

18/02/10 03:55:18 INFO mapred.JobClient:     Total time spent by all reduces waiting after reserving slots (ms)=0

18/02/10 03:55:18 INFO mapred.JobClient:     SLOTS_MILLIS_MAPS=3591

18/02/10 03:55:18 INFO mapred.JobClient:     Total time spent by all maps waiting after reserving slots (ms)=0

18/02/10 03:55:18 INFO mapred.JobClient:     Failed reduce tasks=1

18/02/10 03:55:18 INFO mapred.JobClient:     Data-local map tasks=1

mapper가 일을 끝내고 reducer한테 전해줄 때 통신에러가 있는 듯 하다...

(원래 안그랬는데 글 쓰다가 다시 생겼다...)

해결편 보러가기

반응형
by 발전소장 에르 :) 2018. 2. 10. 17:29
반응형

필자는 마스터가 될 리눅스는 GUI로 다운받고 클러스터가 될 아이들은 server용으로 다운받았다.

실행했다. 그 이유는 결국은 사양문제이고 클러스터 처리과정은 물론 터미널로도 가능하니, 

마스터에서 자원을 슬레이브들이 공유하여, 하둡을 작동케하려고한다.

별거없다 계속 예예예예예만하면된다.

모르면 그냥 디폴트 값으로 가자.

이름을 잘 지어줘야한다.

괜히 잘못지어줬다가 재설치를 했다. 

잘못준이름을 바꿀려면 머리가 깨진다.

총 설치과정을 보여주는 리스트이며 개별로 선택이 가능하다.

물론 위에서 아래로 진행된다.


GRUB Boot Loader를 쓰겠냐는 말인데 

필자는 쓰겠다고했다.

예예예



물론 한국도 선택가능하다만, 필자는 영어가 더 좋다.

패스

키보드 설정인데 no로 했다.

잘 지어주어야한다.

계정설정

비밀번호가 약하다고 쓸꺼야? 라고하지만 물론 학습용이라면 상관없다.

홈 디렉토리 암호화할레? 아니!!

타임존 설정.

디폴트로!

 여기서 LVM이란?

 Logical Volume Manager를 의미한다.

더 자세한 설명을 원한다면 아래를 방문하기를 추천한다.

http://kit2013.tistory.com/199



프록시안쓸꺼니까 놉!

디폴트로 해주자.

그리고 또 vmware tool 깔아야한다.

ssh를 통해 하둡을 연동할것이기 때문에 체크해줬다

스페이스바로 체크가능.

여기까지만 한다면

마스터1개 슬레이브2개 총 3개의 vm을 맥북에 설치했다.

필자는 vmware Fusion을 이용했다.

다음엔 자바 설치와 하둡 설치 등등 핵심내용을 다뤄보고자한다.


반응형
by 발전소장 에르 :) 2017. 11. 28. 13:33
반응형

레퍼러스 문서가 조금 구버전이라 놀라긴했다만,

뭐 문제는 없으니까 시작해보도록하자.


1. Download Java 1.7 JDK and install it

하둡 구동에 필요한 자바(개인적으로 현재까지는 자바8을 추천)

$ brew tap homebrew/versions
$ brew install protobuf250
$ brew link --force --overwrite protobuf250
$ protoc --version
libprotoc 2.5.0

brew 로 손쉽게 다운받는게 이 얼마나 고마운 일인가.

3. Install cmake via Homebrew

$ brew install cmake

4. Install Hadoop 2.7.2 via Homebrew

$ brew install hadoop

심지어 하둡도 브루로 다운받을 수 있다니 세상에나...

$ wget http://apache.tt.co.kr/hadoop/common/hadoop-2.7.2/hadoop-2.7.2-src.tar.gz 
$ tar xvf hadoop-2.7.2-src.tar.gz
$ cd hadoop-2.7.2-src
$ mvn package -Pdist,native -DskipTests -Dtar
$ mv hadoop-dist/target/hadoop-2.7.2/lib /usr/local/Cellar/hadoop/2.7.2/

하.. 패키징 부분에서 1번 에러가 떳다..


6. Open hadoop-env.sh and add below variables

# /usr/local/Cellar/hadoop/2.7.2/libexec/etc/hadoop/hadoop-env.sh

export HADOOP_HOME="/usr/local/Cellar/hadoop/2.7.2"
export HADOOP_OPTS="$HADOOP_OPTS -Djava.library.path=$HADOOP_HOME/lib/native"

7. Edit core-site.xml

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

8. Edit hdfs-site.xml

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

10. Set passphraseless ssh

$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
$ ssh localhost

11. Format filesystem

$ hdfs namenode -format

12. Execute NameNode daemon, DataNode daemon

$ /usr/local/Cellar/hadoop/2.7.2/sbin/start-dfs.sh

13. Stop NameNode daemon, DataNode daemon

$ /usr/local/Cellar/hadoop/2.7.2/sbin/stop-dfs.sh


반응형
by 발전소장 에르 :) 2017. 11. 21. 00:18
반응형

Spider는 웹 사이트를 통해 링크를 따라 이동하고 페이지에서 정보를 추출하는 방법을 정의하는 클래스입니다.

default spirder는 아래와 같습니다.

class scrape.spiders.Spider 에 위치하며 각각의 부분과 설명들을 밑에 첨부합니다.

name 

 spider의 이름 

allowed_domains

 spider가 크롤링할 도메인들의 목록 

start_urls 

URL의 목록이고 어디서부터 크롤링할건지, 나중 크롤링을 위한 뿌리가 된다. 

custom_settings 

spider가 동작할때 project wide configuration으로 오버라이드된다.

crawler 

이 속성은 스파이더 인스턴스가 바인딩 된 크롤러 객체에 연결되는 속성입니다. 

setting

spider의 동작을 위한 세팅들 

logger 

Python logger가 log 메세지를 보내기위해 사용됩니다. 

from_crawler

(crawler,*args,**kwargs)

spider를 만들 메소드이며 파라미터별 

- crawler => 어떤 spider객체가 바인딩 될 것인지. 

- args(list) => method _init_()에 전달된 인자들입니다.

 start_requests()

어떤 특정 URL도 명시되지않았고 스크래핑을 위해 스파이더가 열렸을 경우 scrapy는 start_requests()method를 호출합니다. 

 make_requests_from_url(url)

url을 requests로 콘버트할때 사용됨


parse(response)

response를 처리하고 처리된 데이타를 리턴하고 다음 url을 따라갑니다. 

log(message[,level,component])

 spider logger를 통해 log msg를 보내는 메소드 

closed(reason) 

 spider가 종료될 떄 호출됩니다. 


Spider Arguments

스파이더 인수는 시작 URL을 지정하는 데 사용되며 다음과 같이 -a 옵션과 함께 크롤링 명령을 사용하여 전달됩니다.

scrape crawl first_scrapy -a group = accessories

위 코드는 스파이더가 어떻게 인자를 받는지 보여줍니다.

Generic Spider

Generic Spider를 사용하여 spider를 sub class로 분류할 수 있습니다.

그리고 그들의 목적은 특정 규칙에 기반한 웹사이트의 모든 링크를 타는게 목적입니다.

다음 스파이더에서 사용되는 예제의 경우 다음 필드가있는 프로젝트가 있다고 가정 해 봅시다.




반응형
by 발전소장 에르 :) 2017. 10. 17. 14:59
반응형

Scrapy 명령 도구는 다양한 인수 옵션 그룹이있는 다양한 객체에 대한 명령이 포함되어 있고 주로 'Scrapy tool'이라고도하는 Scrapy 제어하는 사용됩니다.


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

scrapy.cfg                - Deploy the configuration file

project_name/             - Name of the project

   _init_.py

   items.py               - It is project's items file

   pipelines.py           - It is project's pipelines file

   settings.py            - It is project's settings file

   spiders                - It is the spiders directory

      _init_.py

      spider_name.py

      . . .

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


위와 같은 구조를 가지고 있습니다.

scrapy.cfg 파일이 프로젝트 이름과 프로젝트 세팅을 담고있는 프로젝트 root 디렉토리입니다.


예를 들자면,


[settings] 

default = [name of the project].settings  


[deploy] 

#url = http://localhost:6800/ 

project = [name of the project] 

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


이렇게 생겼습니다.


Scrapy Tool 사용법


scrapy tool 밑에 보이는 커맨드와 사용법을 제공하고있습니다.


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

Scrapy X.Y  - no active project 

Usage: 

   scrapy  [options] [arguments] 

Available commands: 

   crawl      It puts spider (handle the URL) to work for crawling data 

   fetch      It fetches the response from the given URL

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


프로젝트 생성


scrapy startproject project_name으로 간단히 프로젝트를 생성할 있습니다.


앞으로 헷갈리지않도록 scrapy  전용 폴더를 만들어줍시다.

그리고는

scrape start project project_name 명령어를 통해 

본견적으로 시작해봅시다.

친절하게 아래에 명령어를 통해 스파이더를 시작할 수 있음! 이라고 해주네요

cd project_name

scrape gen spider example example.com

저는  logan이라고 이름을 지었습니다.

tree해보시면 전반적 구조가 보이실거에요.


중간에 궁금하신게 있으시다면 

scrape -h 명령어를 통해 확인가능합니다.


반응형
by 발전소장 에르 :) 2017. 10. 17. 12:16
반응형

겁나 빠른기로 소문난 Scrapy 파이썬으로 작성된 오픈-소스 크롤링 프레임워크입니다.

XPath 기반한 셀렉터의 도움으로 비롯해 웹페이지에서 데이터를 추출하기위해 주로 사용됩니다.


BSD 따라 2008626일에 처음 릴리즈되었으며, 2015 6월에 이정표인 1.0 버전이 릴리즈 되었습니다.


Scrapy 사용하는가?

  • 스케일이 크롤링 프로젝트를 쉽게 빌드할 있습니다.
  • “Selector”라고 불리는 built-in 메카니즘을 가지고있으며 웹사이트에서 데이터를 추출하는데 중요한 역할을 합니다.
  • 비동기로 리퀘스트를 처리하고 빠릅니다!
  • 오토-쓰로틀링 메카니즘을 사용하여 크롤링 속도를 자동으로 조율합니다.
  • 개발자 접근성을 보증합니다.!


Scrapy 특징

  • 크롤링 프레임워크로서 오픈소스임과 동시에 무료입니다!
  • JSON, CSV, XML 등의 포맷ㅇ로 feed export 생성해줍니다.
  • XPath 혹은 CSS 표현식을 사용하여 소스에서 데이터를 선택/추출하는 기능이 내장되어(built-in)있습니다.
  • 웹페이지로 데이터를 자동으로 추출하는크롤러 베이스로 되어있습니다.


Scarpy 강점

  • 쉡게 확장할수있고 빠르고 강력합니다.
  • Cross-platform application framework 입니다.(WINDOW, LINUX, MAC OS, BSD …)
  • Scrapy Request 비동기적으로 스케쥴되고 처리됩니다.
  • Scrapy 내장된 서비스 Scrapyd JSON 웹서비스를 이용하여 스파이더를 제어할 있고 프로젝트에 업로드할 있게 해줍니다.
  • 어떤 웹사이트가 raw data 접근을 지원하는 API 없음에도 활용할 있습니다.


Scrapy 단점

  • 파이썬 2.7+만을 지원합니다.
  • OS마다 설치법이 다릅니다.


반응형
by 발전소장 에르 :) 2017. 10. 17. 10:47
반응형

package com.access.string;


/*

 * 자바에서 String이란,  문자값들의 연속을 나타내는 객체이다.

 * 문자의 배열도 String과 똑같이 작동한다.

 * 

 *  compare(),concat(),equals(),split(),

 *  length(),replace(),compareTo(),intern(),substring()... 등 다양한 메소드를 지원한다.

 *  

 *  게다가 String은 아래의 3개 메소드를 구현하고있다.

 *  - Serializable

 *  - Comparable

 *  - CharSequence 

 *  

 *   

 */

public class StringTest {

public static void main(String[] args) {

//test1( );

//test2();

test3();

}


public void test() {

char[] ch = { 'j', 'a', 'v', 'a', 't', 'p', 'o', 'i', 'n', 't' };

String s = new String(ch);

System.out.println(s);

}


/*

* CharSequence Interface 는 문자의 연속을 나타내기위해 사용하는 인터페이스인데, 

* String, StringBuffer,StringBuilder 클래스들이 구현하고있다.

* String 객체를 만드는 2가지 방법이 있다. 

* 1. string literal 2. new keyword

* 1.쌍따옴표를 사용해서 객체를 생성한다. 

* String s = "welcome"; 과 같이 ""로 감싸서 String임을 JVM한테 알려준다. 

* 매번 String 문자를 만들때마다 JVM은 string contant pool을 체크한다.

*  만약 pool에 해당 string이

* 이미 존재한다면 pooling 인스턴스를 참조하여 리턴한다.

*/

public static void test2() {

String s1 = "Welcome";

String s2 = "Weclome"; // 새로운 인스턴스를 만들지않음.

/*

* 1번 방법으로 String 객체를 만들어봅시다.

*  먼저, "Welcome"이란 값을 가진 String객체를 string constant pool에서 JVM은 찾지않습니다. 

* s1 객체가 생성되면 그 다음 pool에서 "Welcome"이라는 값을 가진 string을 찾기

* 시작할겁니다.

* 그리고 pool에서 "Welcome"을 찾으면 새로 인스턴스를 생성하지않고 참조하고있는 인스턴스를 리턴하죠.

* 한마디로 이미 생성된 string에 대해서는 중복 인스턴스를 허용하지않고

*  효율적으로 같은 값을 가진 동일한 인스턴스를 리턴하게됩니다. 

*  (게다가, String object는 string constant pool이라는 특별한 메모리에 저장됩니다.)

* 그럼 자바는 왜 string literal 개념을 사용하는가? 

* 메모리를 효율적으로 관리하기위해서 위 개념을 사용하고있습니다. 

* 중복은 숙적이니까요.

*/


}


public static void test3() {

String s1 = "java";

char[] ch = { 's', 't', 'r', 'i', 'n', 'g', 's' };

String s2 = new String(ch); // new keyword로 string 객체를 생성.

String s3 = new String("example");

System.out.println(s1);

System.out.println(s2);

System.out.println(s3);

}

}


// String 객체의 메소드들은 나중에 한번에 정리해서 올리겠습니다~


반응형
by 발전소장 에르 :) 2017. 9. 30. 00:16
반응형

이클립스를 사용하며 다양한 플러그인(PlugIn) 과 디펜던시(dependency)를 사용할 수 밖에 없으실텐데요.

종종 발생하는 에러가 있죠, 

바로 다운받았음에도 불구하고 네트워크상 오류 혹은 다른 오류로 제대로 다운받지않았음에도 불과하고

이클립스는 완벽히 다운받았다고 우기다가 기어코 에러를 만들어내죠.

물론 Dependency 에러라면 .m2폴더에서 해당 폴더를 지운 후 이클립스에서 프로젝트를 새로고침하면 

똑똑한 이클립스가 다시 다운받아주고 거의 93%의 확률로 해결이 되는데요.

PlugIn의 경우에는 어떻게 해야할까요.

Uninstall을 눌러줌으로써 해당 플러그인 삭제가 가능합니다.


또는,

이클립스마켓플레이스( Eclipse Market Place)에서 해당 플러그인을 검색하시고 밑에 뜨는 

"Uninstall"을 누르셔서 삭제가 가능하고


정말 이클립스가 멍텅구리가 되서, 내가 수동으로 지워야겠다! 하시는 분들은

해당 플러그인 사이트를 참조하시어 플러그인이 설치된 디렉토리를 타고들어가서 

rm -rf 로 지우셔야겠지요.


근데 저는 tern Eclipse IDE를 다운받으려는데 4~5차례 마켓에서도 다운받고 Install New Software...로 수동으로 다운받아보고

했는데도 애가 당최 인식을 못하는거 아니겠습니까..

그래서 폭풍 구글링을 하던차에, 찾게된 이 곳!

https://www.eclipsezone.com//eclipse/forums/t61566.html

아니 이클립스를 "클린모드"로 실행시킬 수 있다고?!

개판인 워크스페이스를 지우기위해서는 eclipse를 실행시킬때 첫번쨰 인수로 -clean을 주면

OSGI framework와 eclipse runtime이 사용한 모든 캐시 데이터를 지워준다고하네요.

번들 디펜던시 분석 결과값들과 이클립스 확장 레지스트리 데이터도 지워준다고 합니다.

마지막으로 이클립스를 위에 언급된 캐시들을 재초기화하라고 강제한다고하네요.

주의점이있습니다.

일회용 플래그이므로 한번 실행 후에 지우길 권장하고있고,

삭제하지않고 실사용한다면 2~3배 길어진 스타팅 시간을 겪게될거라 장난반 진담반으로 명시해두고있네요.

그렇다면 이제 방법을 알아볼까요?

1. <이클립스 실행 디렉토리>에 있는 eclipse.ini의에 첫번째 줄에 -clean을 넣은 후 실행.

그냥 홈에서 들어가면 안들어가져요~ 두번 위로 올라가 줍시다.

vi로 금방 치고 빠집시다 !

상단에 i로 -clean를 넣어준 후 :wq로 저장 후 빠져나와 이클립스를 평소와 같이 실행시켜주세요.

그럼 이클립스가 평소와 다르게 세월아~네월아~ 시작하는걸 보실 수 있습니다.


2. 커맨드라인에서 이클립스를 실행할 때 인수로 -clean를 넣고 실행하면 됨!

저는 맥유저이니, 터미널로 들어가줍니다.

이클립스가 위치한 폴더에서 진행하였는데요.


뚜둔!



3.배치나 쉘 파일에 -clean을 넣어서 본인이 클린이 필요하다싶을때 한번 쯤 해주면 편하고 좋을듯?! 이라고하는데

귀찮아서 패스..( 배치나 쉘로 만들어놓을 가치는 없다고 봅니다..개인적으로!)


그래도 이것저것 더해보고도 안고쳐진다면..?

그냥 다시 설치하랍니다. ㅋㅋㅋㅋㅋㅋ

역시 모든 솔루션의 끝판왕은 " 재 설 치 " 네요.

긴글 읽어주셔서 감사하고 피드백받겠습니다~ 

목 건강 조심하세요~





반응형
by 발전소장 에르 :) 2017. 9. 27. 23:43
반응형

package com.access.array;


/*

 *  오브젝트와 클래스의 차이점

 *  Object

 *  1) 클래스의 인스턴스이다.

 *  2) 현실 존이다(펜, 렙탑, 모바일 등등)

 *  3) 물리적 존재이다

 *  4) 오브젝트는 new 키워드로 만들어진다.

 *  5) 매번 요구시 만들어진다.

 *  6) 오브젝트는 만들어질때 메모리에 할당된다.

 *  7) new 키워드,newInstance() method 등등 다양한 방법으로 오브젝트를 만들 수 있다.

 *  

 *  

 *  Class

 *  1) 오브젝트를 만들때 참조하는 도안 혹은 청사진이다.

 *  2) 유사한 객체의 그룹이다.

 *  3) 논리적 존재이다.

 *  4) class 키워드로 선언된다.

 *  5) 한번 선언된다.

 *  6) 클래스는 만들어질때 메모리에 할당되지않는다.

 *  7) class키워드로만 클래스를 정의할 수 있다.

 */

public class object {


}



반응형
by 발전소장 에르 :) 2017. 9. 25. 23:44
반응형

package com.command;


/*

 *  Java Command Line Argument

 *  자바프로그램을 실행할 때, 커맨드 라인에 인수를 넣어주는 것을 의미한다.

 *  콘솔에서 입력되어 프로그램에 전달되는데 입력으로 사용될 수 있다.

 *  그래서 프로그램이 작동할 때 다양한 값을 넣어 어떻게 반응하는지 테스트할때 편리하게 사용될 수 있고

 *  명렁창에서 n개의 인수를 줄 수 있다.

 *  

 *  

 *  예제를 보자. 

 */

public class CommandLineExample {

public static void main(String[] args) {

System.out.println("First argument is " + args[0]);

// 필자는 Run Configuraion에서 argument로 java 라고 줬다.

}


}

result = First argument is java



반응형
by 발전소장 에르 :) 2017. 9. 25. 17:49
| 1 2 3 4 5 6 |