Hadoop实战之分布式模式

1. 安装
这里假定我们运行Hadoop集群的三台机器名分别为fanbinx1,fanbinx2,fanbinx3。其中fanbinx1作为master节点,fanbinx2和fanbinx3作为slave节点。

另外我们Hadoop的2.5.1的安装包安装到各个机器的/opt/hadoop目录下,为了说明方便我们这里使用$HADOOP_HOME来代替/opt/hadoop目录
并在此目录下创建下面三个目录

mkdir -p $HADOOP_HOME/dfs/name
mkdir -p $HADOOP_HOME/dfs/data
mkdir -p $HADOOP_HOME/temp

2. 配置
这里一共需要修改hadoop的下面几个配置文件和脚本文件

$HADOOP_HOME/etc/hadoop/hadoop-env.sh
$HADOOP_HOME/etc/hadoop/yarn-env.sh
$HADOOP_HOME/etc/hadoop/core-site.xml
$HADOOP_HOME/etc/hadoop/hdfs-site.xml
$HADOOP_HOME/etc/hadoop/mapred-site.xml
$HADOOP_HOME/etc/hadoop/yarn-site.xml
$HADOOP_HOME/etc/hadoop/slaves

2.1 $HADOOP_HOME/etc/hadoop/hadoop-env.sh指定JAVA_HOME环境变量

export JAVA_HOME=/opt/jdk7

2.2 $HADOOP_HOME/etc/hadoop/yarn-env.sh指定JAVA_HOME环境变量

export JAVA_HOME=/opt/jdk7

2.3 $HADOOP_HOME/etc/hadoop/core-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://fanbinx1:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/hadoop/temp</value>
    </property>
</configuration>

2.4 $HADOOP_HOME/etc/hadoop/hdfs-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/opt/hadoop/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/opt/hadoop/dfs/data</value>
    </property>
</configuration>

2.5 $HADOOP_HOME/etc/hadoop/mapred-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

2.6 $HADOOP_HOME/etc/hadoop/yarn-site.xml

<?xml version="1.0"?>
<configuration>
    <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.address</name>
        <value>fanbinx1:8032</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>fanbinx1:8030</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>fanbinx1:8031</value>
    </property>
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>fanbinx1:8033</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>fanbinx1:8088</value>
    </property>
</configuration>

2.7 $HADOOP_HOME/etc/hadoop/slaves这个文件夹用来定义slave节点

fanbinx2
fanbinx3

2.8 最后需要将这些配置文件复制到另外两个slave节点上。

3. 设置Linux上可以ssh用户可以免密码登录

$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

4. 启动Hadoop集群
4.1 首先格式化namenode

$ bin/hdfs namenode -format

4.2 启动hdfs
在master机器上运行下面命令

$ sbin/start-dfs.sh

在master机器上运行”ps -ef | grep hadoop”可以查看到NameNode和SecondaryNameNode两个hadoop进程
在slave机器上运行”ps -ef | grep hadoop”可以查看到DataNode一个hadoop进程

4.3 启动yarn
在master机器上运行下面命令

$ sbin/start-yarn.sh

在master机器上运行”ps -ef | grep hadoop”可以查看到NameNode,SecondaryNameNode和ResourceManager三个hadoop进程
在slave机器上运行”ps -ef | grep hadoop”可以查看到DataNode和NodeManager两个hadoop进程

4.4 验证
在启动了hdfs和yarn之后,可以通过项目两个url来查看状态
查看HDFS:http://fanbin1:50070/
查看RM: http://fanbin1:8088/cluster/

也可以使用下面的命令行来查看集群状态

$ bin/hdfs dfsadmin -report

4.5 这里也可以使他”sbin/start-all.sh”和”sbin/stop-all.sh”来代替启动/停止hdfs和yarn两个服务。

5. 运行示例程序
首先提交作业

$ bin/hdfs dfs -mkdir /user
$ bin/hdfs dfs -mkdir /user/<username>
$ bin/hdfs dfs -put etc/hadoop input
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.1.jar grep input output 'dfs[a-z.]+'

查看结果

$ bin/hdfs dfs -get output output
$ cat output/*


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值