Hadoop伪分布式搭建

准备工作:

    这一点很重要就相当于lol 前期不发育,后期再秀也没用,所以必须要好好的配置

    设置静态ip 与主机名

    附链接: https://blog.csdn.net/dxyna/article/details/79678277

    安装hadoop 并进行环境配置:

    附环境配置链接:  https://blog.csdn.net/dxyna/article/details/79677595

关于Hadoop

知晓了这些可以让你跟快的掌握Hadoop

1. Hadoop的特点

    a) 低成本

        i. 基于开源软件,运行于通用的硬件平台

    b) 高扩展性

        i. 在可用的计算机集簇间分配数据并完成计算任务,这些集簇可以方便地扩张到数以千计的节点中

    c) 高效性

        i. 在节点之间动态分配计算任务并保证各个节点的动态平衡,处理速度非常快

    d) 高容错性

        i. 自动保存书籍的多个副本并且能够自动将失败的任务重新分配

2. 存储数据

    a) HDFS分布式文件系统

    b) 建立在网络之上的软件系统

    c) 数据存储在不同的主机上

    d) 所有的大数据平台都是分布式的

    e) HDFS就是分布式存储解决方案

3. 处理数据

    a) MapReduce

    b) 一种编程模型

    c) Map(映射)用来分配  Reduce(归约)用来统计

    d) 数据仓库工具Hive,处理结构化SQl查询功能

    e) Pig MapReduce之上高级过程语言

4. 为了更方便的存储数据

    a) HBase (Hadoop Database)

    b) 它是一个适合于非结构化数据存储的数据库 Nosql(not only sql)

    c) 基于列存储,不同的行可有不同的数据列,可以保留数据多个时间版本

5. 协调各个模块共同工作

    a) ZooKeeper

6. 解压的hadoop里面包含着几个重要的目录

    a) sbin:启动或停止Hadoop相关服务的脚本

    b) bin:对Hadoop相关服务(HDFS,YARN)进行操作的脚本

    c) etc:Hadoop的配置文件目录

    d) share:Hadoop的依赖jar包和文档,文档是可以被删掉的,jar包不能被删掉

    e) lib:Hadoop的本地库(对数据进行压缩解压缩功能

配置Hadoop

    首先我要告诉你们,只要修改五个配置文件即可

   一.进入hadoop里面的etc里面的hadoop文件夹中

cd /home/hadoop/opt/hadoop-2.7.5/etc/hadoop
            
vi hadoop-env.sh 

    修改hadoop-env.sh文件   :

           

    将$(JAVA_HOME)改为当前java安装的路径也就是在配置环境时候JAVA_HOME后面指向的路径

   

  二.配置hdfs的namenode的地址 --> core-site.xml


在当前文件目录找到此文件

            

vi core-site.xml
         修改此文件:

             

   在configuration标签里写入:

<configuration>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://zhangzerui:9000</value>
        </property>
</configuration>

fs.defaultFs   -->默认文件的系统指定的hdfs协议

hdfs://    --> 静态地址和端口   例如:192.168.50.99:9000

        --> 但是因为我们已经配置了主机名所以window也能识别我们的主机名

             --> 所以此时写 主机名:9000

 <!--  fs.default.name -这是一个描述集群中NameNode结点的URI(包括协议、主机名称、端口号),集群里面的每一台机器都需要知道NameNode的地址。DataNode结点会先在NameNode上注册,这样它们的数据才可以被使用。独立的客户端程序通过这个URI跟DataNode交互,以取得文件的块列表。-->


接下来继续<-配置hadoop运行时产生数据的存储目录,注意:不是临时目录,它里面放的是很重要的数据->

        <property>
                <name>hadoop.tmp.dir</name>
                <value>/tmp</value>
        </property>

此时value里面的tmp是一个目录,当我们配置好hadoop之后就能在这个tmp里面看到那些数据

       <!—hadoop.tmp.dir 是hadoop文件系统依赖的基础配置,很多路径都依赖它。如果hdfs-site.xml中不配                     置namenode和datanode的存放位置,默认就放在这个路径中-->


                

    三.指定HDFS存储数据的副本数据量 --> hdfs-site.xml

                

    修改此文件

vi  hdfs-site.xml

同样的在configuration标签里面写入:

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

    因为是伪分布式只有一台主机所以值value为1

       <!--dfs.replication -它决定着 系统里面的文件块的数据备份个数。对于一个实际的应用,它 应该被设为3(这个           数字并没有上限,但更多的备份可能并没有作用,而且会占用更多的空间)。少于三个的备份,可能会影响到数据的         可靠性(系统故障时,也许会造成数据丢失)-->


    

  四.指定mapreduce编程模型运行在yarn上面 --> mapred-site.xml.template

    

   疑问点为什么它后面.template  ?

   所以我们需要先将它拷贝一份并将后面的.template去除掉:

<!--mapred.job.tracker -JobTracker的主机(或者IP)和端口。-->

cp mapred-site.xml.template mapred-site.xml

   编辑这个文件:

      	<property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
	</property>
     同样的在 configuration标签里面写入:

    

 五.指定yarn的老大resourcemanager的地址  --> yarn-site.xml

    同样的我们在当前路径找到这个文件并进行编辑,在configuration标签里面写入下面代码

    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>python2</value>
    </property>
    <- 这个指的resourcemanager的地址->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <--这个指的是MapReduce执行shuffle时获取数据的方式>

        



在操作完上列步骤之后那么我的配置就完成了,要注意不能出一点错,不然就得重新配置了

启动并测试Hadoop

一.关闭防火墙

    1.关闭iptables(下面是临时关闭防火墙的代码)

 systemctl stop firewalld

    2.调整selinux状态:

vi /etc/selinux/config

    将SELINUX=enforcing替换SELINUX=disabled


二.格式化

    使用管理员用户对hdfs进行初始化(格式化HDFS)

  首先进入hadoop里面的bin里面:

cd /home/hadoop/opt/hadoop-2.7.5/bin

    接着通过ls 你会看到hafs


 我们接着在命令窗口输入:

hdfs namenode -format

或者

./hdfs namenode -format
初始化完成后进入 hadoop里面的sbin里面

cd /home/hadoop/opt/hadoop-2.7.5/sbin


在命令窗口执行这俩命令

start-dfs.sh
start-yarn.sh

接下来通过jps查看hadoop是否启动:


如果像上面这样启动了五个那么说明我们的伪分布式已经搭建好了

接下来我们在window里面打开浏览器输入静态ip和端口,就进入了hadoop里面

例如:http://192.168.50.128:50070 

hdfs dfsadmin -report  将此时启动hadoop运行状态  

测试

hadoop fs -mkdir 文件夹           创建一个文件夹在hadoop里面
hadoop fs -ls     /            查看当前hadoop里面的文件

hadoop fs -put linux文件 hadoop位置      将linux里面的文件上传到hadoop里面

hadoop fs -get hadoop文件 linux位置     将hadoop里面的文件下载到linux里面

小例子:    将hadoop里面的文件里面的单词进行统计

           因为hadoop是使用java编程的所以也有一些java的简单算法

首先创建一个文件夹在hadoop里面

hadoop fs -mkdir /hello 

接着里面创建一个文件hello.txt

并且在上面写入一些单词,比如:


接下来我们将它上传到hadoop里面

hadoop fs -put hello.txt /hello

这样我们就可以在网页里看到hello文件夹里面有一个文件hello.txt


接着我们在shell里面进入hadoop里面的share文件夹


我们再进入里面的hadoop里面的mapreduce 会看到很多包,这些就是我们hadoop里面的java程序


我们将 hadoop-mapreduce-examples-2.7.5.jar 复制上

接着再输入:

hadoop jar hadoop-mapreduce-examples-2.7.5.jar wordcount /hello/hello.txt /hello/count

hadoop             --> hadoop的一个命令

jar                      -->hadoop里面的java命令使用

wordcount         -->方法

/hello/hello.txt -->此时hadoop里面的文件,也就是我们要计算的文件

/hello/count.txt-->计算后将要保存的内容的文件

这时候会在shell里面显示执行过程,我们接着打开网页hadoop会看的hello文件夹里面多了一个count文件夹


进入会看到一个part-r-00000的文件,这个文件就是我们计算后的内容

我们可以在shell里面直接查看(俩种方法):

hadoop fs -cat /hello/count/part-r-00000
hadoop fs -text /hello/count/part-r-00000


当然我们也可以将这个文件下载下来

hadoop fs -get /hello/count ~/
这样我就会在主体目录看到这个count文件



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值