一、安装前的准备,jdk-8u66-linux-x64.tar.gz(建分布式的时候会需要)、hadoop-2.6.0-x64.tar.gz

二、进入root用户,ifconfig 查看本机ip,牢记本机ip地址;安装伪分布式的时候可以直接输入yum -y install java* 即可自动下载安装并且配置好环境变量,

java -version

但是在最后启动hadoop的时候一定不能忘记修改JAVA_HOME 的具体地址,不然namenode会起不来,由于是直接yum安装的java,所以配置java地址的时候就使JAVA_HOME=/usr(我的用户名是hadoop,按说应该是JAVA_HOME=/hadoop,不知道为什么/usr也能启动namenode和secondarynamenode);

三、在root用户下输入hostname,查看主机名;hostname master 把主机名改为master,再hostname看是否修改成功,这种修改方式是临时修改主机名,要想永久修改命令为vi /etc/sysconfig/network (我在配伪分布式的时候两个命令都输了,把主机名永久修改为master,但是最后ssh互信就是不成功,然后输入 vi /etc/hosts 在后面尝试加入127.0.0.1 master、或者192.168.197.134  master 都互信不了,就报错是主机名有问题,最后没办法有把主机名改回localhost 才互信成功...不明白为啥建分布式的时候也是改为master,然后在vi /etc/hosts 后加入slave01 和ip的时候能互信成功,而且有的时候是用hostname改的,但下次启动虚拟机的时候仍然有效...)

四、ssh互信  hadoop用户权限下

1.在每个节点上建立密钥:ssh-keygen -t rsa

2.把id_rsa.pub追加授权到keys里面去:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

修改权限   chmod 755 ~/.ssh/authorized_keys

3.ssh 主机名测试   :ssh localhost   退出exit

五、在hadoop用户下新建hadoop文件夹 

1. su hadoop

2.mkdir hadoop  cd hadoop 

3.rz 导入hadoop-2.6.0压缩包。tar -xzf 解压缩,解完删除压缩包(rm -r)

4.切换到root用户 修改hadoop环境变量,因为java 是yum安装,因此只需要配置hadoop就行

vi /etc/profile
在done的后面加入

export HADOOP_HOME=/home/hadoop/hadoop/hadoop-2.6.0
 export PATH=$PATH:$HADOOP_HOME/bin
 export PATH=$PATH:$HADOOP_HOME/sbin

5.改完一定不要忘记source 一下....

6.进入hadoop用户修改配置文件,在~目录下,vim .bash_profile

HADOOP_HOME=/home/hadoop/hadoop/hadoop-2.6.0
 PATH=/home/hadoop/hadoop/hadoop-2.6.0/bin:/home/hadoop/hadoop/hadoop-2.6.0/sbin:$PATH:$HOME/bin
 HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
 HADOOP_OPTS="-Djava.librart.path=$HADOOP_HOME/lib"
 export PATH HADOOP_HOME HADOOP_COMMON_LIB_NATIVE_DIR HADOOP_OPTS

7.source 使文件生效

8.新建临时目录
mkdir tmp /hadoop/hadoop-2.6.0/tmp
chmod -R 755 /hadoop/cdhadoop-2.6.0/tmp
新建数据目录
mkdir /hadoop/hadoop-2.6.0/hdfs/data
新建元数据目录
mkdir /hadoop/hadoop-2.6.0/hdfs/name
设置访问权限
chmod -R 755 /hadoop/hadoop-2.6.0/hdfs

六、完全分布式集群安装(伪分布的时候只需要修改1,3和4)

1.hadoop-env.sh
 -$JAVA_HOME
 export JAVA_HOME=/usr    
 2.yarn-env.sh
 -$JAVA_HOME
 export JAVA_HOME=/usr
3.core-site.xml
 <property>
<name>fs.defaultFS</name>                       
<value>hdfs://主机名:9000</value>
 </property>
 <property>
<name>hadoop.tmp.dir</name>
<value>/usr/hadoop/hadoop-2.6.0/tmp</value>
 </property>
 <property> 
         <name>io.file.buffer.size</name>
<value>131072</value>
 </property>
4.hdfs-site.xml
 <property>
<name>dfs.namenode.secondary.http-address</name>
<value>hdfs://master:9005</value>
 </property>
 <property>
         <name>dfs.namenode.name.dir</name>
         <value>/usr/hadoop/hadoop-2.6.0/hdfs/name</value>
 </property>
 <property>
         <name>dfs.namenode.data.dir</name>
         <value>file:/usr/hadoop/hadoop-2.6.0/hdfs/data</value>
 </property>
 <property>
         <name>dfs.webhdfs.enabled</name>
         <value>true</value>
 </property>
 <property>
         <name>dfs.replication</name>
         <value>3</value>
 </property>
 5.mapred-site.xml
 <configuration>
 <property>
       <name>mapreduce.framework.name</name>
       <value>yarn</value>
 </property>
 <property>    <name>mapreduce.jobhistory.address</name>
         <value>master:10020</value>
 </property>
 <property>
         <name>mapreduce.jobhistory.webapp.address</name>
         <value>master:10021</value>
 </property>
 </configuration>
 6.yarn-site.xml
 <property>
         <name>yarn.nodemanager.aux-services</name>
         <value>mapreduce_shuffle</value>
 </property> 
 <property>
         <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>      <value>org.apache.hadoop.mapred.ShuffleHandler</value>
 </property>
 <property>       <name>yarn.resourcemanager.scheduler.address</name>
         <value>master:8030</value>
 </property>
 <property>
         <name>yarn.resourcemanager.resource-tracker.address</name>
         <value>master:8031</value>
 </property>
 <property>       <name>yarn.resourcemanager.address</name>
         <value>master:8032</value>
 </property>
 <property>     <name>yarn.resourcemanager.admin.address</name>
         <value>master:8033</value>
 </property>

7.格式化namenode   bin/hdfs-namenode -format

8.启动hadoop      sbin/start-all.sh    hadoop-2.6.0和hadoop-1的区别就是2需要分别启动

启动hdfs
sbin/start-dfs.sh
检查hadoop01上的进程name secondary
jps
启动yarn
sbin/start-yarn.sh
检查hadoop01上的进程

10.如果是完全分布式则修改slaves
-加入其它机器
slave01  
slave02 
停止服务
-stop-dfs.sh
-stop-yarn.sh

11.若是完全分布式集群,在配置前记得关闭防火墙...

列出所有服务:chkconfig

列出防火墙状态:service iptables status

关闭防火墙:chkconfig iptables off  //永久关闭
service iptables stop   //临时关闭
查看selinux状态:getenforce
关闭selinux状态:vi /etc/selinux/config
改为SELINUX=disabled
hadoop用户下:
ssh-copy-id -i hadoop@slave01
ssh-copy-id -i hadoop@slave01
每台机子分别发给其他机子(注意都要在hadoop用户下发送)
master:slave01,slave02
slave01:master,slave02
slave02:master,slave01