分类目录归档:Hadoop

hadoop在Centos上的安装

[root@Yy86 ~]# uname -a
Linux Yy86 2.6.9-42.ELsmp #1 SMP Wed Jul 12 23:27:17 EDT 2006 i686 i686 i386 GNU/Linux
1,安装jdk
chmod +x jdk-6u3-linux-i586.bin
./jdk-6u3-linux-i586.bin
mv jdk1.6.0_03 /usr/local/
2,导入环境变量
export  JAVA_HOME=/usr/local/jdk1.6.0_03
export  CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export  PATH=$JAVA_HOME/bin:$PATH:$JAVA_HOME/lib:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
3,安装Hadoop 及配置
(1)以root登录,在所有节点上分别修改/etc/hosts,添加如下内容:  
192.168.1.102  hadoop.master
192.168.1.101  hadoop.slave1
(2)用root登陆,建立hadoop用户 
useradd hadoop
passwd zhong
(3)进入hadoop目录,使用如下命令:(注意权限问题)(所有节点上都要执行)
  注意:如果是master和salve的IP有变化的话,需要重新执行此步。
(出现问题可使用root账户查看/var/log/secure日志文件)
su – hadoop             #进入hadoop用户目录
ssh-keygen -t rsa      #建立ssh目录,敲回车到底,这个命令将为hadoop上的用户
hadoop生成其密钥对,询问其保存路径时直接回车采用默认路径,当提示要为生成的密钥输入passphrase的时 候,直接回车,
也就是将其设定为空密码。生成的密钥对id_rsa,id_rsa.pub,默认存储在/root/.ssh目录下
chmod 755 .ssh           #赋予755权限
cd .ssh
#ls –l
id_rsa  id_rsa.pub
(4)这一步骤仅在master上执行,下列命令会提示你输入slave1的密码,按照提示输入即可,如果失败可重新尝试执行命令
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
#把公用密匙添加到authorized_keys 文件中(此文件最后一定要赋予644权限)
ssh hadoop.slave1 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
#上面条命令是把其他slave节点的公钥拷贝到master节点中的authorized_keys,#有几个slave节点就需要运行几次命令,slave1是节点名称
scp ~/.ssh/authorized_keys hadoop.slave1:~/.ssh/authorized_keys
#把authorized_keys文件拷贝回每一个节点,slave1是节点名称
(5)在master上连接所有slave节点,输入如下命令,上有几个slave节点就要输入几次,
注意每次输入后,要返回master节点,重新输入命令:
    ssh hadoop.slave1  #需要选择yes/no 选择yes即可
此时 ls .ssh 结果如下:
authorized_keys  id_rsa  id_rsa.pub  known_hosts
(6)Hadoop的安装到目录/usr/local  .        
tar  -xvfz  hadoop-0.20.2.tar.gz
mv hadoop-0.20.2 /usr/local/
(7)配置环境变量(.bash_profile)  
export  HADOOP_HOME=/usr/local/hadoop-0.20.2
export PATH=$PATH:$HADOOP_HOME/bin
(8)修改Hadoop的配置文件,在hadoop文件的conf文件夹中 
A 、masters文件里添加如下内容:
192.168.1.102
B、slaves文件添加如下内容:
192.168.1.101
注:配置IP的地方尽量不要用主机名,否则不通用,易出问题。
(9)修改以下共3个xml配置文件:
首先hadoop-env.sh中添加如下语句:
export JAVA_HOME=/usr/local/jdk1.6.0_03
core-site.xml添加如下语句在<configuration></configuration>之间:
<property>
<name>fs.default.name</name>
<value>hdfs://192.168.1.102:9000</value>
</property>
注意,这样配成IP 192.168.1.102,不要用主机名master, 否则eclipse里连接不上。
先要在操作系统上创建该目录:/home/hadoop/tmp
 <property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/tmp</value>
</property>
mapred-site.xml添加如下语句在<configuration></configuration>之间:
<property>
<name>mapred.job.tracker</name>
<value>192.168.1.102:9001</value>
</property>
hdfs-site.xml添加如下语句在<configuration></configuration>之间,
replication 默认为3,如果不修改,datanode 少于三台就会报错
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
10、配置好的hadoop和jdk发送到其他节点上:
scp -r /usr/local/hadoop-0.20.2 hadoop.slave1:/usr/local/
scp -r /usr/local/ jdk1.6.0_03  hadoop.slave1:/usr/local/
(11)配置好后在master机器上进入hadoop的bin目录 格式化文件系统(一定要)              ./hadoop namenode -format  #格式化文件系统
./start-all.sh             #启动namenode上的hadoop
  确保9001和9000端口是通的。
jps  查看是否启动正常!