hadoop学习(一)

来源:互联网 发布:如何编写人工智能系统 编辑:程序博客网 时间:2024/06/07 02:07
hadoop能解决的问题:
      海量数据需要及时分析和处理
      海量数据需要深入分析和挖掘
      海量数据需要长期保存
    存在的问题:
      磁盘io成为一种瓶颈,而非cpu资源
      网络带宽是一种稀缺资源
      硬件故障成为影响稳定性的一大因素
Hbase:nosql数据库,key-value存储,最大化利用内存
hdfs:hadoop分布式文件系统,最大化利用磁盘
    设计原则:
        文件一块方式存储
        每个块带下远比多数文件系统来的大
        通过副本机制提高可靠度和读取吞吐量
        每个区块至少分到三台datenode上
        单一的master(namenode)来协调存储元数据
        客户端对文件没有缓存机制

mapReduce:变成模型主要用来做数据的分析,最大化利用cpu



hadoop适合大数据的分布式存储与计算平台(分布式、存储、计算),小规模下面最好不要用,体现不出hadoop的优势

hdfs:hadoop distributed file system分布式文件系统
mapReduce:并行计算框架

hdfs的架构:
    主从结构:
        主节点,只有一个:namenode
        从节点,有很多个:datanodes
        namenode负责:主要是维护和管理
            接受用户操作请求
            维护文件系统的目录结构    
            管理文件与block之间的关系,block与datanode之间关系
        datanode负责:主要是存储文件并且分布
            存储文件
            文件被分成block存储到磁盘上
            为保证数据安全,文件会有多个副本
mapReduce结构:
    主从结构:
        主节点,只有一个:jobTracker  
        从节点,有很多个:taskTracker
    jobTracker负责:(主要是任务接受和分发)
        接收客户端提交的计算任务
        把计算任务分给taskTracker执行
        监控taskTracker的执行情况
    taskTracker负责:(任务计算执行)
        执行jobTracker分配的计算任务

hadoop特点;(前三个分布式、后一个副本)
    扩容能力(scalable):能可靠地(reliably)存储和处理千兆(pb)自己数据
    成本低(economical):可以通过普通机器组成的服务器来分发以及处理数据,这些服务器总计可达千个节点
    高效率(efficient):通过分发数据,hadoop可以在数据所在的节点上并行地(parallel)处理他们,这使得处理速度非常的快
    可靠性(reliable):hadoop能自动的维护数据的多分副本,并且在任务失败后能自动地重新部署(redeploy)计算任务

Hadoop部署方式
    伪分布、集群

伪分布模式安装步骤
    关闭防火墙、修改ip、修改hostname、设置ssh自动登陆、安装jdk、安装hadoop
    宿主机windows与客户及linux网络链接方式:
        host-only:宿主机与客户及单独组网, 意味着客户机与宿主机所在的局域网中网段的计算机不能通讯。好处:隔离网络。坏处:虚拟机与其他服务器之间不能通讯
        bridge:客户机与宿主机在同一个局域网中,意味着这客户机与与宿主机所在的局域网中网段的计算机可以相互通信。好处:可以互相访问。坏处:不安全
    hadoop的伪分布安装
    1)设置静态ip、修改主机名、把hostname和ip绑定
    2)关闭防火墙
        (1.1)在linux的终端下,执行setup,弹出窗口中选择Firewall Configuration,
                使用空格操作去掉Enuabled前面的*号,一步步退出。
        (1.2)验证防火墙是否关闭,执行service iptables status
        (1.3)关闭防火墙自动启动功能,执行命令 chkconfig --list|grep iptables
                    如果显示有on,意味着会重启后启动防火墙
                    
                    使用命令chkconfig iptables off关闭防火墙的自动运行
                    
                再次执行chkconfig --list|grep iptables 验证
    3、ssh(secure shell)免密码登录
        执行命令 ss-keygen -t rsa 长生密钥,位于~/.ssh中
        执行cp id_rsa.pub authorized_key ssh在登陆的时候会读取authorized_key这个文件
        ssh localhost 登陆,exit是退出终端的
       
       jdk的安装
    4、hadoop的安装
        ** tar -zvxf hadoop-1.1.2.tar.gz 解压缩
        ** move hadoop-1.1.2 hadoop 重命名
        ** more /etc/profile
        ** export HADOOP_HOME=/usr/local/hadoop
        ** 修改PATH=.:$HADOOP_HOME/bin:$JAVA_HOME...
        ** source /etc/profile 立即生效
        ** 修改hadoop配置文件,位于$HADOOP_HOME/conf目录下
            修改四个配置文件,分别是hadoop-env.sh core-site.xml hdfs-site.xml mapred-site.xml
            具体修改内容见ppt
        ** 对hadoop进行格式化
            就相当于买硬盘后对其进行格式化,执行命令 hadoop namenode -format
           启动start-all.sh
           jps查看jdk进程,发现5个进程namenode、datenode。。。。
        ** 浏览器中访问hadoop
            hadoop:50070 判断hdfs是否正常运行
            hadoop :50030 判断mapreduce是否存活
        ** namenode进程没有启动成功?
            原因:没有格式化、配置文件只拷贝不修改、hostname与ip没有绑定、ssh的免密码登陆没有配置成功
        ** 多次格式化hadoop也是错误的?
            方法:删除/usr/local/hadoop/temp文件夹,重新格式化
    

hdfs
    分布式文件系统与hdfs
    hdfs体系结构与基本概念
    hdfs的shell操作
    java接口及常用api
    rpc调用
    hdfs的分布式存储架构的源码分析
        数据量越来越多,在一个操作系统管辖的范围存不下了,那么就分配到更多的操作系统管理的磁盘中,但是不方便
    维护,因此迫切需要一种系统来管理多台机器的文件,这就是分布式文件管理系统。是一种允许文件通过网路在多台主机
    上分享的文件系统,可让多台机器上的多用户分享文件和存储空间。通透性:让实际上市通过网络来访问文件的动作,由
    程序与用户看来就像是在访问本地磁盘一般。容错性:即使系统中有某些节点脱机,整体来说系统任然可以持续运作而不会有
    数据丢失,分布式文件管理系统很多,hdfs只是一种,适用于一次写入多次查询的情况,不支持并写情况,小文件不合适
    
    对hsfs的操作方式:hadoop fs xxx
    hadoop fs -ls /   或者  hadoop fs -lsr /(r 递归查看)
    hadoop fs -mkdir /d1 在hdfs上创建文件夹
    把linux文件上传至hdfs的d1目录下hadoop fs -put /root/install.log /d1
    把linux文件上传至hdfs的d2文件中(复制)hadoop fs -put /root/install.log /d2
    hadoop fs -ls /d1 查看
    把hdfs上的文件下载到当前目录 hadoop fs -get /d1/install.log  .
    在hdfs上查看某个文件 hadoop fs -text /d1/**
    在hdfs上删除文件 hadoop fs -rm[-rmr] /d1/**
    hadoop fs -help ls fs的帮助文档

NameNode体系结构
    是整个文件系统的管理节点,他维护着系统的文件目录树,
    文件/目录的元信息和每个文件对应的数据快列表,接受用户的操作请求
    
     








0 0
原创粉丝点击