Hue

오픈소스 비즈니스 컨설팅
둘러보기로 가기 검색하러 가기

Apache Hadoop 관리 도구인 Hue를 정리 합니다.

Hue 개요

  • Hue에서 제공하는 Hadoop 관리 기능
  • Catalog App : Database schema와 데이터 관리
  • SQL 작성 및 실행 for Hive, Impala
  • Pig App : Pig script를 작성하고 실행, UDF 사용
  • Job Designer : Oozie를 통한 workflow 관리
  • Oracle database support

CentOS에서 hue 설치

사전 준비 사항

  • Ant 1.7.1
  • Maven 3.0.5
  • MySQL 5.1.69
  • Sqlite 3.6.20
  • Python 2.6.6
  • OpenLdap 2.4.23
  • Gcc 4.4.7
  • Cyrus-sasl 2.1.23
yum install ant
yum install mysql mysql-devel
yum install sqlite sqlite-devel
yum install python python-devel python-setuptools python-simplejson python-ldap*
yum install openldap openldap-*
yum install gcc gcc-*
yum install libxml2 libxml2-devel libxslt libxslt-devel 
yum install cyrus-sasl cyrus-sasl-devel cyrus-sasl-gssapi

설치

  • CentOS에 hue 사용자를 추가 합니다.
//--- groupadd -g [그룹ID] 그룹이름
//--- useradd -u [유저ID] -g [그룹ID or 그룹명] -s [사용되는 SHELL] -d [유저 Home 디렉토리] 계정이름
groupadd hue
useradd -g hue -s /bin/bash -d /home/hue hue
  • Hue를 다운로드하여 압축을 풉니다.
wget https://github.com/downloads/cloudera/hue/hue-2.1.0.tgz
tar xvf hue-2.1.0.tgz
chown -R root:root hue-2.1.0
vi hue-2.1.0/maven/pom.xml
<!--
  <parent>
    <groupId>com.cloudera</groupId>
    <artifactId>parent</artifactId>
    <version>1.0-SNAPSHOT</version>
  </parent>
-->
  • Hue를 설치 합니다.
cd hue-2.1.0
//--- make clean
//--- rm -rf /appl/hue

export PREFIX=/appl
make install

chmod 4750 /appl/hue/apps/shell/src/shell/build/setuid
  • vi ~/.bashrc
export HUE_HOME=/appl/hue
export PATH=$PATH:$HUE_HOME/build/env/bin
### alias supervisor="cd $HUE_HOME/build/env/bin && ./supervisor"
  • 방화벽에서 8888 port를 열어 주세요.

Hadoop 환경 설정

  • Hadoop WebHdfs 설정
  • vi /appl/hadoop/conf/hdfs-site.xml
 <property>
   <name>dfs.webhdfs.enabled</name>
   <value>true</value>
 </property>
  • vi /appl/hadoop/conf/core-site.xml
  • hue은 linux user 아이디
 <property>
   <name>hadoop.proxyuser.hue.hosts</name>
   <value>*</value>
 </property>
 <property>
   <name>hadoop.proxyuser.hue.groups</name>
   <value>*</value>
 </property>
  • vi /appl/hadoop/conf/httpfs-site.xml (파일이 없음, 추가 확인 필요)
  • Hadoop Cluster 외부에 Hue Server가 있을 경우
  • hue은 linux user 아이디
 <property>
   <name>hadoop.proxyuser.hue.hosts</name>
   <value>*</value>
 </property>
 <property>
   <name>hadoop.proxyuser.hue.groups</name>
   <value>*</value>
 </property>
  • Hadoop 로그 설정
  • vi /appl/hadoop/conf/core-site.xml
 <property>
   <name>hadoop.tmp.dir</name>
   <value>/tmp/hadoop/hadoop-${user.name}</value>
 </property>
  • 로그 파일을 hue 사용자로 쓸 수 있도록 권한을 수정 합니다.
chmod -R 777 /tmp/hadoop
  • MapReduce 1.0 설정
  • Hue가 JobTracker와 동일한 서버에 있을 경우
//--- hue-plugins-2.1.0-SNAPSHOT.jar 파일 복사
cp /appl/hue/desktop/libs/hadoop/java-lib/hue-plugins-*.jar /appl/hadoop/lib
  • Hue가 JobTracker와 다른 서버에 있을 경우
//--- hue-plugins-2.1.0-SNAPSHOT.jar 파일 복사
  • vi /appl/hadoop/conf/mapred-site.xml
<property>
  <name>jobtracker.thrift.address</name>
  <value>0.0.0.0:9290</value>
</property>
<property>
  <name>mapred.jobtracker.plugins</name>
  <value>org.apache.hadoop.thriftfs.ThriftJobTrackerPlugin</value>
  <description>Comma-separated list of jobtracker plug-ins to be activated.</description>
</property>
//--- Plugin 동작 확인
//--- tail --lines=500 /var/log/hadoop-0.20/hadoop*jobtracker*.log | grep ThriftPlugin
  • MapReduce 2.0 설정

Oozie 환경 설정

  • vi /appl/oozie/conf/oozie-site.xml
<property>
  <name>oozie.service.ProxyUserService.proxyuser.hue.hosts</name>
  <value>*</value>
</property>
<property>
  <name>oozie.service.ProxyUserService.proxyuser.hue.groups</name>
  <value>*</value>
</property>

Hive 환경 설정

  • vi /appl/hue/desktop/conf/hue.ini
//--- hive-site.xml 파일이 있는 폴더를 지정 합니다.
hive_home_dir=/appl/hive
hive_conf_dir=/appl/hive/conf

Hue 환경 설정

  • vi /appl/hue/desktop/conf/hue.ini
http_host=0.0.0.0
http_port=8888

//--- 30에서 60자의 임의의 보안 키를 설정 합니다.
secret_key=jFE93j;2[290-eiw.KEiwN2s3['d;/.q[eIW^y#e=+Iei*@Mn<qW5o

//--- MySQL 연동
//--- [ [database]] 안에 다음을 추가 합니다.
engine=mysql
host=localhost
port=3306
user=hue
password=비밀번호
name=hue

//--- hadoop.hdfs_clusters.default.~ ([[[hdfs_clusters]]] -> [[[default]]]) 을 수정 합니다.
hadoop_bin=/appl/hadoop/bin/hadoop
hadoop_hdfs_home=/appl/hadoop
hadoop_conf_dir=/appl/hadoop/conf

//--- hadoop.mapred_clusters.default.~ ([[[mapred_clusters]]] -> [[[default]]]) 을 수정 합니다.
hadoop_bin=/appl/hadoop/bin/hadoop
hadoop_mapred_home=/appl/hadoop
hadoop_conf_dir=/appl/hadoop/conf
thrift_port=9090

command = "/appl/flume/bin/flume-ng shell"
command = "/appl/pig/bin/pig -l /dev/null"
command = "/appl/hbase/bin/hbase shell"
  • MySQL에서 hue라는 데이터베이스를 생성 합니다.
createDatabase hue hue hue demo1234 demo1234
  • Hue에서 사용할 테이블 생성
/appl/hue/build/env/bin/hue syncdb --noinput
  • Hue 서비스 실행
cd /appl/hue/build/env/bin
./supervisor
  • 처음 로그인하는 사용자가 Administrator 사용자가 됩니다.
  • Hue 서비스 실행시 오류가 발생할 경우
  • hive-default.xml 파일이 없을 경우 생성 합니다.
cd /appl/hive/conf
cp hive-default.xml.template hive-default.xml
  • Hadoop 로그 폴더에 쓰기 권한이 없어 오류가 발생할 경우
chmod -R 777 /tmp/hadoop
  • Hue 로그 폴더
  • /appl/hue/logs/

hue 매뉴얼

  • Hue 명령어
hue --version
hue dbshell                       //--- Database Shell로 접속

참고 문헌