在Cent OS操作系统下配置Hadoop集群
以下集群配置内容,以两台机器为例。其中一台是namenode1,另一台是datanode1,datanode2。
namenode1上运行name node, data node, task tracker, job tracker,secondary name node;
datanode1和datanode2上运行data node, task tracker。
1. 安装jdk
yum install java-1.6.0-openjdk java-1.6.0-openjdk-devel
2. 设置环境变量
编辑/etc/profile文件,设置JAVA_HOME环境变量以及类路径
export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
3. 添加host dns解析
192.168.1.10 namenode1
192.168.1.11 datanode1
192.168.1.12 datanode2
3. 创建hadoop运行账号
useradd hadoop -g root
4. 产生ssh对称密钥
cd ~ && mkdir .ssh
chmod 700 .ssh && cd .ssh
创建密码为空的RSA密钥对:ssh-keygen -t rsa
在提示的对称密钥名称中输入 id_rsa
将公钥添加至authorized_keys中:cat id_rsa.pub >> authorized_keys
测试SSH连接。连接时会提示是否连接,按回车后会将此公钥加入至knows_hosts中:
ssh localhost
5. 配置namenode1和datanode1/datanode2的ssh互通
在namenode1节点上执行步骤1-4,然后通过scp命令把公钥发送到datanode1和datanode2上,
在datanode1和datanode2中执行步骤1-4,然后通过scp命令把公钥发到namenode1上,
scp id_rsa.pub namenode1:~/.ssh/id_rsa.pub
在namenode1,datanode1,datanode2节点执行公钥导入
cat id_rsa.pub >> authroized_keys
测试ssh连接:
在namenode1上执行: ssh datanode1, ssh datanode2
在datanode1/datanode2上执行: ssh namenode1
如果连接过程都不需要输入密码,说明设置成功,否则检查并请重新执行1-4步动作。
6. 安装hadoop
wget http://www.fayea.com/apache-mirror/hadoop/common/stable/hadoop-1.0.4-bin.tar.gz
tar zxvf hadoop-1.0.4-bin.tar.gz
7. 配置hadoop环境变量
编辑conf/hadoop-env.sh文件,设置JAVA_HOME为第2步指定的值
8. 修改hadoop配置文件
修改conf/core-site.xml文件如下:
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>fs.default.name</name> <value>hdfs://namenode1:9000</value> </property> </configuration>修改conf/hdfs-site.xml文件如下:
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>dfs.name.dir</name> <value>/home/hadoop/dfs/name</value> </property> <property> <name>dfs.data.dir</name> <value>/home/hadoop/dfs/data</value> </property> <property> <name>dfs.replication</name> <value>2</value> </property> </configuration>修改mapred-site.xml文件如下:
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>mapred.job.tracker</name> <value>namenode1:9001</value> </property> </configuration>修改conf/master文件:把localhost换成namenode1