Hadoop安装
三个节点创建相同的用户hadoop,Master机器主要配置NameNode和JobTracker的角色,负责总管分布式数据和

分解任务的执行;
3个Salve机器配置DataNode和TaskTracker的角色,负责分布式数据存储以及任务的执行;
在Hadoop启动以后,Namenode是通过SSH来启动和停止各个datanode上的各种守护进程的,所以就必须要配置无

密码登陆。
一、关闭IPTABLES和SELinux:
 service iptables stop
 chkconfig iptables off
 vi /etc/selinux/config
 SELINUX=disabled  #修改为disabled
二、配置每台java环境
tar zxvf jdk-7u17-linux-x64.tar.gz
mv jdk-7u17-linux-x64 /usr/local/jdk
添加环境变量:
vi /etc/profile
export JAVA_HOME=/usr/local/jdk
export JRE_HOME=$JAVA_HOME/jre
export HADOOP_HOME=/usr/local/zoo/hadoop
export PATH=$HADOOP_HOME/bin:$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
export CLASSPATH=$JAVA_HOME/lib/:$JRE_HOME/lib:$CLASSPATH

export HADOOP_HOME_WARN_SUPPRESS=1

取消格式化時的告警export HADOOP_HOME_WARN_SUPPRESS=1

運行命令使其生效export JAVA_HOME CLASSPATH PATH
source /etc/profile
java --version #显示版本则配置成功
三、创建用户和配置密钥对认证
A.三个节点都要创建hadoop用户,而且uid一样并设置密码
 useradd -u 600 hadoop
 passwd 密码
B.登陆到master创建密钥对
 su - hadoop
 ssh-keygen -t rsa #一直回车
 ls /home/hadoop/.ssh
 id_rsa id_rsa.pub #生成一对密钥
 使用root修改/etc/ssh/sshd_config文件
     将“#AuthorizedKeysFile      .ssh/authorized_keys”前面的#号去掉
     即,启用“AuthorizedKeysFile      .ssh/authorized_keys”
    (如果需要root也能ssh登录,把“#PermitRootLogin yes”前面的#号也去掉)
 同样root账户下,/etc/rc.d/init.d/sshd  restart重启sshd服务使之生效

C.登录master将公钥上传到两台slave
 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
 修改authorized_keys權限最低為644 chmod 644 authorized_keys
 然後scp authorized_keys hadoop@hadoop-slave01:~/.ssh/authorized_keys
 同樣修改其權限為兩台slave上authorized_keys權限為644


D.验证登陆
 ssh [email protected] #不用输入密码直接登陆两台slave上
 ssh [email protected]    
 ssh [email protected]    
 ssh [email protected]    
四、安装Hadoop并将配置完整复制到slave机器上
1.下载:http://www.apache.org/dist/hadoop/core/hadoop-1.2.0/
 tar zxvf hadoop-1.2.0.tar.gz
 mv hadoop-1.2.0 /usr/local/hadoop
2.更改
 vi /etc/profile
 HADOOP_HOME=/usr/local/hadoop
 PATH=$PATH:$HADOOP_HOME/bin
 export HADOOP_HOME
 source /etc/profile #生效变量
 chown -R hadoop.hadoop /usr/local/hadoop #设置hadoop所属用户
五、修改集群配置(hadoop/conf)
1.配置masters和slaves主从节点
vi master:去掉localhost,加入master机器的IP:192.168.0.202
vi slaves:去掉localhost,加入slave所有机器的IP:192.168.0.203 192.168.0.204
2.vi hadoop-env.sh
1export JAVA_HOME=/usr/local/jdk #去掉注释,修改jdk路径
3.vi core-site.xml


fs.default.name
hdfs://192.168.0.202:9000


hadoop.tmp.dir
/usr/local/hadoop/tmp


fs.checkpoint.period
60

 
fs.trash.interval  
1440  


参数说明:
fs.default.name: 主节点名字和端口
hadoop.tmp.dir:存放master临时文件,需要手动创建,以后不能删除,不过如果删除了NameNode机器的此目

录,那么就需要重新执行NameNode格式化的命令。
fs.checkpoint.period: snn检查nn日志的时间周期,这里是60秒,生产环境建议12小时
4.vi mapred-site.xml


mapred.job.tracker
192.168.0.202:9001


参数说明:
mapred.job.tracker:master的主机(或者IP)和端口
5.vi hdfs-site.xml


dfs.data.dir
/usr/local/hadoop/hdfs/data1,/usr/local/hadoop/hdfs/data2


dfs.name.dir
/usr/local/hadoop/name1,/usr/local/hadoop/name2


dfs.replication
2


参数说明:
dfs.data.dir:DataNode存放块数据的本地文件系统路径
dfs.name.dir:NameNode持久存储名字空间及事务日志的本地文件系统路径。 当这个值是一个逗号分割的目录

列表时,nametable数据将会被复制到所有目录中做冗余备份。
dfs.replication:数据需要备份的数量,默认是3,如果此数大于集群的机器数会出错。
注意:
此处的name1、name2、data1、data2目录不能预先创建,hadoop格式化时会自动创建,如果预先创建反而会有

问题。
配置结束,使用scp命令把配置好的hadoop文件夹拷贝到其他集群的机器中,并且保证上面的配置对于其他机

器而言正确,例如:如果其他机器的Java安装路径不一样,要修改conf/hadoop-env.sh
1    scp -r /usr/local/hadoop/ root@slave1/2.com:/usr/local/hadoop
六、启动hadoop
1.先格式化一个新的分布式文件系统(hadoop namenode -format)

2.启动hadoop节点(start-all.sh)


执行完后可以到master机器上

到/usr/local/hadoop/hdfs/data1、/usr/local/hadoop/hdfs/data2、/usr/local/hadoop/name1

和/usr/local/hadoop/name2四个目录。在主节点master上面启动hadoop,主节点会启动所有从节点的hadoop


3.关闭hadoop节点
stop-all.sh
主节点关闭hadoop,主节点会关闭所有从节点的hadoop。Hadoop守护进程的日志写入到logs下。
七、测试
1.查看端口是否开启
netstat -tupln | grep 9000
netstat -tupln | grep 9001
2.访问master(NameNode)和slave(JobTracker)启动是否正常http://192.168.0.202:50070和50030


3.jps查看守护进程是否运行
master显示:Job Tracker JpsSecondaryNameNod NameNode
slave显示:DataNode Jps TaskTracker
4.查看集群状态统计信息(hadoop dfsadmin -report)
master和slave输入信息:

八、常用命令
hadoop dfs -ls #列出HDFS下文件
hadoop dfs -ls in #列出HDFS下某个文档中的文件
hadoop dfs -put test.txt test #上传文件到指定目录并且重新命名,只有所有的DataNode都接收完数据才

算成功
hadoop dfs -get in getin #从HDFS获取文件并且重新命名为getin,同put一样可操作文件也可操作目录
hadoop dfs -rmr out #删除HDFS上的out目录
hadoop dfs -cat in/* #查看HDFS上in目录的内容
hadoop dfsadmin -safemode leave #退出安全模式
hadoop dfsadmin -safemode enter #进入安全模式
九、添加一个新的节点
1.在新加的节点上安装hadoop,
2.修改hadoop/conf/master文件,加入 NameNode主机名,
3.在NameNode节点上修改hadoop/conf/slaves文件,加入新加节点主机名,
4.建立到新加节点无密码的SSH连接
5.运行启动命令:start-all.sh
6.http://master.node:50070,查看新增加的DataNode