准备工作

  1. 3台客户机(关闭防火墙、设置静态IP、设置主机名称)
  1. #示例
  2. node101 10.211.55.101
  3. node102 10.211.55.102
  4. node103 10.211.55.103

如何设置静态ip、主机名、配置ssh免密登录请参开Linux常用设置
**

  1. 创建twx用户,并赋予twx用户root权限

  2. 同步脚步 xsync (注意:需要在各个节点上先安装 sudo yum install rsync )

  1. #!/bin/bash
  2. #1 获取输入参数个数,如果没有参数,直接退出
  3. pcount=$#
  4. if((pcount==0)); then
  5. echo no args;
  6. exit;
  7. fi
  8. #2 获取文件名称
  9. p1=$1
  10. fname=`basename $p1`
  11. echo fname=$fname
  12. #3 获取上级目录到绝对路径
  13. pdir=`cd -P $(dirname $p1); pwd`
  14. echo pdir=$pdir
  15. #4 获取当前用户名称
  16. user=`whoami`
  17. #5 循环
  18. for((host=101; host<104; host++)); do
  19. echo -------------------node$host --------------
  20. rsync -rvl $pdir/$fname $user@node$host:$pdir
  21. done

开始

准备

在每个节点下操作如下步骤:

1、在/opt下创建module、software文件夹

sudo mkdir module sudo mkdir software

2、修改module、software文件夹的所有者

sudo chown twx:twx module/ software/

安装JDK

1、上传、解压略过
2、配置环境变量 sudo vi /etc/profile

JAVA_HOME

export JAVA_HOME=/opt/module/jdk1.8.0_144 export PATH=$PATH:$JAVA_HOME/bin

3、 source /etc/profile
4、分发到其他节点 sync

安装Hadoop

1、解压 tar -zxvf hadoop-2.7.2.tar.gz -C /opt/module/
2、 配置环境变量 sudo vi /etc/profile

HADOOP_HOME

export HADOOP_HOME=/opt/module/hadoop-2.7.2 export PATH=$PATH:$HADOOP_HOME/bin export PATH=$PATH:$HADOOP_HOME/sbin

3、source /etc/profile

配置集群

1、核心配置文件

vi core-site.xml,在该文件中编写如下配置

  1. <!-- 指定HDFS中NameNode的地址 -->
  2. <property>
  3. <name>fs.defaultFS</name>
  4. <value>hdfs://node101:9000</value>
  5. </property>
  6. <!-- 指定Hadoop运行时产生文件的存储目录 -->
  7. <property>
  8. <name>hadoop.tmp.dir</name>
  9. <value>/opt/module/hadoop-2.7.2/data/tmp</value>
  10. </property>

2、HDFS配置文件

配置hadoop-env.sh

[atguigu@hadoop102 hadoop]$ vi hadoop-env.sh export JAVA_HOME=/opt/module/jdk1.8.0_144

配置hdfs-site.xml

<property>
        <name>dfs.replication</name>
        <value>3</value>
</property>

<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
      <name>dfs.namenode.secondary.http-address</name>
      <value>node103:50090</value>
</property>

3、配置yarn文件

配置yarn-env.sh

[atguigu@hadoop102 hadoop]$ vi yarn-env.sh export JAVA_HOME=/opt/module/jdk1.8.0_144


配置yarn-site.xml

<!-- Reducer获取数据的方式 -->
<property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
</property>

<!-- 指定YARN的ResourceManager的地址 -->
<property>
        <name>yarn.resourcemanager.hostname</name>
        <value>node102</value>
</property>

4、配置mapreduce文件

配置mapred-env.sh

[atguigu@hadoop102 hadoop]$ vi mapred-env.sh export JAVA_HOME=/opt/module/jdk1.8.0_144

配置mapred-site.xml

[atguigu@hadoop102 hadoop]$ cp mapred-site.xml.template mapred-site.xml

[atguigu@hadoop102 hadoop]$ vi mapred-site.xml


<!-- 指定MR运行在Yarn上 -->
<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
</property>

5、配置slaves

/opt/module/hadoop-2.7.2/etc/hadoop/slaves [atguigu@hadoop102 hadoop]$ vi slaves

在该文件中增加如下内容:

hadoop102
hadoop103
hadoop104

注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行


6、在集群上分发配置好的Hadoop配置文件

[atguigu@hadoop102 hadoop]$ xsync /opt/module/hadoop-2.7.2/


启动集群

第一次启动需格式化

[atguigu@hadoop102 hadoop-2.7.2]$ bin/hdfs namenode -format

1、启动hdfs

[atguigu@hadoop102 hadoop-2.7.2]$ sbin/start-dfs.sh [atguigu@hadoop102 hadoop-2.7.2]$ jps 4166 NameNode 4482 Jps 4263 DataNode

2、启动yarn

[atguigu@hadoop103 hadoop-2.7.2]$ sbin/start-yarn.sh

注意:NameNode和ResourceManger如果不是同一台机器,不能在NameNode上启动 YARN,应该在ResouceManager所在的机器上启动YARN。

停止集群

1、停止yarn

/opt/module/hadoop-2.7.2/sbin/stop-yarn.sh

2、停止hdfs

/opt/module/hadoop-2.7.2/sbin/stop-dfs.sh


查看集群

NameNode: http://node101:50070/

SecondaryNameNode: http://node103:50090/

LZO压缩配置

1)先下载lzo的jar项目
https://github.com/twitter/hadoop-lzo/archive/master.zip
2)下载后的文件名是hadoop-lzo-master,它是一个zip格式的压缩包,先进行解压,然后用maven编译。生成hadoop-lzo-0.4.20.jar。
3)将编译好后的hadoop-lzo-0.4.20.jar 放入hadoop-2.7.2/share/hadoop/common/

[twx@node101 common]$ pwd /opt/module/hadoop-2.7.2/share/hadoop/common [twx@node101 common]$ ls hadoop-lzo-0.4.20.jar


4)同步hadoop-lzo-0.4.20.jar到node102、node103

[twx@node101 common]$ xsync hadoop-lzo-0.4.20.jar


5)core-site.xml增加配置支持LZO压缩

<property>
  <name>io.compression.codecs</name>
  <value>
    org.apache.hadoop.io.compress.GzipCodec,
    org.apache.hadoop.io.compress.DefaultCodec,
    org.apache.hadoop.io.compress.BZip2Codec,
    org.apache.hadoop.io.compress.SnappyCodec,
    com.hadoop.compression.lzo.LzoCodec
    </value>
</property>

<property>
    <name>io.compression.codec.lzo.class</name>
     <value>com.hadoop.compression.lzo.LzoCodec</value>
</property>

6)同步core-site.xml到node102、node103

xsync core-site.xml