Hadoop学习笔记(一):初识Hadoop与配置

一、Hadoop是什么?

    Hadoop是一个由Apache基金会所开发的分布式系统基础架构。

    用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

    Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。

    Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。

二、Hadoop有什么优点?

  1. 高可靠性:Hadoop按位存储和处理数据的能力值得人们信赖。

  2. 高扩展性:Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。

  3. 高效性:Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。

  4. 高容错性:Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。

  5. 低成本:与一体机、商用数据仓库以及QlikView、Yonghong Z-Suite等数据集市相比,hadoop是开源的,项目的软件成本因此会大大降低。

三、Hadoop适用于那些项目?

    随着 Hadoop 应用的不断拓展,使很多人陷入了对它的盲目崇拜中,认为它能解决一切问题。虽然Hadoop是一个伟大的分布式大型数据计算的框架,但Hadoop不是万能的。比如在下面这几种场景就不适合使用Hadoop:

    1、低延迟的数据访问

Hadoop并不适用于需要实时查询和低延迟的数据访问。数据库通过索引记录可以降低延迟和快速响应,这一点单纯的用Hadoop是没有办法代替的。但是如果你真的想要取代一个实时数据库,可以尝试一下HBase来实现数据库实时读写。

    2、结构化数据

Hadoop不适用于结构化数据,却非常适用于半结构化和非结构化数据。Hadoop和RDBMS不同,一般采用分布式存储,因此在查询处理的时候将会面临延迟问题。

    3、数据量并不大的时候

Hadoop一般适用于多大的数据量呢?答案是:TB 或者PB。当你的数据只有几十GB时,使用Hadoop是没有任何好处的。按照企业的需求有选择性的的使用Hadoop,不要盲目追随潮流。Hadoop很强大。但企业在使用Hadoop或者大数据之前,首先要明确自己的目标,再确定是否选对了工具。

    4、大量的小文件

小文件指的是那些size比HDFS的block size(默认64M)小得多的文件。如果在HDFS中存储大量的小文件,每一个个文件对应一个block,那么就将要消耗namenode大量的内存来保存这些block的信息。如果小文件规模再大一些,那么将会超出现阶段计算机硬件所能满足的极限。

    5、太多的写入和文件更新

HDFS是采用的一些多读方式。当有太多文件更新需求,Hadoop没有办法支持。

    6、MapReduce可能不是最好的选择

MapReduce是一个简单的并行编程模型。是大数据并行计算的利器,但很多的计算任务、工作及算法从本质上来说就是不适合使用MapReduce框架的

四、准备Linux环境

这里选用centos7。

五、Hadoop下载

官网下载,稳定版即可。

六、Hadoop的准备工作

    1、设置静态ip地址:

1、$ ip addr   如果无法获取ip时记录下网卡名称。
2、$ cd /etc/sysconfig/network-scripts/ 回车确定,ls查看文件
3、$ vim ifcfg-网卡名称  回车确定

4、将最后一项“ONBOOT=no”改为“ONBOOT=yes” (a键进入编辑模式,完成后“ESC”键退出编辑模式,输入wq保存退出)

5、$ service network restart   重启服务  也可输入  $ systemctl restart netwrok  
6、$ ip addr 查看是否可以自动获取IP地址。
7、$ vim /etc/sysconfig/network-scripts/ifcfg-网卡名称
修改如下:
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.0.20
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
完成后保存退出。
8、$ service network restart 启动服务

    2、修改主机名

1、$ Vim  /etc/sysconfig/network 
修改如下
NETWORKING=yes
HOSTNAME=aaa01(主机名)
保存退出
2、$ vim  /etc/hosts
修改主机名和ip的映设关系,修改如下:
192.168.0.103  aaa01
保存退出

    3、关闭防火墙

$ sudo systemctl stop firewalld.servicechkconfig iptables off   关闭防火墙
$ sudo systemctl disable firewalld.service  关闭开机启动

 

    七、Hadoop配置

(懒得一个个写代码块了。。。。见谅。)

    1、core-site.xml

<configuration>

指定HDFS老大(nameNode地址)

<property>

<name>fs.defaultFS</name>

<value>hdfs://aaa01:9000</value>(或者IP地址:端口)

</property>

指定Hadoop运行时产生文件的存放地址

<property>

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

<value>/opt/hadoop-2.7.3/tmp </value>

</property>

</configuration>

 

    2、hdfs-site.xml

<configuration>

配置分布式存放数量

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

</configuration>

 

    3、mapred-site.xml(mv mapred-site.xml.template mapred-site.xml 修改文件)

<configuration>

告诉hadoop以后RM运行在yarn上

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

</configuration>

 

    4、yarn-site.Xml

<configuration>

Nodemanager获取数据的方式是shuffle的方式

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

指定yarn的老大(resourcemanager)的地址

<name>yarn.resourcemanager.hostname</name>

<value>localhost</value>

</property>

</configuration>

 

    5、Hadoop-env.sh

添加jiava_home

    八 、运行Hadoop(伪分布式)

$ ./start-all-sh   启动全部服务 脚本在sbin目录下

    九、SSH免登陆

这时你会发现需要输入好几次ssh的密码,其实是可以实现免密登录的只需要几步操作。

1、进入 ~ 目录

2、$ ssh-keygen -t rsa 设置钥匙 RSA 给定加密算法 运行后生成两个文件  公钥跟私钥。
3、$ cp id_rsa.pub authorized_keys  或者 ssh-copy-id fengyang01   copy公钥  一直回车
4、$ ssh-copy-id  192.168.0.106   copy公钥给192.168.0.106  一直回车 实现免登陆

 

    这时再次启动就不在需要输入ssh密码了。另外这时本人第一次写技术博客。。。。如果有不对的地方欢迎指出,毕竟写博客也就为了学习交流,如有不懂的也可留言,看到的话会回的。

 

 

 

 

转载于:https://my.oschina.net/u/3181649/blog/830712

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值