c语言sscanf函数的用法是什么
291
2022-11-22
Hadoop入门-不古出品
@TOC
1.初识Hadoop
大数据时代已经到来,越来越多的行业面临着大量数据需要存储以及分析的挑战。Hadoop,作为一个开源的分布式并行处理平台,以其高扩展、高效率、高可靠等优点,得到越来越广泛的应用。本课旨在培养学员理解Hadoop的架构设计以及掌握Hadoop的运用能力。
1.1前言
1.1.1课程名称
Hadoop大数据平台架构与实践
1.1.2主要内容
1.大数据的相关概念 2.Hadoop的架构和运行机制 3.实战:Hadoop的安装和配置 4.实战:Hadoop开发 1.1.3学习目标 掌握大数据存储与处理技术的原理(理论知识) 掌握Hadoop的使用和开发能力(实践能力) 1.1.4 课程学习建议 1.结合书本,知识点更加系统全面对应的书本:hadoop技术详解、hadoop权威指南 2.实践经验很重要,边听课边实践。 1.1.5课程预备知识: linux常用命令 java编程基础
1.2Hadoop的前世今生
1.2.1Hadoop基本概念
Hadoop是解决大数据的分布式集成架构。当数据达到一定规模时,单机的存储和分析就变得非常困难,存储量和效率都无法达到用户的需求。所以,为了解决大数据的存储和处理,Google提出了三大技术:
MapReduce 概念:"Map(映射)"和"Reduce(归约)",它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。 当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组。 BigTable 是Google设计的分布式数据存储系统,用来处理海量的数据的一种非关系型的数据库 GFS 是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。它运行于廉价的普通硬件上,并提供容错功能。它可以给大量的用户提供总体性能较高的服务。
Hadoop是模仿Google三大技术的开源实现。相比于Google之前的解决方案,它有如下优势:
(1)降低成本,能用PC机就不用大型机和高端存储; (2)因为用的是PC机,所以经常发生硬件错误,所以通过软件来保证高可靠性; (3)简化了并行分布式计算。
1.2.2为什么取名Hadoop
1.3Hadoop的功能与优势
1.3.1 Hadoop是什么
是一个开源的、分布式存储和分布式计算平台
1.3.2Hadoop的两个核心组件
1.3.3Hadoopk的优势
1.4Hadoop的生态系统与版本
1.4.1hadoop生态系统
1.hdfs分布式存储系统 2.mapreduce 大数据编程模型 3.相关开源工具: (1)hive:将sql语句转化为hadoop任务,降低使用hadoop的门槛 (2)HBASE:存储结构化数据的分布式数据库,放弃事务特性,追求更高的扩展,它提供数据的随机读写和实时访问,实现对表数据的读写功能 注:和传统的关系型数据库的区别是放弃事务特性,追求更高的扩展、和HDFS的区别就是habse提供数据的随机读写和实时访问,实现对表数据的读写功能 (3)zookeeper:监控Hadoop集群里的每个节点的状态,管理整个集群的配置,维护数据节点之间的一致性 1.4.2hadoop版本 1.x:稳定 2.x:不稳定 2.Hadoop的安装 Step1:准备liunx环境; Step1:安装JDK; Step1:配置hadoop; 2.1准备liunx环境 两种方式: 1.本机先安装虚拟机,再安装linux 2.租用云主机,申请公网IP 2.2安装JDK Linux 下下载安装JDK (centos)
//1、下载 : yum install java-1.7.0-openjdk//查看可升级下载的软件包yum search java|grep jdk
//2、配置环境变量: vim /etc/profileexport JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64export JRE_HOME=$JAVA_HOME/jreexport CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATHexport PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
//3、让配置生效source /etc/profile
//4、测试 java -version
注解:1.Linux下用冒号 : 分割路径2.$PATH / $JAVA_HOME / $JRE_HOME 是用来引用原来环境变量的值,在设置环境变量时不能把原来的值给覆盖掉3.$CLASSPATH 中 当前目录 “.”不能丢4.export 是把这4个变量导出为全局变量
## 2.3配置Hadoop
### 2.3.1安装总结
+ 1.下载hdoop按照包并进行解压
+ 2.配置hdoop-env.sh文件,目的是配置jdk,并在profile配置haddoop的安装位置
+ 3.配置core-site.xml文件:hdoop的核心文件,里面有关于hdoop的节点端口与主机端口
+ 4.配置hdfs-site.xml文件:hdoop的文件存储的基本信息与目录
+ 5.配置mapred-site.xml文件:hadoop的计算节点的端口号
+ 6.启动hadoop:start-all.sh
+ 7.查看端口:jps,可以看到五大守护进程说明正确
+ 8.停止hdoop:stop-all.sh
### 2.3.2安装细节
+ 1、下载Hadoop安装包 ,两种方式
+ 方式一:官网下载好后,通过Xftp上传到Linux上,下载地址http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-1.2.1/hadoop-1.2.1.tar.gz
+ 方式一:通过 wget命令直接下载到Linux服务器上
$ wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-1.2.1/hadoop-1.2.1.tar.gz
+ 2、解压到指定目录下;
+ 移动文件:
$ mv 文件 /opt
+ 解压:
$ tar -zxvf hadoop-1.2.1.tar.gz
+ 3、配置hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml四个文件
```javascript
//1、hadoop-env.sh
配置java 环境变量的地址
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
//2、 core-site.xml
HDFS的文件被分成块进行存储,HDFS块默认大小是64MB,块是整个文件存储处理的逻辑单元。
3.2HDFS数据管理与容错
为保证硬件上的容错,数据块有多份冗余。
数据块副本:每个数据块3个副本,分布在2机架3节点上(容错性) 心跳检测:DataNode定期向NameNode发心跳消息。 二级NameNode:NameNdoe定期同步元数据映像文件到二级NameNode(secondryNameNode),一旦故障,备胎转正。
3.2HDFS读写文件的流程
4.2.1. 原理
分而治之 的思想,一个大任务分成多个小任务(map),并行执行后,合并结果(reduce).
4.2.2 运行流程
基本概念: Job & Task:一个 Job(任务、作业) 被切分为多个 Task,Task 又分为 MapTask 和 ReduceTask JobTracker作业调度分配任务、监控任务监控 TaskTracker 的状态 TaskTracker执行任务向 JobTracker 汇报任务状态
4.2.3 容错机制
//(1)启动hadoopstart -all.sh
//(2)rz把某某.java类放到根目录下/opt/根目录下边或者根目录下任意文件cd /mkdir project_hadoop/rz 类路径添加
//(3)cd 新创建的文件,创建file1和file2mkdir inputvi file1vi file2ls project_hadoop
//(4)创建文件hadoop fs -mkdir input_wordcount
//(5)创建目录:hadoop fs -mkdir input//查看文件:hadoop fs -ls hadoop fs -ls input_wordcount
//(6)把file1和file2文件放到input_wordcount提交输入文件给hadoophadoop fs -put 文件路径 提交后的路径//例:hadoop fs -put input/input_wordcount/
//(7)查看文件hadoop fs -ls input_wordcountfs -cat input_wordcount/file1fs -cat input_wordcount/file2
//(8)编译java文件javac -classpath /opt/hadoop-1.2.1/hadoop-core-1.2.1.jar:/opt/hadoop-1.2.1/lib/commons-cli-1.2.jar -d 编译后地址 编译文件
//(9)打包指令jar -cvf 打包后文件名.jar 某某.classjar -cvf wordcount.jar *.class
//(10)提交jar给hadoop执行hadoop jar jar包路径 执行的主函数名(主类名,main方法所在类名) 输入目录名 输出目录名//例:hadoop jar project_hadoop/wordcount.jar WordCount input_wordcount output_wordcount
//(11)查看通过算法计算出单词个数的结果fs -cat output_wordcount/part-r-00000
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~