상세 설치 가이드¶
Linux OS만 제공된 환경(CentOS 7)을 기준으로, 데이터 프리퍼레이션 기능을 모두 사용해볼 수 있도록 메타트론을 설치, 설정하는 것에 대한 가이드 문서입니다.
1. 필수 패키지 설치¶
루트로 다음 명령들을 실행합니다.
yum clean all && yum repolist && yum -y update
yum -y install tar unzip vi vim telnet apr apr-util apr-devel apr-util-devel net-tools curl openssl elinks locate python-setuptools
yum -y install java-1.8.0-openjdk-devel.x86_64
export JAVA_HOME=/usr/lib/jvm/java
export PATH=$PATH:$JAVA_HOME/bin
2. Hadoop 설치¶
루트로 다음 명령들을 실행합니다. Hadoop 바이너리는 가까운 mirror를 통해서 다운로드 받는 것이 더 좋습니다.
yum -y install openssh-server openssh-clients rsync netstat wget
yum -y update libselinux
ssh-keygen -q -N "" -t dsa -f /etc/ssh/ssh_host_dsa_key
ssh-keygen -q -N "" -t rsa -f /etc/ssh/ssh_host_rsa_key
ssh-keygen -q -N "" -t rsa -f /root/.ssh/id_rsa
cp /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys
wget http://archive.apache.org/dist/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz
tar -zxvf hadoop-2.7.3.tar.gz -C /opt
rm -f hadoop-2.7.3.tar.gz
ln -s /opt/hadoop-2.7.3 /opt/hadoop
export HADOOP_PREFIX=/opt/hadoop
export HADOOP_COMMON_HOME=$HADOOP_PREFIX
export HADOOP_HDFS_HOME=$HADOOP_PREFIX
export HADOOP_MAPRED_HOME=$HADOOP_PREFIX
export HADOOP_YARN_HOME=$HADOOP_PREFIX
export HADOOP_CONF_DIR=$HADOOP_PREFIX/etc/hadoop
export YARN_CONF_DIR=$HADOOP_PREFIX
export PATH=$PATH:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin
sed -i "/^export JAVA_HOME/ s:.*:export JAVA_HOME=$JAVA_HOME:" $HADOOP_CONF_DIR/hadoop-env.sh
sed -i "/^export HADOOP_CONF_DIR/ s:.*:export HADOOP_CONF_DIR=$HADOOP_CONF_DIR:" $HADOOP_CONF_DIR/hadoop-env.sh
다음 파일들을 $HADOOP_CONF_DIR에 넣어주세요.
계속해서 루트로 다음 명령들을 실행합니다.
$HADOOP_PREFIX/bin/hdfs namenode -format
다음 내용을 /root/.ssh/config에 다음 내용을 추가해주세요.
Host *
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
LogLevel quiet
Port 2122
계속해서 루트로 다음 명령들을 실행합니다.
chmod 600 /root/.ssh/config
chown root:root /root/.ssh/config
chmod +x $HADOOP_CONF_DIR/*-env.sh
sed -i "/^[^#]*UsePAM/ s/.*/#&/" /etc/ssh/sshd_config
echo "UsePAM no" >> /etc/ssh/sshd_config
echo "Port 2122" >> /etc/ssh/sshd_config
SSH 서버를 다시 시작합니다.
service sshd restart
HDFS 및 Yarn을 실행합니다.
start-dfs.sh
start-yarn.sh
Hadoop이 제대로 설치되었는지 테스트해봅니다.
hdfs dfs -mkdir -p /user/hadoop/input
hdfs dfs -put $HADOOP_PREFIX/LICENSE.txt /user/hadoop/input
hadoop jar $HADOOP_PREFIX/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /user/hadoop/input /user/hadoop/output
3. MySQL 설치¶
wget http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm \
&& yum -y localinstall mysql57-community-release-el7-7.noarch.rpm \
&& yum repolist enabled | grep "mysql.*-community.*" \
&& yum -y install mysql-community-server mysql \
&& rm -f mysql57-community-release-el7-7.noarch.rpm
service mysqld start
다음의 명령을 통해 임시패스워드를 알아냅니다.
grep 'temporary password' /var/log/mysqld.log | awk {'print $11'}
Z&O+estx9vTt
위 패스워드를 이용해서 mysql_secure_installation을 실행합니다.
mysql_secure_installation
Enter password for user root: -> Z&O+estx9vTt
New password: -> Metatron123$
Re-enter new password: -> Metatron123$
Change the password for root ? ((Press y|Y for Yes, any other key for No) : y
New password: -> Metatron123$
Re-enter new password: -> Metatron123$
Do you wish to continue with the password provided? -> y
Remove anonymous users? -> enter
Disallow root login remotely? -> enter
Remove test database and access to it? -> enter
Reload privilege tables now? -> enter
MySQL에 접속해봅니다.
mysql -uroot -pMetatron123$
4. Hive 설치¶
wget http://mirror.navercorp.com/apache/hive/hive-2.3.6/apache-hive-2.3.6-bin.tar.gz \
&& tar -zxvf apache-hive-2.3.6-bin.tar.gz -C /opt \
&& rm -f apache-hive-2.3.6-bin.tar.gz \
&& ln -s /opt/apache-hive-2.3.6-bin /opt/hive
export HIVE_HOME=/opt/hive
export PATH=$PATH:$HIVE_HOME/bin:$HIVE_HOME/hcatalog/sbin
wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.38/mysql-connector-java-5.1.38.jar
mv mysql-connector-java-5.1.38.jar $HIVE_HOME/lib/
다음 파일을 $HIVE_HOME/conf에 넣어주세요.
Hive metastore를 초기화합니다.
mysql -uroot -pMetatron123$
create database hive_metastore;
create user 'hive'@'%' identified by 'Metatron123$';
grant all privileges on *.* to 'hive'@'%';
grant all privileges on hive_metastore.* to 'hive'@'%';
create user 'hive'@'localhost' identified by 'Metatron123$';
grant all privileges on *.* to 'hive'@'localhost';
grant all privileges on hive_metastore.* to 'hive'@'localhost';
flush privileges;
quit
schematool -initSchema -dbType mysql
Hive를 시작합니다.
hdfs dfs -mkdir -p /user/hive/warehouse
mkdir -p $HIVE_HOME/hcatalog/var/log
hcat_server.sh start
hiveserver2 &
Hive에 접속해봅니다.
beeline -u jdbc:hive2://localhost:10000 "" ""
5. Druid 설치¶
wget https://sktmetatronkrsouthshared.blob.core.windows.net/metatron-public/discovery-dist/latest/druid-0.9.1-latest-hadoop-2.7.3-bin.tar.gz
mkdir /servers
tar zxf druid-0.9.1-latest-hadoop-2.7.3-bin.tar.gz -C /servers
ln -s /servers/druid-* /servers/druid
export DRUID_HOME=/servers/druid
다음 파일들을 다운로드 받아서 지정된 위치로 넣어주세요.
Download URL |
Target Location |
---|---|
$DRUID_HOME/conf/druid/single/jvm.config |
|
$DRUID_HOME/conf/druid/single/broker/runtime.properties |
|
$DRUID_HOME/conf/druid/single/historical/runtime.properties |
|
$DRUID_HOME/conf/druid/single/middleManager/runtime.properties |
cd $DRUID_HOME
./start-single.sh
http://localhost:8090/ 으로 접속이 된다면 성공한 것입니다.
6. Metatron 설치¶
wget https://sktmetatronkrsouthshared.blob.core.windows.net/metatron-public/discovery-dist/latest/metatron-discovery-latest-bin.tar.gz
mkdir /servers
tar zxf metatron-discovery-latest-bin.tar.gz -C /servers
ln -s /servers/metatron-discovery-* /servers/metatron-discovery
export METATRON_HOME=/servers/metatron-discovery
다음 파일들을 $METATRON_HOME/conf에 넣어주세요.
Metatron을 초기화합니다.
mysql -uroot -pMetatron123$
create database polaris;
create user 'polaris'@'%' identified by 'Metatron123$';
grant all privileges on *.* to 'polaris'@'%';
grant all privileges on hive_metastore.* to 'polaris'@'%';
create user 'polaris'@'localhost' identified by 'Metatron123$';
grant all privileges on *.* to 'polaris'@'localhost';
grant all privileges on hive_metastore.* to 'polaris'@'localhost';
flush privileges;
quit
cd $METATRON_HOME
bin/metatron.sh --init start
진행상황을 보려면 log 파일을 tail 하세요.
tail -f logs/metatron-*.out
이제 http://localhost:8180/ 으로 접속하면 됩니다.
7. Preptool 설치¶
yum -y install https://centos7.iuscommunity.org/ius-release.rpm \
&& yum install -y python36u python36u-libs python36u-devel python36u-pip git \
&& ln -s /bin/python3.6 /bin/python3 \
&& ln -s /bin/pip3.6 /bin/pip3 \
&& pip3 install requests
yum -y install git
git clone https://github.com/metatron-app/discovery-prep-tool.git
cd discovery-prep-tool
테스트용 파일을 다운로드 받습니다.
python3 preptool -f sales-data-sample.csv
File dataset created라고 나오면 preptool이 제대로 동작하는 것입니다.