首页 / 资讯中心 / 文章详情

Hadoop 基础学习入门:超详解笔记(一)

Hadoop 基础学习入门:超详解笔记(一) ★ FEATURED ARTICLE
大数据基础学习入门前言 Java工程师并不一定要学习大数据, 这更像是一种 锦上添花 的技术。 可以说前景是比普通Java工程师大滴~ 针对大型企业实用性高, 中小企业并不是很需要!! 因为 大数据大数据首先要建立在数据量大的基础上普通中小型项目数据量不大, 并体现不出大数据的强大所以并不是很建议 如阿里巴巴每天所处理的交易数据达到20PB ( 即20971520GB)。 传统数据处理技术为何不能胜任? 主要原因是关系型数据库是针对表、字段、行这种可使用二维表格表示的结构化数据而设计的而大数据通常是针对文本这种非结构化数据而设计的。 大数据前提需要掌握JAVASE Linux... 等技术。 本人并不是专业做大数据滴~, 有点失误错误的地方. 还请多多指教, 这里也只是基础入门,方便后期了解学习;如果 Java(暂时笔记没有搬过来~) Linux 需要补课同学可以借鉴这里…大数据的概念大数据( BigData) :指 无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合。简而言之就是数据量非常大! !大到无法用常规的工具处理关系型数据库数据仓库等...需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。主要解决:海量数据的存储和海量数据的分析计算问题。按顺序给出数据存储单位:bit、Byte、KB、MB、GB、 TB、 PB、 EB、ZB、YB、BB、NB、DB.1Byte 8bit 1K 1024Byte 1MB 1024K1G 1024M 1T 1024G1P 1024T …以此类推;大数据特点 (4个V)Volume(大量)体量巨大, 按目前的发展趋势来看, 大数据的体量已经达到PB级 甚至是EB级!!!举例截至目前 :人类生产的所有印刷材料的数据量是200PB, 而历史上全人类总共说过的话的数据量大约是5EBVelcocity(高速)产生和要求处理, 大量数据的速度快, 这是大数据最显著的特征;举例天猫双十一: 2017年 3 分01秒交易额超过100亿Variety(多样)大数据的数据类型多样数据被分为结构化数据和非结构化数据。相对于以往便于存储的以数据库/文本为主的结构化数据。非结构化数据越来越多,包括网络日志、音频视频、图片、地理位置信息等,这些多类型的数据对数据的处理能力提出了更高要求。Value(低价值密度)价值密度低一百条数据记录中也许, 只有那一条是你需要的~举例两小时的监控, 你想看的只是那三秒大数据也是一种方法论。原则是“一切都被记录,一切都被数字化、从数字里寻找需求、寻找知识、发掘价值”这是一种新的思维方式,不同于此前的专家方式而是通过数据分析来得到结论这是大数据时代的一个显著特征, 这也就要求技术人员拥有能够从各种类型的数据中快速获得有价值的信息目前有很多大数据处理系统可以处理大数据:HadoopSparkMongoDBStormSAP Hana…等, 本次我们学习Hadoop大数据应用场景1、物流仓储:大数据分析系统助力商家精细化运营、提升销量、节约成本。2、零售:分析用户消费习惯,为用户购买商品提供方便,从而提升商品销量。经典案例纸尿布啤酒案例3、旅游:深度结合大数据能力与旅游行业需求,共建旅游产业智慧管理、智慧服务和智慧营销的未来。…Hadoop 体系结构Hadoop是什么Hadoop是一个由Apache基金会所开发的分布式系统基础架构。主要解决海量数据的存储和海量数据的分析计算问题。广义上来说, Hadop通常是指一个更广泛的概念————Hadoop生态圈我凑, 图片里技术一个不认识Hadoop生态圈HDFS分布式文件系统整个Hadoop体系的基石。MapReduce/YARN并行编程模型YARN 是第二代的MapReduce框架通常YARN也称为MapReduce V2Hadoop.0 23.01版本MapReduce 重构老MapReduce称为MapReduce V1Hive建立在Hadoop上的数据仓库提供类似SQL语言的查询方式查询Hadoop中的数据。Pig一个对大型数据集进行分析、评估的平台主 要作用类似于数据库里的存储过程。HBase:全称Hadoop DatabaseHadoop 的分布式的、面向列的数据库来源于Google 的关于BigTable的论文。主要用于需要随机访问、实时读写的大数据。在后面章节还会详细介绍。ZooKeeper是一个为分布式应用所设计的协调服务主要为用户提供同步、配置管理、分组和命名等服务减轻分布式应用程序所承担的协调任务。————————————————————————————————————————————————当然还有大量其他项目加入到Hadoop生态圈如:Sqoop:主要用于Hadoop与传统数据库(MySQL 等)间的数据传递。Flume:日志采集系统。Spak:前面提过是一个相对独立于Hado的大数据处理系统可单独进行分布式处理。它可以和HDFS很好地结合.…对于初学者了解即可…Hadoop发展历史Hadoop创始人Doug Cutting 道格.卡丁2003-2004年. Google公开了部分GFS和MapRebuce BigTable 的三篇论文思想和细节。创始人是Doug CuttingHadop现在是Apache 基金会顶级项目;Hadoop是一个虚构的名字, 道格.卡丁孩子为其黄色玩具 ”大象“ 的名字;Hadoop的核心前面提过HDFS和MapReduce是Hadop两大核心通过HDFS来实现对分布存储的底层支持达到高速并行读写与大容量的存储扩展。通过MapReduce实现对分布式并行任务处理程序支持保证高速分析处理数据。HDFS在MapReduce任务处理过程中提供了对文件操作和存储的支持。MapReduce在HDFS的基础上实现了任务的分发、跟踪、执行等工作,并收集结果。二者相互作用完成了Hadoop分布式集群的主要任务Hadoop的优势4高1 )可靠性Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或存储出现故障,也不会导致数据的丢失。2)高扩展性在集群间分配任务数据,可方便的扩展数以千计的节点。3 )高效性在MapReduce的思想下, Hadop是并行工作的,以加快任务处理速度。4)高容错性能够自动将失败的任务重新分配。Hadoop发现版本Hadoop发现版本比较混乱, 总的来说Hadoop分为两代安装Hadoop针对初学者来说、Hadoop运行环境的安装是个门槛。很大程度上是由于大家对于Iiunx系统柜对不熟悉,而实际上Hadop本身的安装并不复杂。前言Hadoop 大多运行在Linux服务器, 上滴所以在这之前你要先安装Linunx(可以去看本人的笔记 或其它途径) Hadoop运行是需要Java环境的, Linux上安装JDK当然是必不可少的了... JDK Linux请参照https://blog.csdn.net/qq_45542380/article/details/111173802Hadoop目录结构安装前, 当然要了解目录结构低啦~bin执行文件目录包含hadoop dfs yarn 等命令所有用户均可执行。etcHadoop配置文件都在此目录(etc/hadoop/配置文件..)include包含C语言接口开发所需头文件。lib包含C语言接口开发所需链接库文件。通相当于,Java Jar库libexec运行sbin目录中的脚本会调用该目录下的脚本logs日志目录在运行过Hadoop后会生成该目录sbin仅超级用户能够执行的脚本包括启动和停止dfs yarn等 。share包括doc和hadoop两个目录doc目录包含了大量的Hadoo帮助文档:hadoop目录包含Hadoop所需所有的Jar 文件安装1. 使用工具WinSCPxftp等工具将Hadoop文件上传至Linux中 urs/local中2. 解压 改名方便操作解压tar -zxvf hadoop-2.7.2.tar.gz改名: hadoopmv hadoop-2.7.2 hadoop mv 旧文件名 新文件名字3. 配置 Linux 系统变量Linux 系统变量都在/etc/profile中配置JDK就是在这里配置的, 首先cd hadoop进入hadoop文件中,pwd获取文件的绝对路径vi /etc/profile编辑Linux系统变量往下拉↓↓输入JDK是以前配置的必须要有的…(Hadoop是下面的)export HADOOP_HOMEHadoop安装路径.. export PATH$PATH:$HADOOP_HOME/bin export PATH$PATH:$HADOOP_HOME/sbin4. 保存关闭, 使配置生效source /etc/profile刷新资源配置此时Hadoop在Linux 就配置好了可以Hadoop version测试是否可以…不行关机重启或继续下面配置Hadoop集群;使用本地运行模式官方WordCount案例1.创建在hadoop-2.7.2 解压根目录文件下面创建一个wcinput文件夹mkdir wcinput2.在wcinput文件下创建一个wc.input文件cd wcinputtouch wc.input3.编辑wc.input文件vi wc.input在文件中输入如下内容:hadoop yarnhadoop mapreduceatguiguatguigu保存退出wq4.回到Hadoop 根目录下5.执行程序bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount wcinput wcoutputbin/hadoop jar执行一个jar文件share/hadoop/mapred…文件所在的目录 examples因为加s了肯定是多个案例wordcount 因为examples是多个案例我们这里执行的是wordcount 案例; Hadoop中的一种~wcinput 输入文件夹检测的文件夹wcoutput输出文件夹,名字可以随意取一般会以执行的文件名字output命名注意这里的woutput文件夹不能存在如果存在将会报错在执行命令时会自动创建wcoutput 文件夹之后就是一阵的编译输出…6. 查看结果cat wcoutput/part-r-00000注意单击模式 和伪分布模式, 操作不同配置了伪分布模式,这种方式就不行了…这里是直接使用 Hadoop 命令来: 分析文件,只实用与单击模式~分布式模式, 首先上传在文件系统上Hadoop命令解析文件系统上的文件…配置Hadoop运行环境Hadoop分布式安装Hadoop有三种运行方式单机模式无须配置。Hadoop被视为一个非分布式模式运行的独立Java进程。伪分布式一台设备自己和自己玩(本次安装)只有一个节点的集群这个节点既是Master (主节点、主服务器)也是Slave (从节点、从服务器)。可在此单节点上以不同的Java进程模拟分布式中的各类节点完全分布式多台设备Hadoop集群对于Hadoop, 不同的系统会有不同的节点划分方式。在HDFS看来节点分为NameNode (管理者)和DataNode (工作者)其中NameNode只有一个DataNode 可有多个:在MapReduce看来节点又分为JobTracker (作业调度者)和TaskTracker (任务执行者)其中JobTracker只有一个TaskTracker 可以有多个。NameNode 和JobTracker可以部署在不同的机器上也可以部署在同一机器上。部署 NameNode和JobTracker 的机器是Master(主)其它都是 Slave (从)单机模式和伪分布式均不能体现云计算的优势通常用于程序测试与调试。本人并没有搞过集群,这里有可能会出错…所以用了简单的伪分布式ok! 本人研究了好半天终于搞好了感谢大佬借鉴大佬首先勒,为了方便伪分布式以及后面的集群容易分别设备可以给设备改个名字(也可以不改随意)修改主机名编辑Linux系统设备名配置vi /etc/sysconfig/network编辑修改主机名NETWORKINGyesHOSTNAME要修改的名字编辑主机映射vi /etc/hosts最后重启, 即可~ 主机名就会发生变化的拉~开始伪分布式配置hadoop/etc/hadoop目录下核心配置文件Linux编辑文件vi 文件1. 配置hadoop-env.sh 配置Hadoop JDK环境修改25行,不一定准export JAVA_HOME/usr/local/jdk1.8.0(填写自己JDK的路径)2. 配置core-site.xml 配置HDFS默认是空的第一次打开在 configuration / configuration 之间, 添加!-- 指定HDFS中NameNode的地址 --property!-- fs.defaultFS默认文件系统的名称,uri的权威是用来确定主机、端口等对于一个文件系统 --namefs.defaultFS/namevaluehdfs://Hadoop1:9000/value!-- Hadoop1:是我的主机名 --/property!-- 指定Hadoop运行时产生文件的存储目录 --propertynamehadoop.tmp.dir/namevalue/usr/local/hadoop/data/tmp/value!-- hadoop.tmp.dir临时存放路径 --/property3.配置hdfs-site.xml与上面类似!-- 指定HDFS副本的数量 --propertynamedfs.replication/namevalue1/value/property4. 启动集群NameNodeDataNode注意Hadoop根目录下结果出现这个成功:最后格式化NameNode第一次启动时格式化以后就不要总格式化bin/hdfs namenode -format启动NameNodesbin/hadoop-daemon.sh start namenode启动DataNodesbin/hadoop-daemon.sh start datanode5. 查看启动结果注意jps是JDK中的命令不是Linux命令。不安装JDK不能使用jpsJPS这就表示启动成功web端查看HDFS文件系统查看前必须保证NameNode和DataNode已经启动如果是本机访问可以使用localhost / 127.0.0.1而我使用的是虚拟机外的主设备windows系统指定设备IP: 50070访问;ok 这样就表示成功了使用,伪分布式操作集群在HDFS文件系统上创建一个input文件夹:在文件系统上创建的文件, 不是你根目录哦! 你是看不见滴文件系统上递归创建一组文件使用Hadoop bin目录下的命令,一般建议在Hadoop根目录下操作:bin/hdfs dfs -mkdir -p /user/0817/input在根目录下, 创建一个 abc.txt 文件并输入…vi abc.txt这是在根目录上创建存在的, 不过后面要上传文件系统上进行操作…hadoop yarnhadoop mapreduceatguiguatguigu保存退出wq将本地 linux中的文件, 上传至文件系统上bin/hdfs dfs -put ./abc.txt /user/0817input此时可以查看↓↓↓运行MapReduce程序同上面类似…bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/0817/input /user/0817/out查看输出结果配置集群 YARN主要用于, 后面学习 MapReduce 后面讲解, 这里可以先把基本, 环境装好;需要配置四个配置文件Hadoop 的核心配置文件有七个上面三 这里四个, 都是在 Hadoop/etc 目录下存放的核心配置文件1. 配置yarn-env.sh配置一下JAVA_HOMEexport JAVA_HOME/usr/local/jdk1.8.0(填写自己JDK的路径)2. 配置yarn-site.xml!-- Reducer获取数据的方式 --property!-- 配置MapReduce的shuffle --nameyarn.nodemanager.aux-services/namevaluemapreduce_shuffle/value/property!-- 指定YARN的ResourceManager的地址 --propertynameyarn.resourcemanager.hostname/namevaluehadoop1/value/property3. 配置mapred-env.sh配置一下JAVA_HOMEexport JAVA_HOME/usr/local/jdk1.8.0(填写自己JDK的路径)4. 配置mapred-site.xmlHadoop/etc 中提供了 mapred-site.xml.templatetemplate 模板: 用于方便操作…使用只需要 复制/修改 名为mapred-site.xml 并进行配置修改模板文件名mv mapred-site.xml.template mapred-site.xml并编辑 配置vi mapred-site.xml!-- 指定MR运行在YARN上 --propertynamemapreduce.framework.name/namevalueyarn/value/property启动集群启动前必须保证NameNode和DataNode已经启动启动ResourceManagersbin/yarn-daemon.sh start resourcemanager启动NodeManagersbin/yarn-daemon.sh start nodemanagerHadoop 警告 WARN hdfs.DFSClient: DataStreamer Exception org.apache.hadoop.ipc.RemoteException 解决办法1.看自己是否关闭防火墙了防火墙没关可能导致这个原因2.在core-site.xml中没有配置hadoop运行时产生的文件的存储目录如果上述都没问题的话有可能是使用hadoop namenode -format格式化时格式化了多次造成那么spaceID不一致造成的这时候就需要停止集群stop-all.sh然后删除在hdfs中配置的data目录就是在core-site.xml中配置的hadoop.tmp.dir对应的文件重新格式化namenode需要切换到Hadoop bin目录下执行./hadoop namenode -format最后重新启动hadoop集群再操作就可以啦常用命令:Hadoop的sbin 服务命令目录下启动Hadoop所有服务./start-dfs.sh关闭Hadoop所有服务./stop-dfs.shlinux./执行命令;这个解决了我的问题~谢谢观看, 建议三连~需要资源同学可以私聊
阅读完成 · 觉得有帮助?
咨询建站