Hướng dẫn cài đặt Hadoop – Spark – thrift – etl

Sau đây xin giới thiệu về hướng dẫn cài đặt môi trường Hadoop- Spark- Thrift- Etl

Các kiểu cài đặt:

  • Local (Standalone) Mode
  • Pseudo-Distributed Mode
  • Fully-Distributed Mode

Đối với mode local và pseudo, tham khảo:

http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/SingleCluster.html

Đối với Fully-Distributed Mode, tham khảo:

http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/ClusterSetup.html

Bộ cài đặt:

http://hadoop.apache.org/releases.html

  1. Chuẩn bị để cài đặt hadoop cluster
  2. Java

Cài đặt java bằng cách giải nén file tar.gz

tar xf /jdk-7u79-linux-i586.tar.gz -C /u01/app/hadoop/

 

  1. Cài hadoop
  2. Download Hadoop, giải nén vào tất cả các server

tar xf /hadoop-2.6.0.tar.gz -C /u01/app/hadoop/

  1. Cài đặt java cho Hadoop: Sửa file etc/hadoop/hadoop-env.sh

# set to the root of your Java installation

export JAVA_HOME=/u01/app/hadoop/jdk1.7.0_79/

 

  1. Testscript

Ở thư mục cài hadoop, chạy lệnh

export JAVA_HOME=/u01/app/hadoop/jdk1.7.0_79/

./bin/hadoop

 

Kết quả in ra có dạng

 

Usage: hadoop [–config confdir] [COMMAND | CLASSNAME]

CLASSNAME            run the class named CLASSNAME

or

where COMMAND is one of:

fs                   run a generic filesystem user client

version              print the version

jar <jar>            run a jar file

note: please use “yarn jar” to launch

YARN applications, not this command.

checknative [-a|-h]  check native hadoop and compression libraries availability

distcp <srcurl> <desturl> copy file or directories recursively

archive -archiveName NAME -p <parent path> <src>* <dest> create a hadoop archive

classpath            prints the class path needed to get the

credential           interact with credential providers

Hadoop jar and the required libraries

daemonlog            get/set the log level for each daemon

trace                view and modify Hadoop tracing settings

 

Most commands print help when invoked w/o parameters.

 

Ở thư mục cài hadoop, chạy thử 1 job test

  $ mkdir input  $ cp etc/hadoop/*.xml input  $ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar grep input output ‘dfs[a-z.]+’  $ cat output/* 

Nếu không có lỗi là OK

  1. Bắt đầu cài đặt Fully-Distributed Mode

Đây là kiểu triển khai trên thực tế. Các node sẽ được gọi là server. Theo recommend thì cần 04 server.

Tham khảo

http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/ClusterSetup.html

Bước 1: Thiết lập môi trường

Để thuận tiện cho cấu hình, có thể sửa file /etc/hosts các server, lưu tên ngắn gọn các server thay cho IP.

#Master- NameNode

192.168.243.130  HD01

#Master- ResourceManager

192.168.243.131  HD02

#Slave

192.168.243.132  HD03

192.168.243.133  HD04

 

  • Khuyến nghị đặt user và password chung cho tất cả các server ( để phục vụ SSH giữa các server)

Bước 2: Thiết kế hệ thống khi triển khai 2 server

Thiết kế  vai trò của các server. Chia làm 2 nhóm

  • Nhóm 1: Master: bao gồm 2 server độc lập nhau
    • NameNode
    • Resource Manager
  • Nhóm 2: Slave: Các server còn lại, đóng vài trò là DataNode và NodeManager
  • 1 số service có thể chạy trên server bất kì, phụ thuộc vào tải. Ví dụ: Web App Proxy Server , MapReduce Job History

Bước 3: Cấu hình môi trường cho các tiến trình  hadoop

Cấu hình JAVA_HOME  các file

etc/hadoop/hadoop-env.sh

etc/hadoop/mapred-env.sh

etc/hadoop/yarn-env.sh

bằng cách thêm lệnh sau vào đầu file

export JAVA_HOME=/u01/app/hadoop/jdk1.7.0_79/

 

Bước 4: Cấu hình tiến trình của hadoop

Thêm các cấu hình sau vào các file cấu hình.

Chú ý:

  • Sửa lại địa chỉ, port, đường dẫn, size trong cấu hình.
  • 58.71.149 trong cấu hình là địa chỉ master

Giá trị mặc định và mô tả tham khảo tại:

https://hadoop.apache.org/docs/r2.6.0/hadoop-project-dist/hadoop-common/core-default.xml

https://hadoop.apache.org/docs/r2.6.0/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml

https://hadoop.apache.org/docs/r2.6.0/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml

https://hadoop.apache.org/docs/r2.6.0/hadoop-yarn/hadoop-yarn-common/yarn-default.xml

etc/hadoop/core-site.xml(10.58.71.149 là địa chỉ cài master)

etc/hadoop/hdfs-site.xml

etc/hadoop/yarn-site.xml (File này sẽ có các tham số cấu hình cho resource manager và node manager)

etc/hadoop/mapred-site.xml

MapReduce Applications và MapReduce JobHistory Server

Bước 5: Sửa file Slave của master

etc/hadoop/slaves

Liệt kê danh sách tất cả các IP ( hoặc hostname nếu đã khai báo trong /etc/hosts của các node slave

10.58.71.216

 

Bước 6: Vận hành hadoop (start, stop ứng dụng)

Sửa file .bashrc

Gõ lệnh:

vi ~/.bashrc

Thêm nội dung sau vào đầu file

export HADOOP_HOME=$HOME/hadoop/hadoop-2.6.0

export HADOOP_PREFIX=$HADOOP_HOME

export HADOOP_MAPRED_HOME=$HADOOP_HOME

export HADOOP_COMMON_HOME=$HADOOP_HOME

export HADOOP_HDFS_HOME=$HADOOP_HOME

export HADOOP_YARN_HOME=$HADOOP_HOME

export YARN_HOME=$HADOOP_HOME

export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

export YARN_CONF_DIR=”${YARN_CONF_DIR:-$HADOOP_YARN_HOME/conf}”

Gõ ESC và gõ lệnh sau để lưu lại

:wq

Load lại cấu hình bằng lệnh sau

source ~/.bashrc

Thêm thư mục hadoop/name (Nếu sử dụng theo cấu hình mẫu)

Thêm file etc/hadoop/exclude (Nếu sử dụng theo cấu hình mẫu)

Format file hệ thống để bắt đầu start hdfs

bin/hdfs namenode –format

  1. Start

Bao gồm Start hdfs và yarn

Start hdfs namenode

$HADOOP_PREFIX/sbin/hadoop-daemon.sh –config $HADOOP_CONF_DIR –script hdfs start namenode

Start hdfs datanode

$HADOOP_PREFIX/sbin/hadoop-daemon.sh –config $HADOOP_CONF_DIR –script hdfs start datanode

Start YARN resource Manager

$HADOOP_YARN_HOME/sbin/yarn-daemon.sh –config $HADOOP_CONF_DIR start resourcemanager

Start YARN Node Manager

$HADOOP_YARN_HOME/sbin/yarn-daemon.sh –config $HADOOP_CONF_DIR start nodemanager

Start Webproxy

$HADOOP_YARN_HOME/sbin/yarn-daemon.sh –config $HADOOP_CONF_DIR start proxyserver

Start Mapreduce App

$HADOOP_PREFIX/sbin/mr-jobhistory-daemon.sh –config $HADOOP_CONF_DIR start historyserver

 

 

  1. Stop

stop hdfs namenode

$HADOOP_PREFIX/sbin/hadoop-daemon.sh –config $HADOOP_CONF_DIR –script hdfs stop namenode

Stop hdfs datanode

$HADOOP_PREFIX/sbin/hadoop-daemon.sh –config $HADOOP_CONF_DIR –script hdfs stop datanode

Stop YARN resource Manager

$HADOOP_YARN_HOME/sbin/yarn-daemon.sh –config $HADOOP_CONF_DIR stop resourcemanager

Stop YARN Node Manager

$HADOOP_YARN_HOME/sbin/yarn-daemon.sh –config $HADOOP_CONF_DIR stop nodemanager

Stop Webproxy

$HADOOP_YARN_HOME/sbin/yarn-daemon.sh –config $HADOOP_CONF_DIR stop proxyserver

Stop Mapreduce App

$HADOOP_PREFIX/sbin/mr-jobhistory-daemon.sh –config $HADOOP_CONF_DIR stop historyserver

 

 

Bước 7: Test bằng cách copy 1 file vào hệ thống hdfs

Copy file lib/native/libhdfs.a đến thư mục spark và kiểm tra bằng cách hiển thị các file trong thư mục

Chạy các lệnh sau:

bin/hdfs dfs -ls /

Java HotSpot(TM) Server VM warning: You have loaded library /u01/app/kpi_smas/hadoop/hadoop-2.6.0/lib/native/libhadoop.so which might have disabled stack guard. The VM will try to fix the stack guard now.

It’s highly recommended that you fix the library with ‘execstack -c <libfile>’, or link it with ‘-z noexecstack’.

15/12/01 18:25:50 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable

Found 2 items

drwxr-xr-x   – kpi_smas supergroup          0 2015-12-01 16:06 /spark

drwxrwx—   – kpi_smas supergroup          0 2015-12-01 16:06 /tmp

bin/hdfs dfs -copyFromLocal lib/native/libhdfs.a /spark/

Java HotSpot(TM) Server VM warning: You have loaded library /u01/app/kpi_smas/hadoop/hadoop-2.6.0/lib/native/libhadoop.so which might have disabled stack guard. The VM will try to fix the stack guard now.

It’s highly recommended that you fix the library with ‘execstack -c <libfile>’, or link it with ‘-z noexecstack’.

15/12/01 18:28:27 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable

bin/hdfs dfs -ls /spark

Java HotSpot(TM) Server VM warning: You have loaded library /u01/app/kpi_smas/hadoop/hadoop-2.6.0/lib/native/libhadoop.so which might have disabled stack guard. The VM will try to fix the stack guard now.

It’s highly recommended that you fix the library with ‘execstack -c <libfile>’, or link it with ‘-z noexecstack’.

15/12/01 18:28:41 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable

Found 3 items

-rw-r–r–   1 kpi_smas supergroup      15429 2015-12-01 16:06 /spark/LICENSE.txt

-rw-r–r–   1 kpi_smas supergroup       1366 2015-12-01 18:26 /spark/README.txt

-rw-r–r–   1 kpi_smas supergroup     447388 2015-12-01 18:28 /spark/libhdfs.a

Giao diện web

  1. Cài đặt thrift

Giải nén //192.168.168.238/share1/hainm24/hadoop/spark-1.5.1-bin-hadoop2.6.tgz lên server cài đặt.

Cd vào thư mục spark-1.5.1-bin-hadoop2.6

Gõ lệnh để bật thrift, chú ý các tham số:

  • driver.memory
  • num-executors
  • executor-memory

Ý nghĩa các tham số tham khảo tại:  http://spark.apache.org/docs/latest/configuration.html

./sbin/start-thriftserver.sh –master yarn –conf spark.driver.memory=1g –class org.apache.spark.sql.hive.thriftserver.HiveThriftServer2 –num-executors 1 –executor-memory 2g –executor-cores 3 spark-internal –hiveconf hive.server2.thrift.port=8687 –hiveconf hive.server2.thrift.bind.host=10.30.145.180

Xem kết quả trên giao diện web, state running là ok

  1. Cài đặt cụm ETL – master – slave – lập lịch

Thêm các bảng cần thiết vào DB

Giải nén //192.168.168.238/share1/hainm24/hadoop/ etl.zip lên server cài đặt.

  • Chỉnh sửa file MM-file/tomcat_monitor_8098/webapps/viettel-bi-monitor/WEB-INF/classes/config.properties

job_file_path trỏ đến thư mục chứa các file job

 

# To change this template, choose Tools | Templates

# and open the template in the editor.

job_file_path=/u01/kpi/hadoop/etl-process/FileRepo

file_extend=kjb

job_type_node = job_type

job_name_node = name

job_list_node=rel

job_param_node=parameter

  • Chỉnh sửa file MM-file/tomcat_monitor_8098/webapps/viettel-bi-monitor/WEB-INF/classes/socket.properties

ip_socket_schedulemaster lưu ip server cài đặt

# To change this template, choose Tools | Templates

# and open the template in the editor.

ip_socket_schedulemaster=10.30.145.180

port_socket_scheduleMaster_client=43437

port_socket_schedulemasterserver=14448

#dongdv

username_schedulemaster=root

passwold_schedulemaster=2be98afc86aa7f2e4fa4bfd248bc4aefa

setup_location_schedulemaster=/root/ETL/etl_new/etl-master

run_file_master=etlmaster

run_file_slave=etlslave

  • Chỉnh sửa file MM-file/tomcat_monitor_8098/webapps/viettel-bi-monitor/WEB-INF/classes/cas_en_US.properties

Service và errorUrl lưu địa chỉ ip server cài đặt

service=http://10.30.145.180:8098/viettel-bi-monitor/

errorUrl=http://10.30.145.180:8098/viettel-bi-monitor/error.do

  • Chỉnh sửa cấu hình DB

MM-file/tomcat_monitor_8098/webapps/viettel-bi-monitor/WEB-INF/classes/com/viettel/bi/monitor/config/datasource/

File DBBIServer và DBETL, sử dụng tool //192.168.168.238/share1/hainm24/EncryptDecryptHibernateTool

Để mã hóa

  • Chỉnh sửa file etl-master-file/etc/allow_slave.cfg

Thay đổi địa chỉ ip và đường dẫn của server cài đặt slave

#List ip, port slave connect to master

#Format: slaveID=IP,port

#43444

1=10.30.145.180,43434,/u01/vasbi_etl/etl-file/etl-slave-file,vasbi_etl,123456a@

Dữ liệu bảng ETL_SLAVE phải thêm như sau:

Insert into ETL_SLAVE (ID_SLAVE,NAME,HOST_NAME,WEB_APP_NAME,USERNAME,PASSWORD,PROXY_HOST_NAME,PROXY_PORT,NON_PROXY_HOSTS,MASTER,PORT_SCHEDULE_MASTER,PORT,STATUS,CAPACITY,CURRENT_JOBS_NBR,WORK_DIR,SNMP_PORT,SLAVE_LOCATION,SSH_USERNAME,SSH_PASSWORD,LAST_UPDATE_STATUS,PORT_FILE_MASTER,PORT_MM,PORT_SERVER_SLAVE,IS_PUBLISH,DESCRIPTION,PORT_SCHEDULE_MASTER_KTL) values (1,’10.30.145.180′,’10.30.145.180′,null,’cluster’,’Encrypted 3262653938616663383661613766326536ddfa9ea90b95c4d1a81df626df93ac82′,null,null,null,null,’13435′,’43434′,1,null,null,’/u01/kpi/hadoop/etl/working-dir’,null,’/u01/kpi/hadoop/etl/etl-slave-file’,’vasbi_etl’,’123456a@’,null,’43437′,’43498′,’6978′,1,null,null);

 

  • Chỉnh sửa file etl-master-file/etc/socket.cfg

Thay đổi địa chỉ ip và đường dẫn của server cài đặt slave

# To change this template, choose Tools | Templates

# and open the template in the editor.

 

#Cổng socket master 14438

port_socket_server=14448

 

#IP cài đặt khối viettel-bi-monitor

ip_socket_monitor_client=10.30.145.180

 

#Cổng socket viettel-bi-monitor 43448

port_socket_monitor_client=13438

  • Chỉnh sửa file etl-slave-file/bin/repositories.xml

Thay đổi đường dẫn lưu file job trên server

<?xml version=”1.0″ encoding=”UTF-8″?>

<repositories>

<repository>

<id>KettleFileRepository</id>

<name>1</name>

<description>1</description>

<base_directory>/u01/kpi/hadoop/etl-process/FileRepo</base_directory>

<read_only>N</read_only>

<hides_hidden_files>N</hides_hidden_files>

</repository>

</repositories>

  • Chỉnh sửa file etl-slave-file/bin/config.cfg

Thay đổi địa chỉ ip và đường dẫn của server

nbrRetryJob=2

waitPeriodBeforeRetry=10

host_name=10.30.145.180

port=9494

user_name=cluster

password=Slave@123456

 

  • Chỉnh sửa file etl-slave-file/etc/slave.config.cfg

Thay đổi địa chỉ ip và đường dẫn của server

# To change this template, choose Tools | Templates

# and open the template in the editor.

 

#config Queue size

 

JOB_QUEUE_SIZE = 30

SEND_JOB_STATUS_QUEUE_SIZE = 100

#config Executors

NUM_OF_JOB_THREADS = 30

#config CheckJobPartitionInterval

 

DEQUEUEJOB_INTERVAL = 7

#config socket connectors

 

SCHEDULE_MASTER_PORT = 14448

SCHEDULE_MASTER_CLIENT_PORT = 13435

SCHEDULE_MASTER_HOST =10.30.145.180

#Ip slave

SLAVE_IP =10.30.145.180

#Thu muc backup slave

STATUS_BK_FOLDER=../slave_backup/

#ID cua slave.

SLAVE_ID=382

 

WORKING_DIR=/u01/vasbi_etl

 

#Cau hinh port out slave gui khi slave la server

SLAVE_SERVER_PORT=6978

 

#Chu ky tien trinh ping toi master

PING_TO_SCHEDULE_MASTER_INTERVAL=5

 

 

Start etl-master-file, etl-slave-file, MM-file:

hadoop/etl-process/etl-master-file/bin/etlmaster start

hadoop/etl-process/etl-slave-file/bin/etlslave start

hadoop/etl-process/MM-file/tomcat_monitor_8098/bin/startup.sh

 

Giao diện web:

 

Vào quản lý slave, chọn slave và publish

Đăng nhập trang http://10.30.145.180:9494/kettle/status/ bằng user cluster/cluster

  • Cài đặt Spark server (trong trường hợp không dùng thrift)

Note: do các kết nối hầu hết chỉ xin từ 8000-10000 nên phải chạy lệnh sau ở các server:

echo “8000 10000” >/proc/sys/net/ipv4/ip_local_port_range

 

  1. Cài đặt spark

Copy spark-1.5.1-bin-hadoop2.6.tgz và spark-server-HA-mm-1.5.1.zip và giải nén

tar xf spark-server-HA-mm-1.5.1.rar -C ./

unzip spark-server-HA-mm-1.5.1.zip

 

Thay đổi các file cấu hình và file thực thi

File wrapper.java.command=/u01/vasbi_etl/java/jdk1.8.0_51/bin/java

wrapper.java.command=/u01/app/kpi_smas/hadoop/jdk1.7.0_79/bin/java

wrapper.java.classpath.2=/u01/app/kpi_smas/hadoop/hadoop-2.6.0/etc/hadoop

wrapper.app.parameter.9=spark.scheduler.allocation.file=/u01/app/kpi_smas/hadoop/spark-1.5.1-bin-hadoop2.6/conf/fairscheduler.xml

wrapper.app.parameter.19=/u01/app/kpi_smas/hadoop/spark-1.5.1-bin-hadoop2.6/lib/spark-assembly-1.5.1-hadoop2.6.0.jar,/u01/app/kpi_smas/hadoop/spark-server-HA-mm-1.5.1/lib/guava-15.0.jar,/u01/app/kpi_smas/hadoop/spark-server-HA-mm-1.5.1/lib/mmserver-3.2.jar,/u01/app/kpi_smas/hadoop/spark-server-HA-mm-1.5.1/lib/ojdbc14.jar

wrapper.app.parameter.20=/u01/app/kpi_smas/hadoop/spark-server-HA-mm-1.5.1/lib/sparkserver-mm-1.1-s1.5.1.jar

wrapper.app.parameter.29=hdfs://10.58.71.149:9024/

 

 

File spark-server-HA-mm-1.5.1/bin/ssha

source /u01/app/kpi_smas/hadoop/spark-server-HA-mm-1.5.1/bin/SSHA_init.sh

 

File spark-server-HA-mm-1.5.1/bin/SSHA_init.sh

export SPARK_SERVER_JAR_STORAGE=/u01/app/kpi_smas/hadoop/spark-server-HA-mm-1.5.1/jarStorage

export SPARK_JAR=hdfs://10.58.71.149:9024/spark/share/spark-assembly-1.5.1-hadoop2.6.0.jar

export SPARK_YARN_APP_JAR=/u01/app/kpi_smas/hadoop/spark-server-HA-mm-1.5.1/lib/sparkserver-mm-1.1-s1.5.1.jar

 

  1. Copy jar lên môi trường hadoop

Copy file spark-assembly-1.5.1-hadoop2.6.0.jar lên hadoop

hdfs dfs -mkdir /spark/share

hdfs dfs -copyFromLocal spark-assembly-1.5.1-hadoop2.6.0.jar /spark/share

Kiểm tra lại thư mục xem có file chưa

hdfs dfs -ls /spark/share

Java HotSpot(TM) Server VM warning: You have loaded library /u01/app/kpi_smas/hadoop/hadoop-2.6.0/lib/native/libhadoop.so.1.0.0 which might have disabled stack guard. The VM will try to fix the stack guard now.

It’s highly recommended that you fix the library with ‘execstack -c <libfile>’, or link it with ‘-z noexecstack’.

15/12/11 10:22:34 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable

Found 1 items

-rw-r–r–   1 kpi_smas supergroup  183999807 2015-12-10 15:27 /spark/share/spark-assembly-1.5.1-hadoop2.6.0.jar

 

  1. Start

Cd vào spark-server-HA-mm-1.5.1/bin

./ssha start

Check log tại spark-server-HA-mm-1.5.1/log/SSHA.log và spark-server-HA-mm-1.5.1/log/viettel_bi_wrapper.log

  1. Stop

Cd vào spark-server-HA-mm-1.5.1/bin

./ssha stop

 

 

 

Advertisement

Cài đặt chế độ riêng tư

Share this:

Thích bài này:

Thích

Đang tải…