• Linnux中搭建HADOOP伪分布式集群环境


    步骤如下:

     Linux环境基础配置可参照我上一篇博客http://www.cnblogs.com/whcwkw1314/p/8921352.html

    一、准备工作

    1.目录规划及软件安装

    创建目录:在根目录下的opt文件夹中创建4个文件夹 

    datas放测试数据  softwares放软件安装压缩包  modules软件安装目录  tools开发IDE以及工具  

    查看是否创建成功

    上传软件:

    这里我用了linux自带的上传下载软件

    $ sudo yum install -y lrzsz
     其中
       rz:  上传文件
       sz:  表示下载

    在softwares文件夹下上传hadoop2.x版本的压缩包  jdk在上篇博客中已经安装完毕

    给该压缩包添加执行权限

    解压到指定目录modules

    解压完毕后查看hadoop-2.7.3文件夹属性

    更改所属用户及用户组为当前用户, 使之后的操作更加安全 ,root用户下的误操作可能会造成很大影响

     

    配置*-env.sh环境变量文件 hadoop-env.sh  yarn-env.sh  mapred-env.sh 

    进入解压后的hadoop-2.7.3中的/etc/hadoop  可以看到这三个文件以及后面要配置的一些配置文件

    这里我用nodepad++连接虚拟机进行更改配置操作 直观方便

    首先更改hadoop-env.sh

    将JAVA_HOME路径更改为之前安装JDK的路径

    export JAVA_HOME=/opt/modules/jdk1.8.0_91

    然后更改完yarn-env.sh  mapred-env.sh 这2文件

    赋予这三个文件执行权限

    二、HDFS安装

     首先配置HDFS环境

    1.创建临时数据存储目录(在hadoop-2.7.3当前目录下创建data文件夹内含tmpData文件夹)  ./表示在当前目录下

    2.配置core-site.xml文件

    <configuration>
    	<!--指定文件系统为HDFS及NameNode主节点运行的机器端口和ip地址-->
    	<property>
    		<name>fs.defaultFS</name>
    		<value>hdfs://bigdata-hpsk01.huadian.com:8020</value>
    	</property>
    	<!--本地临时存储目录-->
    	<property>
    		<name>hadoop.tmp.dir</name>
    		<value>/opt/cdh5.7.6/hadoop-2.6.0-cdh5.7.6/data/tmpData</value>
    	</property>
    </configuration>

     3.配置hdfs-site.xml

    <configuration>
    	<property>
    		<name>dfs.replication</name>
    		<value>1</value>
    	</property>
    </configuration>

    4.配置slaves文件:指定DataNode运行在哪些机器上

    此文件中一行表示一个主机名称,会在此主机上运行DataNode

    下一步启动服务

    对于HDFS文件系统来说 第一次要格式化系统

    可以在下面的目录中看到 namenode -format命令是用来格式化HDFS文件系统的

     若初始化没有报错即成功。

     

    启动HDFS服务  主节点和从节点

    然后验证是否成功

    第一种方式:查看进程  命令行输入jps  出现NameNode DataNode即成功

    第二种方式:通过web ui界面查看  http://bigdata-hpsk01.huadian.com:50070   这里通过主机名访问确保在本地hosts文件中配置了映射。(我在上篇博客中已经配置好了映射)

     出现如下界面即成功

    测试HDFS

    1.查看帮助文档
    $ bin/hdfs dfs

    可以看到对HDFS操作的命令

    2.创建目录
    $ bin/hdfs dfs -mkdir -p /datas/tmp

    3.上传文件
    $ bin/hdfs dfs -put etc/hadoop/core-site.xml /datas/tmp

    4.列举目录文件
    $ bin/hdfs dfs -ls /datas/tmp

    5. 查看文件的内容
    $ bin/hdfs dfs -text /datas/tmp/core-site.xml

     最后我们去webui界面看看HDFS文件系统里面是否有了这些内容

     datas文件夹里面有tmp文件夹

    然后我们上传了core-site.xml文件

    测试成功~

    三、YARN安装

    配置YARN集群
    对于分布式资源管理和任务调度框架来说:
    在YARN上面运行多种应用的程序
    - MapReduce
    并行数据处理框架
    - Spark
    基于内存分布式计算框架
    - Storm/Flink
    实时流式计算框架
    - Tez
    分析数据,速度MapReduce快
    主节点:
    ResourceManager
    从节点:
    NodeManagers

    配置yarn-site.xml文件

    <configuration>
    	<property>
    		<name>yarn.resourcemanager.hostname</name>
    		<value>bigdata-hpsk01.huadian.com</value>
    	</property>
    	<property>
    		<name>yarn.nodemanager.aux-services</name>
    		<value>mapreduce_shuffle</value>
    	</property>
    </configuration>

    配置slaves文件
    指定NodeManager运行的主机名称,由于NodeManager与DataNode同属一台机器,前面已经配置完成。

    启动服务

    RM 主节点:
    $ sbin/yarn-daemon.sh start resourcemanager
    NM 从节点:
    $ sbin/yarn-daemon.sh start nodemanager

    输入jps可以看到已经启动成功了,也可查看所有与java相关的进程 ps -ef|grep java 

    最后通过web ui 界面来验证  出现如下界面OK

    四、运行MapReduce

    MapReduce:  并行计算框架(Hadoop 2.x)
    思想:分而治之
    核心:
    Map: 分
        并行处理数据,将数据分割,一部分一部分的处理
    Reduce: 合
        将Map处理的数据结果进行合并,包含一些业务逻辑在里面


    大数据计算框架中经典案例(下面我们来运行这个案例):
    词频统计(WordCount)
    统计某个文件中单词的出现次数


    1.配置MapReduce相关属性:
    进入hadoop-2.7.3下的etc/hadoop  拷贝该目录下的MapReduce模板配置文件
    $ cd etc/hadoop/
    $ cp mapred-site.xml.template mapred-site.xml

    然后修改mapred-site.xml文件,指定MapReduce的程序运行在YARN上

    2.提交MapReduce程序,到YARN上运行
    - 准备测试数据    在cd到预先创建的/opt/datas文件夹(用来存放测试数据)中创建一个测试数据文件wc.input

    编辑数据文件并保存:

    在HDFS文件系统中递归创建/user/huadian/mapreduce/wordcount/input文件夹    bin/hdfs dfs命令要在hadoop-2.7.3目录下操作

    $ bin/hdfs dfs -mkdir -p /user/huadian/mapreduce/wordcount/input

    把我们的测试数据文件放到input目录下

    $ bin/hdfs dfs -put /opt/datas/wc.input /user/huadian/mapreduce/wordcount/input

     

    3.提交运行
    这里我们用官方自带MapReduce程序JAR包  路径如下:
    ${HADOOP_HOME}/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar

    $ bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-
    examples-2.7.3.jar wordcountUsage: wordcount <in> [<in>...] <out>
    参数说明:
    <in> -> 表示的MapReduce程序要处理的数据所在的位置
    <out> -> 表示的MapReduc处理的数据结果存储的位置,此路径不能存在。

    命令如下:

    $ bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /user/huadian/mapreduce/wordcount/input /user/huadian/mapreduce/wordcount/output678

    查看结果

    $ bin/hdfs dfs -text /user/huadian/mapreduce/wordcount/output67/part*

    界面上看到success即成功

     最后启动一下日志服务

    配置mapred-site.xml:

    <!-- 配置历史服务器 -->
    <property>
    <name>mapreduce.jobhistory.address</name>
    <value>bigdata-hpsk01.huadian.com:10020</value>
    </property>
    <property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>bigdata-hpsk01.huadian.com:19888</value>
    </property>

    启动服务:

    $ sbin/mr-jobhistory-daemon.sh start historyserver

    日志聚集功能:
    当MapReduce程序在YARN上运行完成以后,将产生的日志文件上传到HDFS的目录中,以便后续监控查看
    配置yarn-site.xml:

    <!-- 配置YARN日志聚集功能 -->
    <property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
    </property>
    <property>
    <name>yarn.log-aggregation.retain-seconds</name>
    <value>604800</value>
    </property>

    重启YARN和JobHistoryServer服务
    为了重新读取配置属性

    OK~

  • 相关阅读:
    return和yield的区别
    基本装饰器
    javascript实例:两种方式实现tab栏选项卡
    javascript实例:路由的跳转
    javascript实例:点亮灯泡
    标签页QTabWidget
    主窗口QMainWindow和启动画面
    各种对话框
    列表视图QlistView
    拆分窗口QSplitter
  • 原文地址:https://www.cnblogs.com/whcwkw1314/p/8933809.html
Copyright © 2020-2023  润新知