目前而言,不收费的Hadoop版本主要有三个(均是国外厂商),分别是:Apache(最原始的版本,所有发行版均基于这个版本进行改进)、Cloudera版本(Cloudera’s Distribution Including Apache Hadoop,简称CDH)、Hortonworks版本(Hortonworks Data Platform,简称“HDP”),对于国内而言,绝大多数选择CDH版本。
搭建环境:CentOS6.5 + CDH5 + JDK7
主:192.168.157.130 master
从:192.168.157.131 slave1
从:192.168.157.132 slave2
----------------------------------------------------------------------------------------------------
Step 1:关闭防火墙
a、查看防火墙是否关闭:
service iptables status
service ip6tables status
b、暂时关闭防火墙:
service iptables stop
service ip6tables stop
c、永久关闭防火墙:
chkconfig iptables off
chkconfig ip6tables off
Step 2:关闭SELinux
a、查看SELinux状态:
/usr/sbin/sestatus –v 或 getenforce
vim /etc/selinux/config
或
vim /etc/sysconfig/selinux
将SELINUX=enforcing改为SELINUX=disabled
Step 3:修改HostName
a、修改hostname:
vim /etc/sysconfig/network(主:master,从1:slave1,从2:slave2)
b、修改每台机器上的/etc/hosts文件:
192.168.157.130 master
192.168.157.131 slave1
192.168.157.132 slave2
Step 4:配置SSH免密码功能(master上root用户执行)
a、生成ssh的公共和私有密钥对:
ssh-keygen -t rsa
生成的过程中提示输入密钥对保存位置,直接回车,接受默认值就行了。接着会提示输入一个不同于你的password的密码,直接回车,让它空着。当然,也可以输入一个。
其中,公共密钥保存在 ~/.ssh/id_rsa.pub 私有密钥保存在 ~/.ssh/id_rsa
b、将authorized_keys拷贝到其他几台Slave上:
(可能会出现权限问题,请确保关闭防火墙,且互相之间配置了主机信任)
scp ~/.ssh/authorized_keys root@slave1:~/.ssh/
scp ~/.ssh/authorized_keys root@slave2:~/.ssh/
c、三台主机重启,测试免密功能是否配置成功:
ssh slave1
ssh slave2
没有提示输入密码,就表示成功了,最后可以通过”exit”退出ssh
Step 5:安装JDK(请根据CDH版本选择对应JDK,本次安装采用JDK7)
a、下载:http://download.oracle.com/otn-pub/java/jdk/7u80-b15/jdk-7u80-linux-x64.rpm?AuthParam=1429246603_8aa70427655c0e6f2aeff14f0d731ab3
b、安装
rpm -ivh jdk-7u51-linux-x64.rpm
c、添加java环境变量
vim /etc/profile
d、在/etc/profile文件里添加以下内容:
JAVA_HOME=/usr/java/latest
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export JAVA_HOME CLASSPATH
e、最后执行source,是环境变量生效
source /etc/profile
Step 6:安装ntp服务(视具体情况)
hadoop集群对于时间同步非常严格,请查看本集群主机时钟是否同步,如已存在ntp同步服务,则可以跳过此步骤。
Step 7:创建hadoop用户
a、创建用户和组:(根据实际情况创建)
groupadd hdfs
useradd hadoop -g hdfs
passwd hadoop
b、赋予hadoop用户sudo权限:
visudo
c、添加如下内容:
hadoop ALL=(ALL) ALL