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
- Chuẩn bị để cài đặt hadoop cluster
- 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/
- Cài hadoop
- 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/
- 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/
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- Stop
Cd vào spark-server-HA-mm-1.5.1/bin
./ssha stop
Cài đặt chế độ riêng tư
Tóm Tắt
Share this:
Thích bài này:
Thích
Đang tải…