欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

学习笔记_Hadoop伪分布式搭建

程序员文章站 2022-07-14 15:18:17
...

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

环境准备

1.网卡IP设置为静态(NAT模式)

  • 修改网卡配置
# vi /etc/sysconfig/network-scripts/ifcfg-eth0

学习笔记_Hadoop伪分布式搭建

2.重启网络服务

# service network restart

3.修改主机名

这里我使用主机名为master

# vi /etc/sysconfig/network

学习笔记_Hadoop伪分布式搭建

4.关闭防火墙

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

学习笔记_Hadoop伪分布式搭建

5.添加主机名映射

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

学习笔记_Hadoop伪分布式搭建

  • Windows本地添加主机名映射
    路径:C:\Windows\System32\drivers\etc\hosts
    学习笔记_Hadoop伪分布式搭建

6.创建普通用户

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

# useradd hadoop
# echo 123456 | passwd --stdin hadoop

7.安装JDK

  • 查看自带jdk
# rpm -qa | grep java

学习笔记_Hadoop伪分布式搭建

  • 卸载自带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

学习笔记_Hadoop伪分布式搭建

  • 在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

学习笔记_Hadoop伪分布式搭建

学习笔记_Hadoop伪分布式搭建

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

学习笔记_Hadoop伪分布式搭建

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
    学习笔记_Hadoop伪分布式搭建

    测试

  • 利用官方自带的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控制台能查看任务执行情况
    学习笔记_Hadoop伪分布式搭建

  • 查看结果

$ bin/hdfs dfs -cat /output/*

学习笔记_Hadoop伪分布式搭建

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

学习笔记_Hadoop伪分布式搭建

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