RedPlug's Tory

WIndows Server군에 대한 AV(Anti Virus) 예외 처리 항목 list입니다.


https://social.technet.microsoft.com/wiki/contents/articles/953.microsoft-anti-virus-exclusion-list.aspx


RSS 피드

https://social.technet.microsoft.com/wiki/contents/articles/953.microsoft-anti-virus-exclusion-list/rss.aspx

https://www.microsoft.com/en-us/download/details.aspx?id=53353


설치 시 SQL Express 설치 필요.

Update Check : Ctrl + U





https://gallery.technet.microsoft.com/PowerShell-Robocopy-GUI-08c9cacb





-------------------------------------------------------------------------------

   ROBOCOPY     ::     Windows용 견고한 파일 복사                              

-------------------------------------------------------------------------------


  시작됨: 2018년 12월 17일 월요일 오후 2:52:50

             사용법 :: ROBOCOPY 원본 대상 [파일 [파일]...] [옵션]


               원본 :: 원본 디렉터리(드라이브:\경로 또는 \\서버\공유\경로)

               대상 :: 대상 디렉터리(드라이브:\경로 또는 \\서버\공유\경로)

               파일 :: 복사할 파일입니다. 이름/와일드카드: 기본값은 "*.*"입니다.


::

:: 복사 옵션:

::

                 /S :: 비어 있는 디렉터리는 제외하고 하위 디렉터리를 복사합니다.

                 /E :: 비어 있는 디렉터리를 포함하여 하위 디렉터리를 복사합니다.

             /LEV:n :: 원본 디렉터리 트리의 최상위 n개 수준만 복사합니다.


                 /Z :: 다시 시작 모드에서 파일을 복사합니다.

                 /B :: 백업 모드에서 파일을 복사합니다.

                /ZB :: 다시 시작 모드를 사용합니다. 액세스가 거부된 경우 백업

                       모드를 사용합니다.

                 /J :: 버퍼를 사용하지 않은 I/O로 복사합니다(큰 파일에 권장).

            /EFSRAW :: EFS RAW 모드에서 암호화된 모든 파일을 복사합니다.


  /COPY:copyflag[s] :: 파일에 대해 복사할 내용입니다. 기본값은 /COPY:DAT입니다.

                       (copyflags : D=데이터, A=특성, T=타임스탬프).

                       (S=보안=NTFS ACL, O=소유자 정보, U=감사 정보).


 

               /SEC :: 보안된 파일을 복사합니다. /COPY:DATS와 동일합니다.

           /COPYALL :: 모든 파일 정보를 복사합니다. /COPY:DATSOU와 동일합니다.

            /NOCOPY :: 파일 정보를 복사하지 않습니다. /PURGE와 사용하면 좋습니다.

            /SECFIX :: 건너뛴 파일도 포함하여 모든 파일의 파일 보안을 수정합니다.

            /TIMFIX :: 건너뛴 파일도 포함하여 모든 파일의 파일 시간을 수정합니다.


             /PURGE :: 원본에 없는 대상 파일/디렉터리를 삭제합니다.

                /MIR :: 디렉터리 트리를 미러링합니다. /E와 /PURGE를 함께 쓰는 것과 동일합니다.


               /MOV :: 파일을 이동합니다. 복사한 다음 원본에서 삭제합니다.

              /MOVE :: 파일 및 디렉터리를 이동합니다. 복사한 다음 원본에서

                       삭제합니다.


     /A+:[RASHCNET] :: 제공된 특성을 복사된 파일에 추가합니다.

     /A-:[RASHCNET] :: 제공된 특성을 복사된 파일에서 제거합니다.


            /CREATE :: 디렉터리 트리와 길이가 0인 파일만 만듭니다.

               /FAT :: 8.3 FAT 파일 이름만 사용하여 대상 파일을 만듭니다.

               /256 :: 256자를 초과하는 매우 긴 경로에 대한 지원을 사용하지

                       않습니다.


             /MON:n :: 원본을 모니터링합니다. n개 이상의 변경 내용이

                       표시된 경우 다시 실행합니다.

             /MOT:m :: 원본을 모니터링합니다. 변경 내용이 있으면 m분 후에

                       다시 실행합니다.


      /RH:hhmm-hhmm :: 실행 시간 - 새 복사본을 시작할 수 있는 시간입니다.

                /PF :: 통과 기준이 아닌 파일당 기준으로 실행 시간을 확인합니다.


             /IPG:n :: 패킷 간 간격(ms), 저속 회선에서 사용 가능한 대역폭을

                       확보합니다.


                /SL :: 대상에 대한 심볼 링크를 복사합니다.


            /MT[:n] :: n개의 스레드가 있는 다중 스레드를 복사합니다(기본값 8).

                       n은 1 이상 128 이하여야 합니다.

                       이 옵션은 /IPG 및 /EFSRAW 옵션과 호환되지 않습니다.

                       성능을 향상시키려면 /LOG 옵션을 사용하여 출력을 리디렉션하세요.


 /DCOPY:copyflag[s] :: 디렉터리에 대해 복사할 내용(기본값은 /DCOPY:DA).

                       (copyflags : D=데이터, A=특성, T=타임스탬프).


           /NODCOPY :: 디렉터리 정보 복사 안 함(기본적으로 /DCOPY:DA 수행).


         /NOOFFLOAD :: Windows 복사본 오프로드 메커니즘을 사용하지

                       않고 파일을 복사합니다.


::

:: 파일 선택 옵션:

::

                 /A :: 보관 특성 집합이 있는 파일만 복사합니다.

                 /M :: 보관 특성이 있는 파일만 복사하고 보관 특성을 해제합니다.

    /IA:[RASHCNETO] :: 지정된 특성을 가진 파일만 포함합니다.

    /XA:[RASHCNETO] :: 지정된 특성을 가진 파일을 제외합니다.


 /XF file [file]... :: 지정된 이름/경로/와일드카드와 일치하는 파일을 제외합니다.

 /XD dirs [dirs]... :: 지정된 이름/경로와 일치하는 디렉터리를 제외합니다.


                /XC :: 변경된 파일을 제외합니다.

                /XN :: 새 파일을 제외합니다.

                /XO :: 오래된 파일을 제외합니다.

                /XX :: 추가 파일 및 디렉터리를 제외합니다.

                /XL :: 고립된 파일 및 디렉터리를 제외합니다.

                /IS :: 같은 파일을 포함합니다.

                /IT :: 조정된 파일을 포함합니다.


             /MAX:n :: 최대 파일 크기 - n바이트를 초과하는 파일을 제외합니다.

             /MIN:n :: 최소 파일 크기 - n바이트 미만의 파일을 제외합니다.


          /MAXAGE:n :: 최대 파일 사용 기간 - n일/날짜보다 오래된 파일을

                       제외합니다.

          /MINAGE:n :: 최소 파일 사용 기간 - n일/날짜보다 최신 파일을

                       제외합니다.

          /MAXLAD:n :: 최대 마지막 액세스 날짜 - n 이후에 사용되지 않은

                       파일을 제외합니다.

          /MINLAD:n :: 최소 마지막 액세스 날짜 - n 이후에 사용된 파일을

                       제외합니다.

                       n이 1900보다 크면 n은 n일과 같고 그렇지 않으면

                       n은 YYYYMMDD 날짜입니다.


                /XJ :: 연결 지점을 제외합니다. 일반적으로 기본값으로 포함됩니다.


               /FFT :: FAT 파일 시간(2초 단위)을 가정합니다.

               /DST :: 1시간의 DST 시간 차이를 보완합니다.


               /XJD :: 디렉터리의 연결 지점을 제외합니다.

               /XJF :: 파일의 연결 지점을 제외합니다.


::

:: 다시 시도 옵션:

::

               /R:n :: 실패한 복사본에 대한 다시 시도 횟수입니다. 기본값은

                       1백만입니다.

               /W:n :: 다시 시도 간 대기 시간입니다. 기본값은 30초입니다.


               /REG :: /R:n 및 /W:n을 레지스트리에 기본 설정으로 저장합니다.


               /TBD :: 정의할 공유 이름을 기다립니다(다시 시도 오류 67).


::

:: 로깅 옵션:

::

                 /L :: 목록 전용 - 파일을 복사 또는 삭제하거나 타임스탬프를

                       만들지 않습니다.

                 /X :: 선택된 파일을 제외하고 모든 추가 파일을 보고합니다.

                 /V :: 자세한 정보 표시를 출력하고 건너뛴 파일을 표시합니다.

                /TS :: 출력에 원본 파일 타임스탬프를 포함합니다.

                /FP :: 출력에 파일의 전체 경로 이름을 포함합니다.

             /BYTES :: 바이트 크기로 인쇄합니다.


                /NS :: 크기 없음 - 파일 크기를 기록하지 않습니다.

                /NC :: 클래스 없음 - 파일 클래스를 기록하지 않습니다.

               /NFL :: 파일 목록 없음 - 파일 이름을 기록하지 않습니다.

               /NDL :: 디렉터리 목록 없음 - 디렉터리 이름을 기록하지 않습니다.


                /NP :: 진행률 없음 - 복사율(%)을 표시하지 않습니다.

               /ETA :: 복사하는 파일의 예상 도착 시간을 표시합니다.


          /LOG:file :: 상태를 로그 파일에 출력합니다. 기존 로그를 덮어씁니다.

         /LOG+:file :: 상태를 로그 파일에 출력합니다. 기존 로그에 추가합니다.


       /UNILOG:file :: 상태를 유니코드로 로그 파일에 출력합니다. 기존

                       로그를 덮어씁니다.

      /UNILOG+:file :: 상태를 유니코드로 로그 파일에 출력합니다. 기존 로그에

                       추가합니다.


               /TEE :: 로그 파일과 콘솔 창에 출력합니다.


               /NJH :: 작업 헤더가 없습니다.

               /NJS :: 작업 요약이 없습니다.


           /UNICODE :: 상태를 유니코드로 출력합니다.


::

:: 작업 옵션:

::

       /JOB:jobname :: 명명된 작업 파일에서 매개 변수를 가져옵니다.

      /SAVE:jobname :: 명명된 작업 파일에 매개 변수를 저장합니다.

              /QUIT :: 매개 변수를 볼 수 있도록 명령줄을 처리한 후에 끝냅니다. 

              /NOSD :: 원본 디렉터리가 지정되어 있지 않습니다.

              /NODD :: 대상 디렉터리가 지정되어 있지 않습니다.

                /IF :: 다음 파일을 포함합니다.


::

:: 설명:

::

       볼륨의 루트 디렉터리에서 /PURGE 또는 /MIR을 사용하면 

       요청된 작업이 robocopy에 의해 시스템 볼륨 정보 디렉터리의 

       파일에도 적용됩니다. 적용되지 않게 하려면 /XD 스위치를 

       사용하여 해당 디렉터리를 건너뛰도록 robocopy에 

       명령할 수 있습니다.

 


https://gallery.technet.microsoft.com/scriptcenter/Find-HBA-and-WWPN-53121140



Get-WmiObject -class MSFC_FCAdapterHBAAttributes -namespace "root\WMI" | ForEach-Object {(($_.NodeWWN) | ForEach-Object {"{0:x}" -f $_}) -join ":"}

1. 우분투 설치

- Ubuntu Desktop 18.04 버젼 설치 하여 테스트 진행

- Namenode * 1ea, DataNode * 3ea 설치 진행

 노드

Hostname

IP 

 비고

NameNode

 master

192.168.0.200 

 

DataNode 01

 slave01

192.168.0.201 

 

DataNode 02 

 slave02

192.168.0.202 

 

DataNode 03

 slave03

 192.168.0.203

 



2. 패키지 업데이트 & 업그레이드

sudo apt-get update && sudo apt-get upgrade

3. 레파지토리 추가 및 패키지 업데이트

sudo add-apt-repository ppa:webupd8team/java

sudo apt-get update

자바 설치, 자바 업그레이드, 설치 확인

sudo apt-get install oracle-java8-installer

sudo apt-get upgrade

java -version

하둡 그룹 생성

sudo addgroup hadoop

하둡 계정 생성

sudo adduser --ingroup hadoop hduser

관리자 권한 추가

sudo nano /etc/sudoers


hduser 라인 추가

# User privilege specification

root        ALL=(ALL:ALL) ALL

hduser    ALL=(ALL:ALL) ALL


hosts파일 수정 내용 추가 (namenode,datanode 모두 수정)
sudo nano /etc/hosts 
하기 내용 추가
192.168.0.200   master
192.168.0.201   slave01
192.168.0.202   slave02
192.168.0.203   slave03

ssh 설치 +rsa키 설정

apt-get install openssh-server

sudo su hduser
cd
ssh-keygen -t rsa -P ""
cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys

scp -rp ~/.ssh/authorized_keys hduser@slave01:~/.ssh/authorized_keys
scp -rp ~/.ssh/authorized_keys hduser@slave02:~/.ssh/authorized_keys
scp -rp ~/.ssh/authorized_keys hduser@slave03:~/.ssh/authorized_keys


*SSH 접속을 위하여 마스터 서버에서 모두 복사(편의상 실 운용 서버는 아마 별도로 만들어서 authorized_keys에 추가로 복사해줘야 하는것으로 보여짐)
scp -rp ~/.ssh/id_rsa hduser@slave01:~/.ssh/id_rsa
scp -rp ~/.ssh/id_rsa hduser@slave02:~/.ssh/id_rsa
scp -rp ~/.ssh/id_rsa hduser@slave03:~/.ssh/id_rsa
scp -rp ~/.ssh/id_rsa hduser@slave01:~/.ssh/id_rsa.pub
scp -rp ~/.ssh/id_rsa hduser@slave02:~/.ssh/id_rsa.pub
scp -rp ~/.ssh/id_rsa hduser@slave03:~/.ssh/id_rsa.pub

/home/redplug/.ssh/authorized_keys: No such file or directory 라고 노출될 경우 .ssh폴더 생성하여야 함.



하둡 다운로드&압축풀기&설치위치 변경
wget http://mirror.navercorp.com/apache/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz

tar zxvf hadoop-2.7.7.tar.gz

sudo mv ./hadoop-2.7.7 /usr/local/hadoop/

sudo chown hduser:hadoop -R /usr/local/hadoop
네임노드,데이터노드 폴더 만들기

마스터 노드

sudo mkdir -p /usr/local/hadoop_tmp/hdfs/namenode

sudo mkdir -p /usr/local/hadoop_tmp/hdfs/datanode

sudo chown hduser:hadoop -R /usr/local/hadoop_tmp/

sudo chmod 777 /usr/local/hadoop_tmp/


데이터노드

sudo mkdir -p /usr/local/hadoop_tmp/hdfs/datanode

sudo chown hduser:hadoop -R /usr/local/hadoop_tmp/

sudo chmod 777 /usr/local/hadoop_tmp/

bashrc 수정
> 부팅 시 자동실행되는 파일(Windows autoexec.bat파일과 같은 역할)
cd ~
sudo nano .bashrc

하기내용 기입
#  -- HADOOP ENVIRONMENT VARIABLES START -- #
export JAVA_HOME=/usr/lib/jvm/java-8-oracle
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
export PATH=$PATH:$JAVA_HOME/bin
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
#  -- HADOOP ENVIRONMENT VARIABLES END -- #

bashrc적용
source .bashrc

* JAVA_HOME 위치 : java -XshowSettings:properties -version 2>&1 > /dev/null | grep 'java.home' 에서/jre빼면됨.


hadoop-env.sh 수정
sudo nano $HADOOP_HOME/etc/hadoop/hadoop-env.sh

export JAVA_HOME=${JAVA_HOME} 하단에 JAVA_HOME위치 기입
export JAVA_HOME='/usr/lib/jvm/java-8-oracle'



core-site.xml 수정 (모든노드 수정)
sudo nano $HADOOP_HOME/etc/hadoop/core-site.xml

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



hdfs-site.xml 수정
마스터 노드

sudo nano $HADOOP_HOME/etc/hadoop/hdfs-site.xml

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <property>
        <name>dfs.permissions</name>
        <value>false</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/usr/local/hadoop_tmp/hdfs/namenode</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/usr/local/hadoop_tmp/hdfs/datanode</value>
    </property>
</configuration>

슬레이브 노드

sudo nano $HADOOP_HOME/etc/hadoop/hdfs-site.xml

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <property>
        <name>dfs.permissions</name>
        <value>false</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/usr/local/hadoop_tmp/hdfs/datanode</value>
    </property>
</configuration>


yarn-site.xml 수정

sudo nano $HADOOP_HOME/etc/hadoop/yarn-site.xml


<configuration>

    <property>

        <name>yarn.nodemanager.aux-services</name>

        <value>mapreduce_shuffle</value>

    </property>

    <property>

        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>

        <value>org.apache.hadoop.mapred.ShuffleHandler</value>

    </property>

</configuration>


mapred-site.xml 수정

cp $HADOOP_HOME/etc/hadoop/mapred-site.xml.template $HADOOP_HOME/etc/hadoop/mapred-site.xml



sudo nano $HADOOP_HOME/etc/hadoop/mapred-site.xml


<configuration>

    <property>

        <name>mapreduce.framework.name</name>

        <value>yarn</value>

    </property>

</configuration>



masters, slaves 파일 편집

sudo nano $HADOOP_HOME/etc/hadoop/masters


master


sudo nano $HADOOP_HOME/etc/hadoop/slaves

master

slave01

slave02

slave03



네임노드 포멧(마스터노드만)

hdfs namenode -format

start-dfs.sh, start-yarn.sh 실행 및 확인(jps)

start-dfs.sh

start-yarn.sh


jps


> start-dfs.sh

NameNode, SecondaryNameNode, DataNode 가 실행

> start-yarn.sh

master에서는 ResourceManager, NodeManager 실행, slave NodeManager 실행


> http://master:50070 / 9000 액티브 확인 , 라이브노드 4개여야 함

> http://master:8088  / yarn 확인


맵리듀스 테스트

- 테스트용 파일을 HDFS에 업로드


hdfs dfs -mkdir /input

hdfs dfs -copyFromLocal /usr/local/hadoop/README.txt /input

hdfs dfs -ls /input

hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount /input/README.txt ~/wordcount-output


- 결과 디렉톨 확인

hdfs dfs -ls ~/wordcount-output

>  SUCCESS 있으면 성공, 파트 파일에 실해 정보 값 표기


- 실행 결과 확인

hduser@master:/usr/local/hadoop$hdfs dfs -cat ~/wordcount-output/part-r-00000


....

source  1

the     8

this    3

to      2

under   1

use,    2

uses    1

using   2

visit   1

website 1

which   2

wiki,   1

with    1

written 1

you     1

your    1

hduser@master:/usr/local/hadoop$

hduser@master:/usr/local/hadoop$

 






하둡 테스트


멀티노드 클러스터

- master ,slave1~3 서버, 네트워크 설정

- /etc/hosts 파일 설정에서 각 서버에 대한 DNS 설정

- /etc/hostname 파일 수정

- /bin/hostname -F /etc/hostname

> hostname 쳐서 확인

- 재부팅

- SSH 공개키 복사 작업

> scp -rp ~/.ssh/authorized_keys root@slave1:~/.ssh/authorized_keys

> scp -rp ~/.ssh/authorized_keys root@slave2:~/.ssh/authorized_keys

> scp -rp ~/.ssh/authorized_keys root@slave3:~/.ssh/authorized_keys

- 노드간 SSH 접속 설정(master~ slave3까지 모두 작업)

> ssh master
> exit
> ssh slave1

> exit
> ssh slave2

>  exit

> ssh slave3

- hadoop-env.sh 수정 (master에서 실행)

> gedit $HADOOP_HOME/etc/hadoop/hadoop-env.sh

> 25라인 JDK 경로 수정 : export JAVA_HOME=/usr/local/jdk1.8

> 104번 라인 하둡 데몬의 pid 저장 경로 수정 : export HADOOP_PID_DIR=/home/centos/hadoop-2.9.0/pids

- core-site.xml 수정 (모든 노드에서 실행)

> gedit $HADOOP_HOME/etc/hadoop/core-site.xml

> localhost:9000 > master:9000로 수정


- hdfs-site.xml 수정 (master)

> $HADOOP_HOME 하위에 namenode와 datanode 디렉토리 생성

> rm -rf $HADOOP_HOME/namenode

> mkdir $HADOOP_HOME/namenode

> chwon root -R $HADOOP_HOME/namenode

> chmod 777 $HADOOP_HOME/namenode

> rm -rf $HADOOP_HOME/datanode

> mkdir $HADOOP_HOME/datanode

> chwon root -R $HADOOP_HOME/datanode

> chmod 777 $HADOOP_HOME/datanode

> gedit $HADOOP_HOME/etc/hadoop/hdfs-site.xml

> dfs.replication 1 > 2로 수정

> dfsnamenode.name.dir, dfs.datanode.data.dir 내용 추가

- hdfs-site.xml 수정 (slave123)

> $HADOOP_NODE 하위에 datanode 생성

> rm -rf $HADOOP_HOME/datanode

> mkdir $HADOOP_HOME/datanode

> chwon root -R $HADOOP_HOME/datanode

> chmod 777 $HADOOP_HOME/datanode

> gedit $HADOOP_HOME/etc/hadoop/hdfs-site.xml
> dfs.replication 1 > 2로 수정

> dfs.datanode.data.dir 내용 추가

- 잡트래커 설정(모든노드)

> cp $HADOOP_HOME/etc/hadoop/mapred-site.xml-template $HADOOP_HOME/etc/hadoop/mapred-site.xml

> gpedit $HADOOP_HOME/etc/hadoop/mapred-site.xml

> mapreduce.framework.name yarn 추가

- yarn-size.xml 파일 수정 (모든노드)

> gedit $HADOOP_HOME/etc/hadoop/yarn-site.xml

> 기본 옵션 설정으로 수정

- masters, slaves 파일 수정(master만 수정)

> gedit $HADOOP_HOME/etc/hadoop/masters

> master

> gedit $HADOOP_HOME/etc/hadoop/slaves

> master
    slave1
    slave2
    slave3

- 네임노드 포멧(master에서만 실행), 하둡가동, HDFS 폴더 생성

> $HADOOP_HOME/bin/hdfs namenode -format

- 방화벽 내림 (모든노드)

> systemctl stop firewalld.service

> systemctl disable firewalld.service

- DFS, YARN 시작 (master만 실행)

> start-dfs.sh

NameNode, SecondaryNameNode, DataNode 가 실행

> start-yarn.sh

master에서는 ResourceManager, NodeManager 실행, slave NodeManager 실행

> 확인은 jps

> http://master:50070 / 9000 액티브 확인 , 라이브노드 4개여야 함

> http://master:8088  / yarn 확인


분석 프로그램 실행

- 맵리듀스 jab을 실행하기 위해 HDFS 데릭토리 만듬(master)

> hdfs dfs -mkdir /user

> hdfs dfs -mkdir /user/root

> hdfs dfs -mkdir /user/root/conf

- 하둡 쉘 커맨드로 확인(master)

> hdfs dfs -ls

- 하둡파일시스템에 파일 업로드

> hdfs dfs put $HADOOP_HOME/etc/hadoop/hadoop-env.sh /user/conf/hadoop-env.sh

- 업로드 파일 확인

> hdfs dfs -ls /

> hdfs dfs -ls /user

> hdfs dfs -ls /user/conf / hadoop-env-sh 파일 제대로 올라왔는지 확인



- 테스트용 파일을 HDFS에 업로드

hdfs dfs -mkdir /input

hdfs dfs -copyFromLocal /usr/local/hadoop/README.txt /input

hdfs dfs -ls /input

hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount /input/README.txt ~/wordcount-output


- 결과 디렉톨 확인

hdfs dfs -ls ~/wordcount-output



>  SUCCESS 있으면 성공, 파트 파일에 실해 정보 값 표기

- 실행 결과 확인

> hdfs dfs -cat ~/wordcount-output/part-r-00000



- 로컬로 다운

> hdfs dfs -copyToLocal ~/wordcount-output/part-r-00000 /home/centos/result.txt

> head -5 /home/centos/result.txt / 5줄만 머리에 출력

- 두번 실행하게 되면 에러 발생 아웃풋 디렉토리는 삭제하여야 함

> hdfs dfs -rm -r ~/wordcount-output // r은 하위디렉토리 까지 삭제

- master:50070에서 사용량 확인 가능


명령어 관련내용

- 형식 : hdfs dfs -명령어 옵션

> dfs : Distributed Filesystem Shell (분산 파일 시스템 쉘)


- help : 도움말

> hdfs dfs -help

> hdfs dfs -help ls // ls 명령어에 대한 도움말


- ls : 파일 목록 보기

> hdfs dfs -ls //// 경로 없을경우 사용자 계정의 홈 디렉토리 조회

> hdfs dfs -ls conf / 해당 디렉토리 파일 목록 조회

> hdfs dfs -ls -R / 하위 디렉토리 목록까지 출력

> master 뿐만 아니라 slave에도 동일하게 실행 가능


- du : 파일용량 확인

> hdfs dfs -du : 디렉토리 또는 파일의 사용량을 바이트 단위로 출력

> hdfs dfs -du -s : 해당 디렉토리의 전체용량만(합계) 출력


- cat, text : 파일내용 보기

> cat : 텍스트 파일 전용

> hdfs dfs -cat conf/hadoop-env.sh

> text : 텍스트 파일과 압축파일도 읽을 수 있음

> hdfs dfs -text conf/hadoop-env.sh


- mkdir : 디렉토리 생성

> hdfs dfs -mkdir input

> hdfs dfs ls 


- put, copyFromLocal,get, copyToLocal, getmerge, cp : 파일 복사

> hdfs dfs -put $HADOOP_HOME/etc/hadoop/core-site.xml input

input 경로로 복사

> hdfs dfs -ls input

> hdfs dfs -copyFromLocal : 로컬 파일시스템에서 하둡분산파일 시스템으로 복사

> hdfs dfs -copyFromLocal $HADOOP_HOME/etc/hadoop/core-site.xml input/a : input폴더에 a이름으로 변경하여 복사

> hdfs dfs -get input/a a : HDFS의 input/a 를 로컬시스템 에 현재폴더에 a라는 파일이름으로 복사

> ls -la

> hdfs dfs -copyToLocal input/a b : HDFS의 input/a 파일을 로컬시스템에 b라는 파일명으로 변경하여 복사

> cat b

> hdfs dfs -getmerge : 머지하여 복사

> hdfs dfs -getmerge input c : HDFS의 input디렉토리의 파일을 로컬시스템의 c파일에 머지하여 복사

> cat c

> ls -la : c파일 용량 확인

> hdfs dfs -cp conf/hadoop-env.sh hadoop-env-copy.sh : HDFS서버에서 HDFS서버로 파일 복사

> hdfs dfs -ls

> hdfs dfs -ls /user/root


- mv, moveFromLocal : 파일이동

>  hdfs dfs -mv input/a input/a2 : input/a 파일을 input/a2로 옮김 (HDFS간 옮김)

> hdfs dfs -moveFromLocal : 로컬 시스템에서 하둡 분산파일 시스템으로 옮김

> hdfs dfs -mkdir temp

> hdfs dfs -moveFromLocal a temp/a : 로컬시스템의 a파일을 HDFS의 temp/a파일로 옮김


- rm : 디렉토리나 파일 삭제

> hdfs dfs -rm temp/a : temp 디렉토리의 a파일 삭제

> hdfs dfs -rm temp : temp 디렉토리 삭제

> hdfs dfs -rm -r input : input 디렉토리 및 하위 디렉토리, 파일까지 다 삭제 


- count : 카운트값 조화

> hdfs dfs -count conf : 디렉토리, 파일, 파일사이즈


- tail : 파일의 마지막 내용 확인

> hdfs dfs -tail hadoop-env-copy.sh


- chmod : 권한변경

> hdfs dfs -chmod 777 conf : conf 디렉토리 권한을 777로 변경

> 폴더 내 하위 파일까지 권한 변경하는 방법 확인

> hdfs dfs -ls : conf 권한 변경 확인

> 유닉스 파일 권한 : 10자리
    디렉토리(1) 소유자(3) 그룹(3) 전체(3)

r 읽기(4)

w 쓰기(2)

x 실행(1)


- touchz : 0바이트 파일 생성

> hdfs dfs -touchz test.txt

> hdfs dfs -ls


redplug입니다.


Exchange 사서함 용량 추출 스크립트입니다.

실제로 돌리면 파일이 2개가 떨어지게 됩니다.

1번파일은 Guid, displayname, Database, ItemCount, TotalSize

2번파일은 Guid, Displayname, Account, Database, WindowsEmailAddress


양쪽 둘 다 값이 필요하신 경우 Guid값 기준으로 csv파일을 합쳐주시면 됩니다.


 $DBS = "DB1", "DB2"

foreach ($DB in $DBS)

{

$today = (Get-Date).ToString("yyyyMMdd")

$Exportcsv = $today + "_" + $DB

Get-MailboxStatistics -Database $DB | Select MailboxGuid,DisplayName, database, ItemCount, @{name="TotalItemSize (MB)"; expression={[math]::Round(($_.TotalItemSize.ToString().Split("(")[1].Split(" ")[0].Replace(",","")/1MB),2)}} | Sort-Object TotalItemSize -Descending | Export-CSV c:\work\csv\$Exportcsv.csv -Encoding UTF8 -NoTypeInformation


get-mailbox -Database $DB -resultsize unlimited | Select ExchangeGuid,DisplayName,Name,Database,windowsemailaddress | Sort-Object TotalItemSize -Descending | Export-CSV c:\work\csv\$Exportcsv"_2".csv -Encoding UTF8 -NoTypeInformation

}




해당 두 파일 합치기 위한 Join-Object 확인중


.\join-object.ps1


$L = Import-csv -Path D:\Work\join-object\20181218_DB-08A.csv


$R = Import-csv -Path D:\Work\join-object\20181218_DB-08A_2.csv


Join-Object -Left $L -Right $R -LeftJoinProperty MailboxGuid -RightJoinProperty ExchangeGuid -Type AllInBoth -Prefix r_ | export-csv D:\work\join-object\test.csv -Encoding UTF8 -NoTypeInformation

 

출처 : http://ramblingcookiemonster.github.io/Join-Object/

join-object.zip



netlogon 로깅

Windows2018. 9. 20. 15:54


시작

nltest /dbflag:0x2080ffff


종료

nltest /dbflag:0x0


로그 파일 위치

%windir%\debug\netlogon.log


참고링크

https://support.microsoft.com/ko-kr/help/109626/enabling-debug-logging-for-the-netlogon-service

파워쉘 반복문

Windows2018. 8. 30. 10:16

for(;;) {명령어;sleep 10}


간단한건데 자꾸 까먹길래 적어둡니다.


안녕하세요. Redplug입니다.


Windows 10 1709 사용자중 일부 사용자에서 Lync(S4b) 로그인 후 Lync 인증서 발급 후에

인증서 선택화면이 발생(저희쪽은 무선 연결 시 발생하지 않던 인증서 선택 창이 노출되었습니다.)할 경우에 

처리 방법입니다.


해당 방법은 Lync인증서를 개인용 인증서에서 별도 LyncCertStore 인증서 위치로 변경 하는 방법입니다.


1. Lync 로그아웃 > 내 로그인 정보 삭제



2. 레지스트리 수정 : 버젼에 맞게 HKLM 혹은 HKCU 둘중에 하나 수정 (수정파일 하단에 첨부)

> Skype for business 2015

- HKLM\SOFTWARE\Policies\Microsoft\Office\15.0\Lync > Dword 생성 UseLyncCertStore 값 1

- HKCU\SOFTWARE\Policies\Microsoft\Office\15.0\Lync > Dword 생성 UseLyncCertStore 값 1

> Skype for business 2016

- HKLM\SOFTWARE\Policies\Microsoft\Office\16.0\Lync > Dword 생성 UseLyncCertStore 값 1

- HKCU\SOFTWARE\Policies\Microsoft\Office\16.0\Lync > Dword 생성 UseLyncCertStore 값 1


3. 재부팅 후 Lync 로그인


5. 인증서 위치 변경 확인


@레지스트리 수정파일

UseLyncCertStore.zip


@참고링크

https://blogs.technet.microsoft.com/dodeitte/2015/05/31/how-to-change-the-certificate-store-used-for-lync-client-certificates/

안녕하세요 Redplug입니다.




'CredSSP 암호화 Oracle 수정 때문일 수 있습니다.'라는 문구 메세지 포함된 경고 문구가 노출되며 원격 데스크톱 접속이 안되는 경우 처리방법입니다.


CredSSP 프로토콜 원격 코드 실행 취약성 이슈로 관련 업데이트 진행하지 않을 시 차단시키는 이슈이며,

처리방법은 하기와 같습니다.


1. 접속 클라이언트 PC > 실행 > gpedit.msc

2. 컴퓨터 구성 > 관리 템플릿 > 시스템 > 자격 증명 위임 > Oracle 수정 암호화

3. 사용 체크 > 보호수준 '취약' 변경

4. gpupdate /force 혹은 재부팅 진행




참고

https://support.microsoft.com/ko-kr/help/4093492/credssp-updates-for-cve-2018-0886-march-13-2018

http://www.catalog.update.microsoft.com/Search.aspx?q=KB4093120

https://portal.msrc.microsoft.com/ko-kr/security-guidance/advisory/CVE-2018-0886