学习笔记_Hadoop伪分布式搭建

伪分布式即为所有节点均配置在一台机器上,后期添加其余框架配置时建议现在伪分布式进行测试,成功后再移植到完全分布式

环境准备

1.网卡IP设置为静态(NAT模式)
  • 修改网卡配置
# vi /etc/sysconfig/network-scripts/ifcfg-eth0

这里写图片描述

2.重启网络服务
# service network restart
3.修改主机名

这里我使用主机名为master

# vi /etc/sysconfig/network

这里写图片描述

4.关闭防火墙
  • 关闭防火墙
# service iptables stop
  • 设置成开机不启动
# chkconfig iptables off
  • 关闭selinux
# vi /etc/sysconfig/selinux

这里写图片描述

5.添加主机名映射
  • Linux上添加主机名映射
# vi /etc/hosts

这里写图片描述

  • Windows本地添加主机名映射
    路径:C:\Windows\System32\drivers\etc\hosts
    这里写图片描述
6.创建普通用户

后期操作几乎都用普通用户进行,这里我使用普通用户名为hadoop(若存在普通用户可不用再次创建)

# useradd hadoop
# echo 123456 | passwd --stdin hadoop
7.安装JDK
  • 查看自带jdk
# rpm -qa | grep java

这里写图片描述

  • 卸载自带jdk
# rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.50.1.11.5.el6_3.x86_64 tzdata-java-2012j-1.el6.noarch java-1.7.0-openjdk-1.7.0.9-2.3.4.1.el6_3.x86_64
  • 新建文件夹并修改权限
# chown -R hadoop:hadoop /opt
$ mkdir -p /opt/modules
$ mkdir -p /opt/softwares
  • 上传jdk压缩包

这里使用filezilla上传jdk-7u79-linux-x64.tar.gz压缩包到/opt/softwares/下

  • 解压jdk
$ cd /opt/softwares/
$ tar -zxf jdk-7u79-linux-x64.tar.gz -C /opt/modules/
  • 修改环境变量
# vi /etc/profile
  • 修改配置文件,加入以下部分
##JAVA_HOME
JAVA_HOME=/opt/modules/jdk1.7.0_79
export PATH=$PATH:$JAVA_HOME/bin
  • 检查是否配置成功
# source /etc/profile
# java -version

若出现信息则配置成功

伪分布式搭建

1.上传压缩包

这里使用filezilla上传hadoop-2.5.0-cdh5.3.6.tar.gz压缩包到/opt/softwares/下

2.解压压缩包
$ tar -zxf hadoop-2.5.0-cdh5.3.6.tar.gz -C /opt/modules/
3.配置HDFS

这里使用Notepad++连接主机来进行配置文件修改,配置文件路径为/opt/modules/hadoop-2.5.0-cdh5.3.6/etc/hadoop/

  • hadoop-env.sh
export JAVA_HOME=/opt/modules/jdk1.7.0_79
  • core-site.xml
    <!--HDFS集群访问入口地址-->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:8020</value>
    </property>
    <!--声明存放数据的目录-->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/modules/hadoop-2.5.0-cdh5.3.6/data</value>
    </property>
  • hdfs-site.xml
    <!--Block的副本数,数据块的副本数不能大于datanode的节点数量-->
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
  • slaves
    声明哪些服务器是datanode,每行一个主机名
master
  • 格式化文件系统
$ bin/hdfs namenode -format
  • 启动HDFS
$ sbin/hadoop-daemon.sh start namenode
$ sbin/hadoop-daemon.sh start datanode

多次格式化导致元数据不统一解决方案

  • 删除hadoop下的data文件夹后,重新格式化
$ rm -rf data
$ bin/hdfs namenode -format

测试

  • 创建测试文件
$ cd /opt
$ vi test.txt

这里写图片描述

  • 在hdfs上创建文件夹
$ cd /opt/modules/hadoop-2.5.0-cdh5.3.6/
$ sbin/hadoop-daemon.sh start namenode
$ sbin/hadoop-daemon.sh start datanode
$ bin/hdfs dfs -mkdir /input

这里写图片描述

这里写图片描述

  • 上传文件
$ bin/hdfs dfs -put /opt/test.txt /input/

这里写图片描述

4.配置YARN
  • yarn-env.sh和mapred-env.sh
export JAVA_HOME=/opt/modules/jdk1.7.0_79
  • yarn-site.xml
    <!-- NodeManager获取数据的方式是shuffle -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>
  • mapred-site.xml
    如果只有mapred-site.xml.template,就重命名为mapred-site.xml
    <!--mapreduce计算模型运行在yarn平台-->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
  • 启动YARN
$ sbin/yarn-daemon.sh start resourcemanager
$ sbin/yarn-daemon.sh start nodemanager
  • 通过浏览器登录web控制台
    http://master:8088/cluster
    这里写图片描述

    测试

  • 利用官方自带的jar包,进行文件的单词统计,这里是用的测试文件为之前测试HDFS时上传的test.txt
    需要注意最后的目录为存放结果的文件夹,必须是不存在的

$ bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0-cdh5.3.6.jar wordcount /input/test.txt /output/
  • 任务执行时,在web控制台能查看任务执行情况
    这里写图片描述

  • 查看结果

$ bin/hdfs dfs -cat /output/*

这里写图片描述

5.配置日志服务器
  • yarn-site.xml
    <!--启用日志聚合功能-->
    <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
    <!--日志保存时间-->
    <property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>86400</value>
    </property>
  • mapred-site.xml
    <!--进程通信-->
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>master:10020</value>
    </property>
    <!--客户端访问入口-->
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>master:19888</value>
    </property>
  • 重启YARN
$ sbin/yarn-daemon.sh stop nodemanager
$ sbin/yarn-daemon.sh stop resourcemanager
$ sbin/yarn-daemon.sh start resourcemanager
$ sbin/yarn-daemon.sh start nodemanager
  • 启动历史服务器
$ sbin/mr-jobhistory-daemon.sh start historyserver
  • 重新运行任务
    注意,目标文件夹必须不存在,要修改目标文件夹
$ bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0-cdh5.3.6.jar wordcount /input/test.txt /output2/
  • 查看日志
cat logs/mapred-hadoop-historyserver-master.log

这里写图片描述

可以看见刚刚任务运行成功的信息被保存到日志中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值