大数据学习(一)-Hadoop安装及配置

在前一章已经学习了Hadoop的基本结构,本章内容包括Hadoop的安装以及Hello World。

安装

博主电脑环境是Ubuntu 16.04 LTS

下载

首先,从Hadoop官网下载https://hadoop.apache.org/releases.html

然后使用tar -vxzf xxx.tar.gz 到目标软件目录

配置及使用

Hadoop根据不同使用情况提供了三种运行模式

  1. 单机模式(Local (Standalone) Mode),这种模式无需配置,这种方式,Hadoop被认为是一个单独的Java进程
  2. 伪分布式(Pseudo-Distributed Mode),这种模式的Hadoop看作只有一个节点的集群,这个节点既是Master,也是Slave
  3. 完全分布式(Fully-Distributed Mode),这种则是正常生产集群下使用模式

博主主要以第二种,即伪分布式方式来进行安装及使用。

配置
  1. Hadoop是Java语言实现,所以需要有Java环境,这里不细说了,需要在etc/hadoop/hadoop-env 中加入export JAVA_HOME=/usr/java/latest 声明JAVA_HOME位置
  2. etc/hadoop/core-site.xml:中加入:
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>
  1. etc/hadoop/hdfs-site.xml:中加入
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>
  1. 检测本机是否装有ssh,使用ssh localhost 试下,记得电脑名字得为localhost,博主属于爱折腾类型,把名字改了(唔脸)
    ssh localhost
    如果没有ssh,则需要使用sudo apt-get install ssh
    接着使用ssh来生成密钥:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
  1. 初始化namenode,即格式化文件系统HDFS
    bin/hdfs namenode -format
  2. 接着启动应用,博主选择启动所有相关进程:./start-all.sh

当然过程也不是一番风顺的,这里博主分享几个在安装时候的坑,以免大家继续踩。

  1. 主机名字问题,博主曾经把名字改为了mosquito,而Hadoop回去启动localhost,所以会报错,这里解决方法需要在
    /etc/hosts/etc/hostname中将名字改回来
  2. 关于ssh验证问题,楼主是按照上面三步生成似钥以及公钥,但是进去时候报了认证失败的错误:
    localhost: Permission denied (publickey,password).
    后来发现还需要运行ssh-add命令,将密钥加入到agent节点
  3. 还有个问题,有不少人用Idea 来做编辑器,并且好多盗版,激活Idea时候,可能会更改0.0.0.0的映射地址,就会出现以下问题:
    Stopping namenodes on [localhost]
    Stopping datanodes
    Stopping secondary namenodes [account.jetbrains.com]
    Stopping nodemanagers
    Stopping resourcemanager
    此时,可以注释host中的account.jetbrains.com,或者在hdfs-site.xml添加
        <property>
                <name>dfs.secondary.http.address</name>
                <value>127.0.0.1:50090</value>
        </property>

因为不写的话默认是0.0.0.0:50090,改为127.0.0.1就可以

  1. 最后访问http://localhost:50070还是不行,后来查资料发现
    网址改为了http://localhost:9870
    具体可以看https://issues.apache.org/jira/browse/HDFS-9427

最终界面图:
在这里插入图片描述

MapReduce

MapReduce计算模型

MapReduce的载体是什么,在Hadoop中,用于执行MapReduce任务的有两个角色,一个是JobTracker,另一个是TaskTracker,JobTracker是用于管理和调度工作的,TaskTracker是用于执行工作的,一个Hadoop集群只有一个JobTracker。

优化

MapReduce计算模型的优化涉及了方方面面内容,但是主要金钟两个方面,一个是计算性能的优化,另一个是IO操作方面优化

  1. 任务调度
  2. 数据预处理与InpuSplit的大小,MapReduce擅长处理少量的大数据,而在处理大量的小数据时候,MapReduce的性能会逊色很多
  3. Map和Reduce任务的数量
  4. Combine函数,Combine函数是用于本地合并数据的函数,在有些情况下,Map函数产生的中间数据是有很多重复的,若将所有这些记录传递给Reduce是很耗时的,所以MapReduce框架运行用户写的combine函数用于本地合并,这会大量减少网络IO操作
  5. 压缩,对最终结果进行压缩
  6. 自定义comparator,数据比较方面

参考资料:
7. http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html#Pseudo-Distributed_Operation
8.
9. https://issues.apache.org/jira/browse/HDFS-9427
10. https://www.codetd.com/article/1560685

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值