2021년 6월 29일 화요일

hadoop standalone 환경설정

master


 1. core-site.xml

<configuration>

    <property>

        <name>fs.defaultFS</name>

        <value>hdfs://master:9000</value>

    </property>

</configuration>


2. hdfs-site.xml

<configuration>

    <property>

            <name>dfs.namenode.name.dir</name>

            <value>/home/hadoop/hdfsdata/namenode</value>

    </property>

    <property>

            <name>dfs.datanode.data.dir</name>

            <value>/home/hadoop/hdfsdata/datanode</value>

    </property>

    <property>

        <name>dfs.replication</name>

        <value>1</value>

    </property>

</configuration>


3. yarn-site.xml

<configuration>

    <property>

            <name>yarn.resourcemanager.hostname</name>

            <value>master</value>

    </property>

    <property>

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

            <value>mapreduce_shuffle</value>

    </property>

</configuration>


4. mapred-site.xml

configuration>

    <property>

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

            <value>yarn</value>

    </property>

</configuration>


5. workers

master

2021년 6월 26일 토요일

hadoop-3.3.1 standalone mode 설치하기

 1. 사용자 hadoop 생성

sudo 사용자 계정에서

$ sudo visudo

root 밑에 똑같은 권한 추가

 hadoop ALL=(ALL:ALL) ALL

저장

sudo adduser hadoop

su - hadoop


2. ssh 및 openssh-server 설치

sudo apt update

sudo apt install ssh

ssh localhost

sudo apt install openssh-server


3. java 설치

sudo apt install openjdk-8-jdk

java -version #확인결과 아래와 같이

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

openjdk version "1.8.0_292"

OpenJDK Runtime Environment (build 1.8.0_292-8u292-b10-0ubuntu1~20.04-b10)

OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode)

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

4. hadoop 다운로드
참조 : https://hadoop.apache.org/releases.html
바이너리 다운로드 사이트 참조
wget https://mirror.navercorp.com/apache/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz
tar xvzf hadoop-3.3.1.tar.gz

5. standalone mode 설치 
sudo apt install maven
sudo apt install git
git clone https://github.com/PacktPublishing/Apache-Hadoop-3-Quick-Start-Guide/ src/
mvn


2021년 6월 14일 월요일

Hive 3.1.2 운용 연습

 대부분 MySQL 명령어와 유사

1. 파일로 입력하기 

hdfs dfs -put names.txt text


> show databases;

> create database testdb;

> use testdb;

> CREATE EXTERNAL TABLE IF NOT EXISTS names(

EmployeeID INT, FirstName STRING, Title STRING, State STRING, Laptop STRING)

COMMENT 'Employee Names'

ROW FORMAT DELIMITED

FIELDS TERMINATED BY ','

STORED AS TEXTFILE

location '/user/bjyoo/text';

>select * from names;

지우기 

>drop table names;

>drop database testdb;

>exit;

2021년 6월 12일 토요일

Sqoop 1.4.7 설치

1. 다운로드

wget http://mirrors.estointernet.in/apache/sqoop/1.4.7/sqoop-1.4.7.tar.gz


tar -xvf sqoop-1.4.7.tar.gz

mv sqoop-1.4.7/ sqoop


2. bashrc 설정

export SQOOP_HOME=/home/stat/sqoop

export PATH=$PATH:$SQOOP_HOME/bin


3. sqoop-env.sh 환경설정

cd $SQOOP_HOME/conf

mv sqoop-env-template.sh sqoop-env.sh

nano sqoop-env.sh

hadoop 홈 path 설정 입력

-------

export HADOOP_COMMON_HOME=/home/stat/hadoop

export HADOOP_MAPRED_HOME=/home/stat/hadoop

-------

4. mysql connector 설치

wget http://www.mirrorservice.org/sites/ftp.mysql.com/Downloads/Connector-J/mysql-connector-java-8.0.25.tar.gz

tar -xvf mysql-connector-java-8.0.25.tar.gz

mv mysql-connector-java-8.0.15/mysql-connector-java-8.0.25.jar /$SQOOP_HOME/lib


5. 실행

sqoop -version

 

우분투에 스파크 spark 3.1.2 설치

참조 : https://computingforgeeks.com/how-to-install-apache-spark-on-ubuntu-debian/

1. 자바 설치

sudo apt install curl mlocate default-jdk -y

java -version


2. 아파치 스파크 다운로드

https://archive.apache.org/dist/spark/에서 버전확인

curl -O https://archive.apache.org/dist/spark/spark-3.1.1/spark-3.1.1-bin-hadoop3.2.tgz

tar -xvzf spark-3.1.1-bin-hadoop3.2.tgz

sudo mv spark-3.1.1-bin-hadoop3.2/ spark 


3. path 설정

nano .bashrc

----------

export SPARK_HOME=/home/stat/spark

export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin

-----------

source ~/.bashrc


4. master server 작동

start-master.sh 

sudo ss -tunelp | grep 8080


5. Worker Process 작동

start-worker.sh spark://ubuntu:7077

sudo updatedb

locate start-worker.sh

* 웹페이지 확인 localhost:8080


6. python 쉘명령어 사용

pyspark

도움말 help()

종료 exit()


7. Spark shell 명령 사용

spark-shell

:help

:quit


8. 정지시 stop-worker.sh, stop-master.sh 순으로 정지 



하둡 3.2.1과 Mysql과 함께 Apache-hive-3.1.2 설치

 참조 : http://hive.apache.org , http://hisoftlab.com/4907


1. 아파치 홈페이지에서 다운로드 http://hive.apache.org

하둡 3.X 대는 Hive도 3.x대로 다운로드


2. 압축해제 및 설치

tar xvzf apache-hive-3.1.2-bin.tar.gz

mv apache-hive-3.1.2-bin/ hive


3. path 환경설정

nano .bashrc

------- 아래내용 입력

## Hive setup

export HIVE_HOME=/home/stat/hive

export PATH=$PATH:$HIVE_HOME/bin

--------

source .bashrc


4. hive-env.sh 환경설정 

cd $HIVE_HOME/conf

cp hive-env.sh.template hive-env.sh

nano hive-env.sh

--------아래

HADOOP_HOME=/home/stat/hadoop

----------

5. mysql connector 다운 및 설치

mysql jar 파일 다운로드

wget https://downloads.mysql.com/archives/get/p/3/file/mysql-connector-java-5.1.46.zip

unzip mysql-connector-java-5.1.46

cp mysql-connector-java-5.1.46/mysql-connector-java-5.1.46-bin.jar /usr/local/hive/lib


6. hive-site.xml 설정

nano hive-site.xml

-----

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

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

<configuration>

    <property>

        <name>hive.metastore.local</name>

        <value>true</value>

    </property>

    <property>

        <name>javax.jdo.option.ConnectionURL</name>

    <value>jdbc:mysql://localhost:3306/hive?allowPublicKeyRetrieval=true&amp;useSSL=false&amp;createDatabaseIfNotExist=true</value>

    </property>

    <property>

        <name>javax.jdo.option.ConnectionDriverName</name>

        <value>com.mysql.jdbc.Driver</value>

    </property>

    <property>

        <name>javax.jdo.option.ConnectionUserName</name>

        <value>mysql서버사용자id</value>

    </property>

    <property>

        <name>javax.jdo.option.ConnectionPassword</name>

        <value>mysql서버 사용자패스</value>

    </property>

</configuration>

-----------

## mysql 계정이 없으면 아래처럼 생성

mysql>create user '사용자id'@'localhost' identified by '사용자패스';

mysql>GRANT ALL PRIVILEGES ON *.* TO '사용자id'@'localhost';

flush privileges;

7. 디렉토리 생성

hdfs dfs -mkdir /tmp

hdfs dfs -mkdir /user

hdfs dfs -mkdir /user/hive

hdfs dfs -mkdir /user/hive/warehouse

hdfs dfs -chmod g+x /tmp

hdfs dfs -chmod g+x /user/hive

hdfs dfs -chmod g+x /user/hive/warehouse


8. schematool 띄우기

schematool -dbType mysql -initSchema

# 이미 실행해서 실패한 경우 mysql에서

drop database hive; 하고 시행해야 함


9. 하이브 실행

hive


10. 만약 아래와 같은 오류 발생시 조치
# hive error Exception in thread "main" java.lang.NoSuchMethodError
ls -al $HIVE_HOME/lib/guava-*
ls -al $HADOOP_HOME/share/hadoop/common/lib/guava-*
rm /home/stat/hive/lib/guava-19.0.jar
cp $HADOOP_HOME/share/hadoop/common/lib/guava-* $HIVE_HOME/lib/

2021년 6월 9일 수요일

우분투 20.04서버와 ssh-keygen을 사용하여 RSA key pairing으로 원격접속

1. 조건 : local 서버의 myid와 remote 서버의 myid가 같고 방화벽 port22 개방

2. /etc/hosts에 remote 서버의 ip주소와 hostname을 입력 설정

192.168.219.111 remote


3. ssh Key 생성

ssh-keygen -t rsa

scp ~/.ssh/id_rsa.pub myid@remote:id_rsa.pub1


4.접속 대상 myid@remote로 이동

cat ~/id_rsa.pub1 >> ~/.ssh/authorized_keys


5. 이제 내 서버에서 remote 서버로 접속 가능

ssh remote

2021년 6월 7일 월요일

Ubuntu 20.04환경과 Java-1.8.0 버전으로 Hadoop-3.3.0 cluster 2개 노드 설치 방법

참조 : https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/ClusterSetup.html

https://linuxconfig.org/ubuntu-20-04-hadoop


2개 노드 구성 : 2개의 데이터노드

node1 : namenode, datanode, resourcemanager, nodemanagers

node2: secondary namenodes, datanode, nodemanagers


sudo apt update


1. 기본적으로 java 8버전은 Apache Hadoop 3.x 버전을 지원할 수 있음

sudo apt install openjdk-8-jdk -y

java -version; javac -version

#버전이 1.8.0_252


2. openssh 설치

sudo apt install ssh 

ssh localhost

sudo apt install openssh-server openssh-client -y


3. /etc/hosts 설정  

sudo nano /etc/hosts

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

127.0.0.1 localhost

192.168.219.101 node1

192.168.219.102 node2

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

필요시 hadoop 사용자 생성

sudo adduser hadoop

su -hadoop

* node1 사용자와 node2 사용자 계정이 동일해야함


4. 패스워드 없이 로그인 설정 : authorized_keys에 양쪽것 모두 추가

ssh-keygen -t rsa 

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys # 내 것 추가

scp ~/.ssh/id_rsa.pub ndoe2:

ssh node2 옮겨서 

cat ~/id_rsa.pub1 >> ~/.ssh/authorized_keys # 상대것 추가

* node2 것을 node1에도 추가하고, 자신 것도 추가


5. 하둡 설치

참조 : https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/ClusterSetup.html


# https://hadoop.apache.org/releases.html 접속 버전확인

wget https://downloads.apache.org/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz

tar xvzf hadoop-3.3.0.tar.gz

mv hadoop-3.3.0 hadoop

nano .bashrc

----- 아래 환경설정  입력

#java home setup

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

export PATH=$PATH:$JAVA_HOME/bin


#Hadoop Related Options

export HADOOP_HOME=/home/hadoop/hadoop

export HADOOP_INSTALL=$HADOOP_HOME

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 PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"

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

source ~/.bashrc


6. hadoop-env.sh 환경설정 

nano hadoop/etc/hadoop/hadoop-env.sh

---------------위의 파일 들어가서 아래 주석부분 밑에 자바 홈 활성화

# The java implementation to use. By default, this environment

# variable is REQUIRED on ALL platforms except OS X!

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

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

# 하둡과 자바 설정 확인

hadoop version

java -version


7. core-site.xml 파일 수정

nano hadoop/etc/hadoop/core-site.xml

------------- 아래 내용 입력

<configuration>

    <property>

        <name>fs.defaultFS</name>

        <value>hdfs://node1:9000</value>

    </property>

</configuration>


8.  hdfs-site.xml 파일 수정

nano hadoop/etc/hadoop/hdfs-site.xml

---------# 아래내용

<configuration>

    <property>

            <name>dfs.namenode.name.dir</name>

            <value>/home/hadoop/hdfsdata/nameNode</value>

    </property>

    <property>

            <name>dfs.datanode.data.dir</name>

            <value>/home/hadoop/hdfsdata/dataNode</value>

    </property>

    <property>

        <name>dfs.replication</name>

        <value>2</value>

    </property>

    <property>

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

        <value>node2:50090</value>

    </property>

</configuration>

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

9. yarn-site.xml 파일 수정

nano hadoop/etc/hadoop/yarn-site.xml

----------------#

<configuration>

    <property>

            <name>yarn.resourcemanager.hostname</name>

            <value>node1</value>

    </property>

    <property>

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

            <value>mapreduce_shuffle</value>

    </property>

</configuration>

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

 10. mapred-site.xml 파일 수정

nano hadoop/etc/hadoop/mapred-site.xml

-------------#

<configuration>

    <property>

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

            <value>yarn</value>

    </property>

</configuration>

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

11. workers 설정

nano hadoop/etc/hadoop/workers

node1

node2


## node1에서 node2로 설정파일 일괄적으로 보내기

rsync -avzh ~/hadoop/etc/hadoop/* node2:/home/hadoop/hadoop/etc/hadoop/

또는 

scp ~/hadoop/etc/hadoop/* node2:/home/hadoop/hadoop/etc/hadoop/


12.  HDFS NameNode 포맷/ Start Hadoop Cluster

hdfs namenode -format


start-dfs.sh

start-yarn.sh

jps # 자바 프로세스 5개 확인

또는 start-all.sh로 동시실행  

node1에서 jps 명령 입력하면 5개 프로세스 확인

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

 10289 ResourceManager

10452 NodeManager

10838 Jps

10010 DataNode

9852 NameNode

--------------
ssh node2에서 jps 명령입력시 4개 프로세스 확인
----------
5648 DataNode
6372 Jps
5959 NodeManager
5817 SecondaryNameNode
------------

13. 실행상태 확인 

hdfs dfsadmin -report로 확인 가능하고

브라우저는 아래로 확인 

node1:9870 # hadoop name node

node2:9864 # DataNodes

node1:8088 #  YARN Resource Manager

* 필요시 namenode 리프레쉬 명령

hadoop dfsadmin -refreshNodes


14. 혹시 설정 변경 후 다시 시행하려면 namenode 포맷 전에 node1과 node2에서 기존 자료 삭제

rm -rf  hdfsdata

hdfs namenode -format


 15. 필요시 실행 정지 일괄은 stop-all.sh

구분은 stop-yarn.sh, stop-dfs.sh 순으로


 16. 기타 명령어 데이터 디렉토리 생성 및 입력

hdfs dfs -mkdir /user

hdfs dfs -mkdir /user/your-id

hdfs dfs -mkdir text

wget http://167.179.112.24/blog/wp-content/uploads/2021/06/names.csv

hdfs dfs -put *.csv text

hdfs dfs -ls text 

hdfs dfsadmin -report