Archive for category Corporation

BEC Notes - Ways of working

freelance - You sell your work or services to a number of different companies.
teleworking - You work for a company from home via email, phone or the Internet.
job-sharing - You do your job for part of the week and another person does it for the other part.
shift work - You work during different parts of the day (eg nights).
part-time - You only work for some of the week (not full-time).
temping - You work for different companies for a short time without a permanent contract.
consultancy - You aren't employed by a company, but are paid to give specialist advice.
flexitime - You work a number of hours per week or month but you decide when you start or finish.
hot-desking - You don't have a permanent place or office to work at, but you find a place to work when you arrive.

It's great because I'm my own boss, but I still work with lots of different people. - freelance
I wish I had my own space. I have to carry everything around in my bag and sometimes there's nowhere to sit. - hot-desking
I like it because it's only for a couple of months and I'm saving up to go round the world. - consultancy (me: A well paid part-time job for specialist.)
The only problem is sleeping. Your body never knows if it's night or day! - shift work (me: It sucks!)
It can get a bit lonely at times. And I miss my colleagues and all the office gossip. - part-time
My Children are at school so it lets me spend more time with them. - teleworking/temping
When one of us wants a week off, the other person does a few extra days so it's fairly flexible. - flexitime/job-sharing

How to job-share
1. Find the perfect partner.
2. Open your mind. Embrace the benefits.
3. Plan for disaster. Always discuss the worst-case scenarios, you may lost your job-share partner.
4. Get organised. Plan the system for handing work over carefully and play to each other's different strengths. Delegate the workload according to each other's particular skills and qualities. (me: It's not easy, but very helpful in teamwork.)
5. Set your limits. Managers should clarify what they expect in terms of hours, availability and results, and employees should manage their employer's expectations.
6. Put pen to pager. Agree in writing arrangements for holidays, parental leave, retirement, etc. Everyone should know where they stand from the beginning.
7. Don't fell guilty. Do not work until 1am at home to make up for not being in the office every day.
8. Two become one. Clients may not liking having to deal with two people working closely together. A job-share should be like a marriage.
(me: I really think that job-share is a difficult way of working, only few companies accept it and it's very difficult to find a good partner. )

To be continued...

No Comments

Install Zimbra MTA 8 on CentOS 6.5

Just a copy from

Make sure no mail server and http server is running. Otherwise stop them and disable or uninstall them.

Make sure SELINUX is disabled. By default it is disabled on CentOS 6.5. To confirm it, check using getforce

# getenforce


# cat /etc/sysconfig/selinux

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#       enforcing - SELinux security policy is enforced.
#       permissive - SELinux prints warnings instead of enforcing.
#       disabled - SELinux is fully disabled.
# SELINUXTYPE= type of policy in use. Possible values are:
#       targeted - Only targeted network daemons are protected.
#       strict - Full SELinux protection.

Stop and Disable Postfix and Iptables
# service postfix stop
# service ip6tables stop
# service iptables stop

# chkconfig postfix off
# chkconfig ip6tables off
# chkconfig iptables off

Make sure that domain name is set in correct format at /etc/hosts file. The format is:

ip_address      server

Also set the hostname at /etc/sysconfig/network and also:
# service network restart
# hostname

Make sure you have proper MX record configured for your domain
# host -t mx mail is handled by 10

Install the required packages:
# yum install perl nc sysstat -y

Download the latest Zimbra MTA and extract it:
# cd /opt/
# wget
# tar -zxvf zcs-8.0.6_GA_5922.RHEL6_64.20131203103705.tgz
# cd zcs-8.0.6_GA_5922.RHEL6_64.20131203103705

Start the installation:
# ./ --platform-override

Just accept all default:
Do you agree with the terms of the software license agreement? [N] Y
Do you agree with the terms of the software license agreement? [N] Y
Select the packages to install
Install zimbra-ldap [Y]
Install zimbra-logger [Y]
Install zimbra-mta [Y]
Install zimbra-snmp [Y]
Install zimbra-store [Y]
Install zimbra-apache [Y]
Install zimbra-spell [Y]
Install zimbra-memcached [N]
Install zimbra-proxy [N]

Give “Y” when it asked the following:

The system will be modified.  Continue? [N] Y

Set the Admin password:

Password for (min 6 characters): [_yTalZUL9OZ] password

Finally press ‘a’ to complete the installation.

*** CONFIGURATION COMPLETE - press 'a' to apply
 Select from menu, or press 'a' to apply config (? - help) a
 Save configuration data to a file? [Yes]
 Save config in file: [/opt/zimbra/config.26430]
 Saving config in /opt/zimbra/config.26430...done.
 The system will be modified - continue? [No] YES
Configuration complete - press return to exit

Switch user as zimbra
# su - zimbra

Start Zimbra services:
$ zmcontrol start

        Starting zmconfigd...Done.
        Starting logger...Done.
        Starting mailbox...Done.
        Starting antispam...Done.
        Starting antivirus...Done.
        Starting opendkim...Done.
        Starting snmp...Done.
        Starting spell...Done.
        Starting mta...Done.
        Starting stats...Done.

Check Zimbra services status:
$ zmcontrol status

        antispam           Running
        antivirus          Running
        ldap               Running
        logger             Running
        mailbox            Running
        mta                Running
        opendkim           Running
        snmp               Running
        spell              Running
        stats              Running
        zmconfigd          Running

You can check and manage through Zimbra Admin Control Panel at and client web-mail at


No Comments

2013 Annual Review

I still remember the most details of the conversation when 'Tom' interviewed me last February, we had a good talk about Linux and many operation stuff.
At that time, my life did not go well, I was working overtime untill 11pm+ every day. I expected a challenging job but not too much busy, wanted more time with my family.

Now I believe I found it. In the past year I have gained a lot from my work, the knowledge, the team, a better life and a trip to the US.
The knowledge I've learnt:
1. Python
I've heard Python, but did not use it before. For our project, I learnt Python about two weeks, then wrote some useful tools to improve our operation. The most helpful tools are:
"", it makes us to create local virtual machines much easier, all the vms(200+) in our new colo were created by it.
"", it makes us to manage the servers inventory much easier, it collects the informations and auto audit them into the racktables with their rackspaces.
2. Puppet, Salt, Ansible
I used Chef as IT automation software before, our project uses Puppet, I learnt it, wrote modules to install Hadoop, graphite, statsd and MooseFS. Then learnt Salt and Ansible, wrote modules to do the same things as Puppet. And I also learnt the HA solution for puppet servers.
3. Hadoop
I had experiences on Hadoop operation, but just for some small clusters. Our project has two big clusters, I learnt many troubleshooting skills from our team and the runbooks, helped to fix some serious incidents when I was on-call. And learnt how to integrate LDAP/Kerberos with Hadoop, upgrade CDH3 to CDH4 and Impala.
4. Nagios
I used Zabbix as monitor system before, our project uses Nagios. I learnt how Nagios works then wrote some scripts to check new services, like Dyn QPS report, Disk errors, web api connection, time server and DNS.
5. Database
I learnt MySQL auto-failover and Percona XtraDB Cluster to improve the high availability. Improved backup scripts and fixed a backup issue.
6. Others
I also learnt many interesting stuff like MooseFS, DRBD, RPMBuild, Jenkins CI, CouchBase, Redis HA and BTSync.

The team I've gained:
1. Good team leader
'Tom' has a broad view, leads us to learn new technologies and improve our operation works, open-minded for suggestions. So we can enjoy the work and improve our skills.
2. Warm-hearted co-workers
Our team is small, but it's warm. We learn from each other, and we help each other. Especially at the beginning of my on-call time, 'Jack' helped me a lot very patiently. I love this team.
3. A better life I've gained:
I had more time to stay with my family, before I was single, I thought if I get married I wouldn't work harder because I have to take care of my family. But I was totally wrong, now I have the responsibility to work harder to make sure I can give them a better life.

A trip to the US:
Maybe this one is quite normal for many people, but it's amazing for me. Worked at US with you guys for half a month, I experienced many different things. The culture, the company, the people. In China only few companies like that.

2013 is a great year for me, but I knew clearly that I didn't do well on some works:
1. Hadoop cluster operation
If the hadoop clusters have incidents about our log systems and oozie workflows, I fell difficult to find the root causes, sometimes the runbooks didn't cover all situations, if I don't understand them very well, I can't resolve the incidents. I need to learn more on these two parts.
2. Suggestions for operation
I should bring more useful suggestions. Not just follow the tickets, emails and the on-call. For example the Nagios, its graphic tools are not good as Zabbix. If something is better, I should learn it more and push it to improve our project.

Thanks. I will still enjoy the work, and work harder, keep learning to make our company better, make my life better.

No Comments

How to install Impala on CDH4.2.1 with pseudo mode


1. Install JDK
$ sudo yum install jdk-6u41-linux-amd64.rpm

2. Install CDH4
$ cd /etc/yum.repos.d/
$ sudo wget
$ sudo yum install hadoop-conf-pseudo

Step 1: Format the NameNode.
$ sudo -u hdfs hdfs namenode -format

Step 2: Start HDFS
$ for x in `cd /etc/init.d ; ls hadoop-hdfs-*` ; do sudo service $x start ; done

Step 3: Create the /tmp Directory
Remove the old /tmp if it exists:
$ sudo -u hdfs hadoop fs -rm -r /tmp

Create a new /tmp directory and set permissions:
$ sudo -u hdfs hadoop fs -mkdir /tmp
$ sudo -u hdfs hadoop fs -chmod -R 1777 /tmp

Step 4: Create Staging and Log Directories
Create the staging directory and set permissions:
$ sudo -u hdfs hadoop fs -mkdir /tmp/hadoop-yarn/staging
$ sudo -u hdfs hadoop fs -chmod -R 1777 /tmp/hadoop-yarn/staging

Create the done_intermediate directory under the staging directory and set permissions:
$ sudo -u hdfs hadoop fs -mkdir /tmp/hadoop-yarn/staging/history/done_intermediate
$ sudo -u hdfs hadoop fs -chmod -R 1777 /tmp/hadoop-yarn/staging/history/done_intermediate

Change ownership on the staging directory and subdirectory:
$ sudo -u hdfs hadoop fs -chown -R mapred:mapred /tmp/hadoop-yarn/staging

Create the /var/log/hadoop-yarn directory and set ownership:
$ sudo -u hdfs hadoop fs -mkdir /var/log/hadoop-yarn
$ sudo -u hdfs hadoop fs -chown yarn:mapred /var/log/hadoop-yarn

Step 5: Verify the HDFS File Structure:
Run the following command:
$ sudo -u hdfs hadoop fs -ls -R /
Read the rest of this entry »

, , , ,


How to make Jenkins supports SMTP TLS on port 587

Jenkins supports the standard SMTP on port 25 and SSL (for Gmail, the port is 495). But looks like it doesn't support the TLS encrypted way on port 587.

I searched a lot on Google, especially the Jenkins forums, but got nothing. Then I found something about Java, looks like JVM also doesn't support TLS by default, but we can add a parameter Dmail.smtp.starttls.enable="true" to enable it.
Because Jenkins uses JVM, so I thought maybe this was the root cause.

So I added the parameter Dmail.smtp.starttls.enable="true" into the option "JENKINS_JAVA_OPTIONS" of /etc/sysconfig/jenkins.

After this, restart Jenkins.
# /etc/init.d/jenkins restart

Then configure it again, cancel the "Use SSL", choose the "Test configuration by sending test e-mail" to test.

, ,


The Business Trip to Beijing

In this article, I want to talk about the business trip to Beijing.

Because I have never been to Beijing, so when I knew I would go to Beijing on business, I felt so happy and a little excited. I phoned my GF and mom, told them that.

At the same time, I sent the message to all my e-friends on the QQ group which has many people with the same professional skills. Most of them work in Beijing, Guangzhou and Shanghai. When they heard that I would go to Beijing and hoped to get together with them, they were also happy. Think about that, we chat with each other every day, but we never met each other before. This is a good chance to do that!

When I arrived at the airport, I chose a seat near the window, to watch the beautiful sea of clouds during the journey in two hours. Unfortunately, after the airplane crossed the clouds, the sunshine was so strong that I couldn’t open my eyes, let alone enjoyed the scenery.

Forty minutes later, the sunshine became softer, and then I could enjoy them. But to be honest, there weren’t much beautiful scenery along the way. The only scenery I thought was cool is a wide physiognomy of hills. They are really wide, large, and special. The tops of them are connected, and very flat. Like a big pancake with many scars, if there aren’t these scars, it can be a natural super airport!

Finally when I arrived at the Nanyuan Airport, I was surprised. It’s too small! Only as big as a bus station! When I left the Airport I saw many old houses on the way to Chinaunicom. Those made me felt like I was in hometown, not in Beijing. And the environment near the Chinaunicom is really bad. All the buildings just have 2-3 floors, and they are so old. We saw many advertisements about the box lunch, “Only 5 Yuan!” so I can’t believe that that's Beijing, and near the Third Ring Road.

Later, after two days busy working I had some free time. So I called all the e-friends to get together. When we met each other, we didn’t feel embarrassed. We enjoyed the food and our table talk, which really made me fell so good! After the dinner they drove me home, and said I lived in the poorest area of Beijing, all the buildings will be removed. At that time I knew why they're so bad like that.

On the last two days I found time to visit the Bird's Nest, Water Cube and the Tiananmen Square. I didn’t visit The Imperial Palace, The Great Wall etc. because I haven’t enough time. But I will visit all of them next time.

Overall, this trip is good! It’s very happy to get together with e-friends. The Bird's Nest and Water Cube are wonderful. See you next time, Beijing.

, ,


Fork me on GitHub