搭建环境:CentOS7+hadoop3.0.3+jdk8

前提准备

  1. 安装配置jdk
  2. 配置静态ip地址
  3. 修改主机名
  4. 配置主机名和ip地址映射
  5. 关闭防火墙,设置开机不自启动
    注:以上操作在笔者之前的Linux相关笔记中均有介绍

正式搭建集群

  1. 添加用户hadoop
    useradd hadoop
    passwd hadoop
    注:后面都统一在hadoop用户下操作,统一权限
  2. 创建目录
    mkdir -p /home/hadoop/apps/dfs/data
    mkdir /home/hadoop/apps/dfs/name
    mkdir /home/hadoop/apps/tmp
  3. 上传并解压hadoop-3.0.3.tar.gz
    sftp上传
    tar -zxvf hadoop-3.0.3.tar.gz apps/
  4. 配置hadoop-env.sh
    vi /home/hadoop/apps/hadoop-3.0.3/etc/hadoop/hadoop-env.sh
    找到export JAVA_HOME
    并添加
    export JAVA_HOME=/usr/local/jdk
  5. 修改核心配置文件core-site.xml
    vi core-site.xml
    在configuration标签中添加属性

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <configuration>
    <property>
    <name>fs.defaultFS</name> #默认
    <value>hdfs://hadoop5:9000</value> #hdfs的api接口
    </property>
    <property>
    <name>hadoop.tmp.dir</name> #hadoop运行时产生临时数据的存储目录
    <value>/home/hadoop/apps/tmp</value> #该目录的地址
    </property>
    </configuration>
  6. 配置hadoop的底层存储hdfs-site.xml
    vi hdfs-site.xml
    在configuration标签中添加属性

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <configuration>
    <property>
    <name>dfs.replication</name> #设置副本个数
    <value>1</value>
    </property>
    <property>
    <name>dfs.namenode.name.dir</name> #设置namende数据存放点
    <value>file:/home/hadoop/apps/dfs/name</value>
    </property>
    <property>
    <name>dfs.datanode.data.dir</name> #设置datanode数据存放点
    <value>file:/home/hadoop/apps/dfs/data</value>
    </property>
    </configuration>
  7. 复制并重命名mapred-site.xml.template
    cp mapred-site.xml.template mapred-site.xml
  8. 修改配置文件mapred-site.xml
    vi mapred-site.xml
    在configuration标签中添加属性

    1
    2
    3
    4
    5
    6
    <configuration>
    <property>
    <name>mapreduce.framwork.name</name> #设置mapreduce的运行平台的名称
    <value>yarn</value> #设置mapreduce的运行平台为yarn
    </property>
    </configuration>
  9. 修改配置文件yarn-site.xml
    vi yarn-site.xml
    在configuration标签中添加属性

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <configuration>
    <property>
    <name>yarn.resourcemanager.hostname</name> #指定yarn的老大的地址
    <value>hadoop5</value>
    </property>
    <property>
    <name>yarn.nodemanager.aux-services</name> #reducer获取数据的方式
    <value>mapreduce_shuffle</value>
    </property>
    </configuration>
  10. 修改配置文件workers
    添加
    hadoop5
  11. 配置hadoop环境变量
    vi ~/.bash_profile
    添加
    HADOOP_HOME=/home/hadoop/apps/hadoop-3.0.3
    PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    export HADOOP_HOME PATH
  12. 格式化hdfs(没事不要用这个命令,蛋疼)
    hdfs namenode -format
  13. 配置免密登录
    ssh-keygen
    ssh-copy-id hadoop5
  14. 启动所有服务(不推荐)
    start-all.sh
    相当于start-dfs.sh+start-yarn.sh
  15. 停止所有服务
    stop-all.sh
  16. 在浏览器查看
    hadoop5:9870
    hadoop5:8088
  17. 查看该集群的根目录
    hdfs dfs -ls /
  18. 创建自己的家目录
    hdfs dfs -mkdir /user/xujie
  19. 测试实例
    cd /home/hadoop/apps/hadoop-3.0.3/share/hadoop/mapreduce/
    调用jar包计算pi的值,计算100次
    hadoop jar hadoop-mapreduce-examples-3.0.3.jar pi 3 100