安装版本信息:
OS :Red Hat Enterprise Linux Server release 5.3 (Tikanga)
JDK : Java(TM) SE Runtime Environment (build 1.6.0_25-b06)
Hadoop : hadoop-0.20.203.0
一、修改集群hostname,dns名称
192.168.30.199 master
192.168.30.150 slave1
192.168.30.199 slave2
192.168.30.199 slave3
1. 集群的hostname (显示配置)
vi /etc/sysconfig/network
HOSTNAME=master
2. 集群hosts设置(为来提供给dns解析IP,集群配置中会统一使用dns名称)
vi /etc/hosts 加入如下设置
192.168.30.199 master
192.168.30.150 slave1
192.168.30.199 slave2
192.168.30.199 slave3
二、安装JDK
版本:jdk-6u25-linux-i586-rpm.bin
chmod +x jdk-6u25-linux-i586-rpm.bin
./jdk-6u25-linux-i586-rpm.bin
默认安装在/usr/java目录中
设置环境变量(供所有用户包含hadoop用户能够使用)
vi /etc/bashrc
JAVA_HOME=/usr/java/jdk1.6.0_25
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH CLASSPATH
三、集群中SSH免密码登陆
在Hadoop启动以后,Namenode是通过SSH(Secure Shell)来启动和停止各个datanode上的各种守护进程的,这就需要在节点之间执行指令的时候是不需要输入密码的方式,故我们需要配置SSH使用
无密码公钥认证的方式。
1. 添加集群统一用户
用户名:hadoop
密码: 123456
useradd hadoop
passwd 123456(twice)
2. 集群用户下SSH免密码登陆设置
eg. 192.168.30.199 master 主机
192.168.30.150 slave1 客户端(需要免密码登陆主机)
在master上:
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa (生成公密钥对)
scp id_dsa.pub @slave1:~/.ssh (将公钥发送至客户端)
在slave1上:
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys (将公钥加入认证key)
chmod 700 .ssh (修改目录和认证key权限)
chmod 600 authorized_keys
3. 防火墙设置:
永久打开或则关闭
chkconfig iptables on
chkconfig iptables off
永久打开或则关闭
chkconfig iptables on
chkconfig iptables off
即时生效:重启后还原
service iptables start
service iptables stop
四 hadoop相关配置
以下都是一些最基础的配置
1. hadoop-env.sh文件 以下都是一些最基础的配置
export JAVA_HOME=$JAVA_HOME // JAVA_HOME环境变量设置
export HADOOP_LOG_DIR=/data/logs // hadoop日志目录
2. core-site.xml:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
<description>The name and URI of the default FS.</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/data/tmp</value>
</property>
</configuration>
3.hdfs-site.xml<configuration>
<property>
<name>dfs.name.dir</name>
<value>/data/dfs/namenode</value>
<description>Path on the local filesystem where the NameNode stores the namespace and transactions logs persistently.</description>
</property>
<property>
<name>dfs.data.dir</name>
<value>/data/dfs/datanode</value>
<description>Comma separated list of paths on the local filesystem of a DataNode where it should store its blocks.</description>
</property>
<property>
<name>dfs.block.size</name>
<value>512000</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
3. mapred-site.xml:<configuration>
<property>
<name>mapred.job.tracker</name>
<value>master:9010</value>
</property>
</configuration>
4. masters:master 设置备份SecondNameNode节点
5. slaves:slave1
slave2
slave3