您好,欢迎光临本网站![请登录][注册会员]  
文件名称: 大数据.pdf
  所属分类: Hadoop
  开发工具:
  文件大小: 698kb
  下载次数: 0
  上传时间: 2019-08-17
  提 供 者: long****
 详细说明:大数据理论知识讲解,及Hadoop的配置,4V属性讲解,Nosql2、搭建 Hadoop集群环境 21安装DK 见附件:《DK环境搭建.md》 22搭建z0 keeper集群 见附件:《乙K环境搭建.md》 23搭建 hadoop集群 见巛 hadoop集群搭建md》 六、 Hadoop-HDFS 1、简介 Hadoop Distributed File Systen Hadoop的分布式文件系统,是GFs( Google File System)的克隆 分布式 分别部署,将一个系统划分为多个子系统,分别部署到不同的服务器上,共同作用完成某个 特定业务 集群 将一个系统直接部署到多个服务器上,做相同的工作 文件系统 存储、管理大数据文件 2、特性 优势 1.构建在廉价的机器上(普通的PC机) 2.适用于大数据处理 3.高容错性 劣势 1.不适合低延迟的数据访问(所有的普通用户访问的网站都不适合使用HDFS) 2.不适合小文件的存储 3、架构 分布式文件系统HDFS HDFS Architecture HDFS架构 Metadata(Name, replica Metadata.ops/Namenode /home/foo/data. 3 Block ops Read Datanodes Datanodes Replicate Blocks Rack Write Rack 2 1. Block 块,HDFS的最小读写单位。 HDFS将文件分割成多个Bock,每个 Block作为一个独立的存储单元。 Block大小默认为64M或者128M 在HDFS中,小于一个Bock的文件不会占用一个Bock空间,之占用原始的真实空间 2. NameNode 元数据节点,管理文件系统的命名空间,将所有的文件和文件夹的元数据保存在一个文件系统树 3. Datanod 数据节点,是HDFS中真正存储数据的位置 由 Namenode下达指令, DataNode执行指令 由 Block组成 She命令 4-1准备数据文件 i data Python是弱类型,强格式语言 #以w模式打开a.txt f= apen( data. txt,w") #写入20000个He1 lo Hadoop HDFS0-19999 for i in range(0, 20000) f write( Hello Hadoop HDFS"+ str(i)+n") lose python data. py 42常用She命令 1.语法格式 hadoop fs-命令名[参数1,参数2, #在计算机程序语言的文档中,[]表示可有可无 2.|S #1ist列出目录中的内容 # hadoop fs-ls目录路径,从根目录/开始的绝对路径 hadoop fs -ls/ #列出目录及子日录中的内容 hadoop fs -Is -R/ 3. mkdir make directory hadoop fs-mkdir/ xzzb/kuangda hadoop fs -mkdir/ xzzb/liuzhong hadoop fs -mkdir/sanguo/zhangfei # mkdir命令默认创建最后一层目录,前提是前面的目录必须存在,否则报错 #此时可以为 mkdir添加-p参数,级联创建目录及子目录 hadoop fs -mkdir -p/sanguo/ zhangfei 4. mv #mV移动或者重命名 hadoop fs-m/Xzzb/ guanyu/ sanguo/#移动 hadoop fs-mV/ sanguo/ guanyu/ sanguo/ yunchang#亘命名 5. rm #可以直接删除文件,如果是文件夹,添加-r参数 hadoop fs -rm /a.txt hadoop fs-rm-r/ sanguo/ zhangfei#/ sanguo/ zhangfei是个文件夹 过时方法 hadoop fs -rmr/xzzb #上传文件 # hadoop fs-put文件路径要上传到的文件夹 hadoop fs -put / root/data. txt abc 7. get #下载文件 hadoop fs -get /abc/data. txt w/down.txt 8. cat/ tail hadoop fs -cat /abc/ data.txt hadoop fs -tail /abc/ data.txt 5、 Python API( Java APl) 5-1 python常规语法 #定义变量 变量名=值#数字,布尔 False true #定义方法 def方法名(方法参数,方法参数): #方法体 #打印输出 print(变量,表达式) #循环从0到99 sum =0 ge(1,101) sum sum 5-2 Python-HDFS apt update apt install python3-pip pip3 install hdfs vi pyhdfs py from hdfs import client #创建客户端对象 clientclient("http://hadoop1:50070,root="/,session=false) # hadoop list方 #f hadoop fs-l5/ def listo arr=client list(/) for item in arr: print(item) def put (: client. upload( /test/",""/data. txt") listO puto client. makedirs(") client. rename( old_name","new_name") client. delete(") client up load( hdfs-path"," file-path") client down load( hdfs-path","linux-file-path") python3文件名 七、 Hadoop- MapReduce 1、简介 MapReduce是一种编程模型,用于大数据集(大于1TB)的并行计算。从函数式编程思想借鉴过来的 两个概念(Map/ Reduce),他方便了不会进行分布式并行编程的程序员编写运行在分布式系统上 的代码 Map 映射,用来把数据映射成多组键值对,在此步骤中可以对数据进行清洗和过滤 Reduce 规约,将Map的映射结果根据某种规则进行合并。将多组键值对合并成一组,并表现为最终 所需结果的格式 数据集 hello world Hel。.1 pReduce, 1 Hello MapReduce Hello, 1> Hello EveryOne Hello hellowbs Red将key值相同的进行合并,并且将其vaue 值进行累加 EveryOne, 1 2、特点 1.适用于海量数据的离线处理 .海量数据:大小超过1T 2.离线处理:不适合进行数据的实时处理 2.易于编程 对于程序员而言,只需要实现一些简单的接口(Map/ Reduce),就可以完成一个分布式的 程序 而目这个分布式程序可以部署在廉价的PC机上。 3.良好的扩展性 当计算机资源不能得到满足时,可以通过简单的增加机器来扩展它的远算能力 4.高容错性 MapReduce设计的初衷就是能够让一个分布式程序运行在廉价的机器上 这就要求他要由很高的容错性 如果集群中的某台设备宕机, MapReduce会将其正在执行的和将要执行的任务转移到另 一个设备上进行,不至于让整个任务失败。而且整个转移过程不需要人工干预 3、不适合的场景 1.实时计算 如果说需要实现商品推荐的业务场景 可以事先对数据迸行计算和处理,存储在缓存中 2.流式计算 流式计算指的是计算的数据是动态的。 由于 MapReduce的输入数据集是静态的,不能进行动态变化。 3. DAG DAG:有向无环图 如果多个应用程序存在依赖关系,即某个应用程序的输出是另一个应用程序的输入 这种情形下, MapReduce不是不能处理。将每个应用程序的输出保存在文件系统中,由 另一个应用程序读取。带来的副作用是多次的磁盘0操作。极其影响效率 4、编程实现 MapReduce 4-1 Task1 编程实现单词统计,统计一个文件中每个单词出现的次数 #准各文件 v1 init. py f= open( task1. txt","w") for i in range(0, 10000): ifi%2==0 f write( Hello XZZB \ n") ifi%2!=0: f write( He l lo MapReduce n") f close o #将文件上传到hdfs中 hadoop fs -put tastl. txt #编写map.py import sys 按行遍历标准输入中的内容,即task1.txt中的内容 for line in sys. stdi # strip去除字符串前后的空格 plit按照空格分割 arr= line strip. split("") #对于上面得到的数组中的每一个元素,即每个单词 for item in arr: #将其输出成单词,1的格式 print( iter str(l)) #编写 reduce.py t vi reduce ord none #对应出现的次数 ant=o for line in sys. stdin arr tripo. split(, ord= arr[o] count arr[1] #第一条数据 if cur word None rd word #如果当前单词不等于上一次出现的单词 #意味着上一个单词已经统计完毕 if cu rd #输出上一个单词出现的次数 print(cur__word str(cur__count)) 记录新的单词 cur word word #由于卜一步要进行累加操作,所以此处的值为0 cur__count cur_count int(count) print(cur_word +," str(cur_count)) 测试: #非大数据情况下的测试 cat taskl txt python map. py I sort -k 1 python reduce py hadoop 集群运行 hadoop jar /root/hadoop/share/ hadoop/ tools/lib/ hadoop-streaming-276. jar -input /task1. txt -output /output -mapper"python 3 map. py"\ reducer " python reduce py"\ file /root/mr/task1/map. py -file /root/mr/taskl/reduce py 4-2 Task2 1.需求 初始化30w条数据,分别是stu0-stu99999学生的语文数学英语成绩,初始化为如下格式 stu0-语文/80 stu1-语文/80 stu99999-英语/3 使用map- reduce对数据进行清洗和规约统计,得到如下结果 stu0语文:80数学:90英语:100平均:90 stu99999语文:80数学:90英语:100平均:90 2.初始化阶段 #循环上面的数组 #循环0-100000 # random. ra dint(0,101)#stu0stu1000所有1000的倍数的学生的成绩统一为-1 import random f= open( task2. txt",w") bject=["语文","数学","英语"] in range(o, I for j in range(0, 100000) re= random. randint(o, 101) Fj%1000==0 score f write( sti subjects] str(score)+n")
(系统自动生成,下载前可以参看下载内容)

下载文件列表

相关说明

  • 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
  • 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度
  • 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 相关搜索: 大数据.pdf
 输入关键字,在本站1000多万海量源码库中尽情搜索: