一、安装前准备
CentOS6.5(64bit)
hadoop-2.6.0-64.tar.gz
jdk-7u67-linux-x64.tar.gz

二、安装

1、关闭防火墙和SELinux

service iptables status (查看)
service iptables stop
chkconfig iptables off (永久关闭)

vi /etc/sysconfig/selinux          
设置 SELINUX=disabled

2、设置静态IP地址

vi /etc/sysconfig/network-scripts/ifcfg-eth0

3、修改HostName

hostname hadoop-yarn.dragon.org       当前生效   
vi /etc/sysconfig/network             下次启动生效

4、IP与HostName绑定
vi /etc/hosts
内容:IP地址 (主机名+域名) 主机名

192.168.48.128 hadoop1.dragon.org hadoop1

5、设置SSH免密码登陆

ssh-keygen -t rsa

cd /root/.ssh/

ssh-copy-id root@localhost

ssh localhost

6、安装JDK
安装目录:/install/
版本:jdk-7u67-linux-x64.tar.gz

解压缩:

tar  -zxvf  jdk-7u67-linux-x64.tar.gz

设置环境变量:

vim /etc/profile

添加内容:

export JAVA_HOME=/install/jdk
export PATH=.:$JAVA_HOME/bin:$PATH

使配置生效:

source /etc/profile

验证:
java -version

7、安装hadoop

1)解压tar包
tar -zxvf hadoop-2.6.0-64.tar.gz

2)设置环境变量

export JAVA_HOME=/install/jdk
export HADOOP_HOME=/install/hadoop
export PATH=.:$JAVA_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$PATH

使配置生效:

source /etc/profile

3)配置

Hadoop2.6深入伪分布安装(CentOS 6.5)_Hadoop

1、hadoop-env.sh

# The java implementation to use.
#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/install/jdk

2、yarn-env.sh(一般可以不添加)

# some Java parameters
# export JAVA_HOME=/home/y/libexec/jdk1.6.0/
export JAVA_HOME=/install/jdk

3、mapred-env.sh(一般可以不添加)

# export JAVA_HOME=/home/y/libexec/jdk1.6.0/
export JAVA_HOME=/install/jdk

4、core-site.xml

<configuration>
    <property>       
        <name>fs.default.name</name>
        <value>hdfs://hadoop1:8020</value>
    </property>

    <property>
        <name>hadoop.tmp.dir</name>
        <value>/install/hadoop/data/tmp</value>         
    </property>

</configuration>

5、hdfs-site.xml

<configuration>
    <property>      
        <name>dfs.replication</name>
        <value>1</value>
    </property>

    <property>
        <name>dfs.permissions</name>
        <value>false</value>
    </property>

</configuration>

6、yarn-site.xml

<configuration>

<!-- Site specific YARN configuration properties -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>

</configuration>

7、mapred-site.xml

<configuration>
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
</configuration>

8、masters
添加:localhost
( 建议可以写成以下格式:hadoop2@192.168.10.3,即用户名@地址)

9、slaves
添加:localhost(同上)

NameNode 格式化
hdfs namenode -format(core-site.xml、hdfs-site.xml、hadoop-env.sh)

STARTUP_MSG:   host = hadoop1/172.18.50.101
...     
Formatting using clusterid: CID-862191a5-ead4-4cf4-b345-2d7d243bec79
15/04/26 09:52:10 INFO common.Storage: Storage directory /install/hadoop/data/tmp/dfs/name  

4)启动
1、启动HDFS
NameNode、DataNode、SecondaryNameNode

–启动NameNode
hadoop-daemon.sh start namenode

验证:

方式1、jps
方式2、http://hadoop1:50070/

–启动DataNode
hadoop-daemon.sh start datanode

验证:

方式1、jps
方式2、http://hadoop1:50075/

–启动SecondaryNameNode
sbin/hadoop-daemon.sh start secondarynamenode

验证:

方式1、jps
方式2、http://hadoop1:50090/

2、启动YARN
ResourceManager、NodeManager

启动ResourceManger

yarn-daemon.sh start resourcemanager

启动NodeManager

yarn-daemon.sh start nodemanager    

验证:

方式1、jps
方式2、http://hadoop1:8088/

3、运行例程
1、统计单词

yarn jar /install/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar wordcount /input /output

2、求PI值

yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar pi 100 1000

后面2个数字参数的含义:
第1个100指的是要运行100次map任务
第2个数字指的是每个map任务,要投掷多少次
2个参数的乘积就是总的投掷次数。


扩展:
蒙特卡洛算法,我们取一个单位的正方形里面做一个内切圆(单位圆),则 单位正方形面积 : 内切单位圆面积 = 单位正方形内的飞镖数 : 内切单位圆内的飞镖数 ,通过计算飞镖个数就可以把单位圆面积算出来, 通过面积,在把圆周率计算出来。 注意 :精度和你投掷的飞镖次数成正比。
hadoop的examples中的计算PI的方法属于是采用大量采样的统计学方法,还是属于数据密集型的工作。


查看历史服务器端口号

netstat -tnlp|grep 19888

历史服务器(查看作业历史运行情况)

启动/关闭历史服务器

mr-jobhistory-daemon.sh start historyserver
mr-jobhistory-daemon.sh stop historyserver
http://hadoop1:19888/

三、启动HDFS与YARN的方式

方式一:逐一启动
hadoop-daemon.sh、yarn-daemon.sh(实际项目中)

方式二:分开启动
start-dfs.sh、start-yarn.sh

方式三:一起启动
start-all.sh(不推荐,Hadoop1.x保留的)

HDFS启动时如何使用SSH协议?
Hadoop2.6深入伪分布安装(CentOS 6.5)_Hadoop_02

三种启动方式的关系
Hadoop2.6深入伪分布安装(CentOS 6.5)_Hadoop_03