#####
####安装hadoop完全分布式集群
#####

####文件及系统版本:
####
hadoop-1.2.1
Java version 1.7.0_79
centos 64位

####预备
####
在/home/hadoop/下:mkdir Cloud
把java和hadoop安装包放在/home/hadoop/Cloud下

####配置静态ip
####
master	192.168.116.100
slave1	192.168.116.110
slave2	192.168.116.120

####修改机器相关名称(都是在root权限下)
####
su root
vim /etc/hosts
在原信息下输入:(空格+tab)
master	192.168.116.100
slave1	192.168.116.110
slave2	192.168.116.120

vim /etc/hostname
master
shutdown -r now  (重启机器)

vim /etc/hostname
slave1
shutdown -r now

vim /etc/hostname
slave2
shutdown -r now

####安装openssh
####
su root
yum install openssh
ssh-keygen -t rsa
然后一直确认
把slave1和slave2的公钥发给master:
scp /home/hadoop/.ssh/id_rsa.pub hadoop@master:~/.ssh/slave1.pub
scp /home/hadoop/.ssh/id_rsa.pub hadoop@master:~/.ssh/slave2.pub
在master下: cd .ssh/
cat id_rsa.pub >> authorized_keys
cat slave1.pub >> authorized_keys
cat slave2.pub >> authorized_keys
把公钥包发给slave1和slave2:
scp authorized_keys hadoop@slave1:~/.ssh/
scp authorized_keys hadoop@slave2:~/.ssh/

ssh slave1
ssh slave2
ssh master
相应的输入yes
到这里ssh无密码登录配置完成


####设计JAVA_HOME HADOOP_HOME
####
su root
vim /etc/profile
输入:
export JAVA_HOME=/home/hadoop/Cloud/jdk1.7.0_79
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export HADOOP_HOME=/home/hadoop/Cloud/hadoop-1.2.1
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
然后source /etc/profile



####配置hadoop文件
####
在/home/hadoop/Cloud/hadoop-1.2.1/conf下
vim masters 输入:
master

vim slaves 输入:
master
slave1
slave2

vim hadoop-env.sh 输入:
export JAVA_HOME=/home/hadoop/Cloud/jdk1.7.0_79
export HADOOP_HOME_WARN_SUPPRESS="TRUE"
然后source hadoop-env.sh

vim core-site.xml 输入:
###################################core
<configuration>

 <property>

<name>io.native.lib.avaliable</name>

<value>true</value>

</property>

<property>

<name>fs.default.name</name>

<value>hdfs://master:9000</value>

<final>true</final>

</property>

<property>

<name>hadoop.tmp.dir</name>

<value>/home/hadoop/Cloud/workspace/temp</value>

</property>

</configuration>
############################core

vim  hdfs-site.xml
##############################hdfs
<configuration>

<property>

<name>dfs.replication</name>

<value>3</value>

</property>

<property>

<name>dfs.permissions</name>

<value>false</value>

</property>

<property>

<name>dfs.namenode.name.dir</name>

<value>/home/hadoop/Cloud/workspace/hdfs/data</value>

<final>true</final>

</property>

<property>

<name>dfs.namenode.dir</name>

<value>/home/hadoop/Cloud/workspace/hdfs/name</value>

</property>

<property>

<name>dfs.datanode.dir</name>

<value>/home/hadoop/Cloud/workspace/hdfs/data</value>

</property>

<property>

<name>dfs.webhdfs.enabled</name>

<value>true</value>

</property>

</configuration>
##################################hdfs

vim mapred-site.xml

####################################mapred
<configuration>

<property>
   <name>mapred.job.tracker</name>
      <value>master:9001</value>
        </property>

</configuration>
######################################mapred

到这里hadoop配置完成
把hadoop发送到slave1和slave2
scp -r hadoop-1.2.1 hadoop@slave1:~/Cloud/
scp -r hadoop-1.2.1 hadoop@slave2:~/Cloud/

########现在可以启动hadoop啦
########
首先格式化namenode
hadoop namenode -format   (由于前面设计了hadoop-env.sh和系统环境,所以在任意目录下都可以执行)
查看日志没错的话往下
start-all.sh
然后
完整的的话会出现:
[hadoop@master ~]$ jps
8330 JobTracker
8452 TaskTracker
8246 SecondaryNameNode
8125 DataNode
8000 NameNode
8598 Jps
[hadoop@master ~]$ ssh slave1
Last login: Thu Jan 12 07:08:06 2017 from master
[hadoop@slave1 ~]$ jps
3885 DataNode
3970 TaskTracker
4078 Jps
[hadoop@slave1 ~]$ ssh slave2
Last login: Thu Jan 12 07:20:45 2017 from master
[hadoop@slave2 ~]$ jps
2853 TaskTracker
2771 DataNode
2960 Jps
至此,hadoop完全分布式配置完成。
下面是hadoop的浏览器端口号:
localhost:50030/   for the Jobtracker
localhost:50070/   for the Namenode
localhost:50060/   for the Tasktracker

从此走上大数据这条不归路。。。