Facing enterprise specific challenges – utility programming in hadoop

64
Facing Enterprise-specific Challenges – Utility Programming in Hadoop 吳吳吳 Fann Wu

Transcript of Facing enterprise specific challenges – utility programming in hadoop

Page 1: Facing enterprise specific challenges – utility programming in hadoop

Facing Enterprise-specific Challenges – Utility Programming in Hadoop

吳育儒 Fann Wu

Page 2: Facing enterprise specific challenges – utility programming in hadoop

Who am I ?• Fann Wu 吳育儒• Sr. Engineer, SPN, Trend Micro• Hadoop Cluster Admin• Splunk Cluster Admin• Monitor Admin• 水電工

Architecture,Operation,TroubleShooting,Automation,Performance Turning

Page 3: Facing enterprise specific challenges – utility programming in hadoop

Agenda• How to manage big cluster• How to manage big Hadoop cluster• Datacenter & AWS

Page 4: Facing enterprise specific challenges – utility programming in hadoop

How to manage big cluster

Page 5: Facing enterprise specific challenges – utility programming in hadoop

武功• 基本心法• 基本招式

Page 6: Facing enterprise specific challenges – utility programming in hadoop

心法

Page 7: Facing enterprise specific challenges – utility programming in hadoop

招式

無招勝有招

Page 8: Facing enterprise specific challenges – utility programming in hadoop

心法• 將幾百台 Server當做一台 Server在管• 將幾百台 Server當做女朋友照顧• Server安穩才能睡個好覺• 放乖乖之必要

Page 9: Facing enterprise specific challenges – utility programming in hadoop

Cluster

http://www.quuxlabs.com/tutorials/running-hadoop-on-ubuntu-linux-multi-node-cluster/

Page 10: Facing enterprise specific challenges – utility programming in hadoop

招式 -shellscript

實用的土炮 !!!

Page 11: Facing enterprise specific challenges – utility programming in hadoop

招式 -PSSHPSSH provides parallel versions of OpenSSH and related tools. Included are pssh, pscp, prsync, pnuke, and pslurp.

https://code.google.com/p/parallel-ssh/

Page 12: Facing enterprise specific challenges – utility programming in hadoop

招式 -SaltStack

http://saltstack.com/

Page 13: Facing enterprise specific challenges – utility programming in hadoop

招式 -SaltStack• Role:- Salt Master• Salt Minions• Web UI

Page 14: Facing enterprise specific challenges – utility programming in hadoop

招式 -SaltStack• Install SaltStack from epel (CentOS 6)

Page 15: Facing enterprise specific challenges – utility programming in hadoop

招式 -SaltStack• Config SaltStack and start SaltStack service

• Master:• Add “ interface: 192.168.50.8” to /etc/salt/master

• Minion:• Add “master:192.168.50.8” to /etc/salt/minion

Page 16: Facing enterprise specific challenges – utility programming in hadoop

招式 -SaltStack• List Unaccepted key, Accept all key

Page 17: Facing enterprise specific challenges – utility programming in hadoop

招式 -SaltStack• You can use salt command to control the cluster

Page 18: Facing enterprise specific challenges – utility programming in hadoop

招式 -SaltStack UI HALITE

Page 19: Facing enterprise specific challenges – utility programming in hadoop

Configure Management

Page 20: Facing enterprise specific challenges – utility programming in hadoop

Chef

Page 21: Facing enterprise specific challenges – utility programming in hadoop

Ansible

Page 22: Facing enterprise specific challenges – utility programming in hadoop

Puppet

Page 23: Facing enterprise specific challenges – utility programming in hadoop

Puppet Web - Foreman

Page 24: Facing enterprise specific challenges – utility programming in hadoop

Wait ………….Where is Hadoop

Page 25: Facing enterprise specific challenges – utility programming in hadoop

How to manage Big Hadoop cluster

Page 26: Facing enterprise specific challenges – utility programming in hadoop

TrendMicro Hadoop• Server: hundreds of Servers• User : 2 hundred accounts• Daily Input Data: 2TB• Daily Jobs: hundred of jobs

Page 27: Facing enterprise specific challenges – utility programming in hadoop

27

Hadoop as a

Service

Central Management

Automation

Highly Availability

Customization

We need….

Page 28: Facing enterprise specific challenges – utility programming in hadoop

Hadoop Ecosystem

Puppet

Hadooppet

A project for deploy Trend Micro Hadoop

distribution on a large cluster

28

IT automation software

So…..

Page 29: Facing enterprise specific challenges – utility programming in hadoop

CLUSTER DEPLOYMENT BY DISTRIBUTION / ENVIRONMENT• POC, Staging, Production• All-in-one VM, AWS EC2 deployment

CLUSTER DEPLOYMENT• Package installation• Configuration adjustment

CLUSTER OPERATION• Add new Hadoop node/client• Account management• Process management

SANITY CHECK • DFSIO, YCSB , etc• Sample Applications

Hadooppet

29

WE CAN EASILY DEPLOY HUNDREDS OF SERVERS WITHIN ONE HOUR

Page 30: Facing enterprise specific challenges – utility programming in hadoop

Hadoop Security

Page 31: Facing enterprise specific challenges – utility programming in hadoop

Hadoop Security - Without security• From any machine that can access hadoop• [root@hackserver opt]# su hdfs• [hdfs@hackserver opt]$ hadoop fs -rmr /• Say Goodbye to your data

如有雷同純屬巧合

Page 32: Facing enterprise specific challenges – utility programming in hadoop

Hadoop Security - Kerberos

Page 33: Facing enterprise specific challenges – utility programming in hadoop

Hadoop Security - Kerberos• Without auth

• Pass auth

Page 34: Facing enterprise specific challenges – utility programming in hadoop

Kerberos Common Problem• Problem:Clock skew too great while getting initial

credentials• Solution:Use date or ntpdate to sync the time

Page 35: Facing enterprise specific challenges – utility programming in hadoop

Hadoop Security – Folder Permission• POSIX permissions

• POSIX ACLs (Access Control Lists)

Page 36: Facing enterprise specific challenges – utility programming in hadoop

Hadoop Security- More Security but still in incubation

http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.3.0/bk_Knox_Gateway_Admin_Guide/content/ch01.html

Page 37: Facing enterprise specific challenges – utility programming in hadoop

Hadoop HA

Page 38: Facing enterprise specific challenges – utility programming in hadoop

Sleep well - HA• Kerberos HA• LDAP HA• Namenode HA• Jobtracker HA/Resourcemanger HA• HBase HA

Page 39: Facing enterprise specific challenges – utility programming in hadoop

Mertric/Monitor tool

Page 40: Facing enterprise specific challenges – utility programming in hadoop

Without Mertric/Monitor tool

Page 41: Facing enterprise specific challenges – utility programming in hadoop

Know the present/future-Ganglia

Page 42: Facing enterprise specific challenges – utility programming in hadoop

Known the real problem-Nagios

Page 43: Facing enterprise specific challenges – utility programming in hadoop

Known the real problem-Nagios mail

Page 44: Facing enterprise specific challenges – utility programming in hadoop

Find the detail log and generate fashion report-Splunk

Page 45: Facing enterprise specific challenges – utility programming in hadoop

Job collector

Page 46: Facing enterprise specific challenges – utility programming in hadoop

User Mapper/Reducer usage

Page 47: Facing enterprise specific challenges – utility programming in hadoop

Fail Job Summary

Page 48: Facing enterprise specific challenges – utility programming in hadoop

Cluster Mapper Usage/Pending

Page 49: Facing enterprise specific challenges – utility programming in hadoop

Cluster Reducer Usage/Pending

Page 50: Facing enterprise specific challenges – utility programming in hadoop

Other Tools

Page 51: Facing enterprise specific challenges – utility programming in hadoop

Offline Image Viewer • Transform fsimage from binary to text

• Cat fsimage.txt

Page 52: Facing enterprise specific challenges – utility programming in hadoop

Total Number of Files for Each UserPig

Page 53: Facing enterprise specific challenges – utility programming in hadoop

Common Datanode Decommission Process• Add DataNodes hostnames to dfs.exclude file• On NameNode host, run hdfs dfsadmin –refreshNodes• Check Web UI to see whether the state has changed

to Decommission In Progress for the DataNodes being decommissioned. (1day~2day)

• When all the DataNodes report their state as Decommissioned, You can then shut down the decommissioned nodes.

• Replace the crash HDD, reboot server and re-config the HDD from Raid card. (20 mins)

• Mount the HDD• Start Datanode service

http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.1.5/bk_system-admin-guide/content/admin_decommission-slave-nodes-2-1.html

Page 54: Facing enterprise specific challenges – utility programming in hadoop

TrendMicro Datanode Decommission(HDD hot swap)

• Replace the crash HDD• Stop datanode & umount the broken mount point.

(5 mins)• Reinit the HDD from raid card setting• Check /var/log/message , linux will auto rescan• Mount the broken point• Start datanode service

Page 55: Facing enterprise specific challenges – utility programming in hadoop

HBase Canary Tool

• Contributor: TrendMicro Scott Miao• Purpose: Check every table’s first region on

regionserver

https://issues.apache.org/jira/browse/HBASE-7525

Page 56: Facing enterprise specific challenges – utility programming in hadoop

HBase Canary Tool

• Usage:

• Result

Page 57: Facing enterprise specific challenges – utility programming in hadoop

HappyBase+Thrift • What is HappyBase• Purpose:- Check regionserver’s every region response time- Check table’s every region response time

http://happybase.readthedocs.org/en/latest/

Page 58: Facing enterprise specific challenges – utility programming in hadoop

Datacenter & Aws

Page 59: Facing enterprise specific challenges – utility programming in hadoop

How we test EMR POC

Page 60: Facing enterprise specific challenges – utility programming in hadoop

If your EMR cluster running 24x7

Page 61: Facing enterprise specific challenges – utility programming in hadoop

Reduce EMR cost• 100 nodes cost running 1 hour == 1 node running 100 hour• AWS charge by hour• If you don’t care about job stable, use spot instance to save

cost• Use Reserve Instance to save cost• Use EMR Auto Scaling • Pilot run your Application to estimate how many machines

and size• Get your monthly cost from aws caculator• http://calculator.s3.amazonaws.com/index.html

Page 62: Facing enterprise specific challenges – utility programming in hadoop

Datacenter Cost by Service(Storage)• Application Size / ((Server HDD space * 0.75)* Server Cost/2

Page 63: Facing enterprise specific challenges – utility programming in hadoop

Datacenter Cost by Service(Computing)• ((Used Map slot + Used Reduce Slot)/(total Map slot + total Reduce

slot))* total server cost/2

Page 64: Facing enterprise specific challenges – utility programming in hadoop

#TrendInsight

Thank you!WE ARE HIRING! WELCOME TO JOIN TRENDMICRO!