平面设计软件有哪些功能,网站首页缩略图 seo,湘潭网站建设 r磐石网络,seo网站排名一、案列分析
1.1案例概述 现在已经进入了大数据(Big Data)时代#xff0c;数以万计用户的互联网服务时时刻刻都在产生大量的交互#xff0c;要处理的数据量实在是太大了#xff0c;以传统的数据库技术等其他手段根本无法应对数据处理的实时性、有效性的需求。HDFS顺应时代…一、案列分析
1.1案例概述 现在已经进入了大数据(Big Data)时代数以万计用户的互联网服务时时刻刻都在产生大量的交互要处理的数据量实在是太大了以传统的数据库技术等其他手段根本无法应对数据处理的实时性、有效性的需求。HDFS顺应时代出现在解决大数据存储和计算方面有很多的优势。
1.2案列前置知识点
1.什么是大数据 大数据是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的大量数据集合是需要新的处理模式才能具备更强的决策能力、洞察发现能力和流程优化能力的海量、高增长率和多样化的信息资产数据。简而言之就是数据量非常大大到无法用常规工具处理如关系型数据库、数据仓库等。这里的“大”又是一个什么量级呢?如阿里巴巴每天所处理的交易数据达到 20PB(即 20971520GB)。传统数据处理技术为何不能胜任?主要原因是关系型数据库是针对表、字段、行这种可使用二维表格表示的结构化数据而设计的而大数据通常是针对文本这种非结构化数据。 数据量大是大数据的显著特点归纳来说大数据特点如下:
(1)数据体量巨大。按目前的发展趋势看大数据的体量已经达到PB甚至EB级。(2)大数据的数据类型多样以非结构化数据为主。如:网络日志、音频、视频图片、地理位置信息、交易数据、社交数据等。(3)价值密度低。有价值的数据仅占到数据总量相当小的一部分。比如一段监控视频中真正有价值的画面可能只有几秒钟。由于价值密度低所以迅速地完成数据的价值提纯是目前大数据汹涌背景下亟待解决的难题。(4)产生和要求处理速度快。这是大数据区分于传统数据挖掘最显著的特征。 另外大数据也是一种方法论。原则是“一切都被记录一切都被数字化从数字里寻找需求、寻找知识、发掘价值”这是一种新的思维方式不同于此前的专家方式而是通过数据分析来得到结论这是大数据时代的一个显著特征。这也就要求技术人员拥有能够从各种各样类型的数据中快速获得有价值信息的能力。 目前有很多大数据处理系统可以处理大数据 2.Hadoop体系结构
Hadoop特点
高可靠性高扩展性高效性高容错性低成本可构建在廉价机器上
Hadoop运行模式
单机模式 无须配置Hadoop被视为一个非分布式模式运行的独立Java进程。伪分布式模式 只有一个节点的集群这个节点既是 Master(主节点、主服务器)也是 Slave(从节点、从服务器)可在此单节点上以不同的 Java 进程模拟分布式中的各类节点。完全分布式模式 对于 Hadoop,不同的系统会有不同的节点划分方式。在HDFS看来分为 NameNode(管理者)和 DataNode(工作者)其中NameNode只有一个,DataNode 可有多个;在 MapReduce 看来节点又分为 JobTrackel(作业调度者)和 TaskTracker(任务执行者)其中 JobTracker 只有一个TaskTracker 可以有多个。NameNode 和 JobTracker 可以部署在不同的机器上也可以部署在同一机器上。部署 NameNode 和 JobTracker 的机器是Master其余的机器都是 Slave。
Hadoop框架的核心构成
分布式文件系统(HDFS)分布式计算系统(MapReduce)分布式资源管理系统(YARN)
Hadoop生态圈 HDFS:分布式文件系统是整个Hadoop 体系的基石。MapReduce/YARN:并行编程模型。YARN是下一代的 MapReduce 框架从 Hadoop 0.23.01 版本后MapReduce 被重构。通常 YARN 也称为MapReduceV2老版本MapReduce 称为MapReduce V1.Hive:建立在 Hadoop 上的数据仓库。提供类似 SQL 语言的查询方式查询Hadoop 中的数据。Pig:一个对大型数据集进行分析、评估的平台。主要作用类似于数据库里的存储过程。HBase:全称 Hadoop Database。Hadoop 分布式、面向列的数据库来源于Google 关于 BigTable 的论文主要用于需要随机访问、实时读写的大数据。在后面章节还会详细介绍。ZooKeeper:是一个为分布式应用所设计的协调服务。主要为用户提供同步、配置管理、分组和命名等服务减轻分布式应用程序所承担的协调任务。
当然还有大量其它项目加入到 Hadoop 生态圈如:
Sqoop:主要用于 Hadoop与传统数据库(MySQL等)间的数据传递。Flume:日志采集系统。Spark:前面提过是一个相对独立于Hadoop的大数据处理系统可单独进行分布式处理。在这里列出来是因为它可以和HDFS很好的结合。Oozie:可以将多个MapReduce 作业组合到一个逻辑工作单元中进行工作计划的安排类似于工作流管理引擎。Ambari:支持 Hadoop 集群管理、监控的 Web 工具。 经过近十多年的发展越来越多的项目加入到了 Hadoop 的生态圈。在本课程中着重介绍3个模块分别是:HDFS、MapReduce、HBase。对于 Hadoop 应用开发人员来说这也是最基本的模块。
3..MapReduce 概述 Hadoop 的 MapReduce 框架源自于 Google 的 MapReduce 论文。在 Google 发表论文时,MapReduce最大成就是重写了 Google的索引文件系统。现在,MapReduce波广泛地应用于日志分析、海量数据排序、在海量数据中查找特定模式等场景中。 Hadoop 中并行应用程序的开发是基于 MapReduce 编程模型的基于它可以各任务分发到由上千台商用机器组成的集群上实现Hadoop 的并行任务处理功能。前面提过HDFS 和 MapReduce 二者相互作用共同完成了 Hadoop 分布式集群的主要任务。
4.MapReduce 框架设计 与 HDFS 架构设计相似Hadoop 中用于执行 MapReduce 作业的机器也有两个角色:JobTracker 和 TaskTracker.
JobTracker:是一个 Master 服务用于作业(Job)的管理和调度工作。一个 Hadoop 集群中只有一台 JobTracker。一般情况下应该把它部署在单独的机器上。JobTracker 负责创建、调度作业中的每一个子任务(MapTask或 ReduceTask)运行于 TaskTracker上并监控它们。如果发现有失败的任务就重新运行它。TaskTracker:是运行于多个节点上的 Slave 服务用于执行任务。TaskTracker需要运行在 HDFS的 DataNode 上。 基于 JobTracker 和 TaskTracker 的运行架构为 MapReduce V1在下一代MapReduce V2 中V1 架构已被 YARN 替代。关于 YARN 在本章稍后会讲解。从学习的难易程度来看应该先了解 MapReduce V1。不论是 V1还是 V2都不会影响编写 MapReduce 程序好比同样是一个 Web 应用运行在 Tomcat 与 Jetty 下的效果是相同的。由此可见实际上运行 MapReduce 作业的过程对开发人员是透明的。
1.3案列环境
1.本案例实验环境 二、实例实施
2.1系统环境设置所有节点都设置
1.关闭selinux和防火墙
setenforce 0
sed -i /^SELINUX/s/enforcing/disabled/ /etc/selinux/config
systemctl stop firewalld
systemctl disable firewalld
2.为各个节点设置主机名
hostnamectl set-hostname node1
bashhostnamectl set-hostname node2
bashhostnamectl set-hostname node3
bash
3.修改每台主机的hosts文件
cat EOF/etc/hosts
192.168.10.101 node1
192.168.10.102 node2
192.168.10.103 node3
EOF
4.创建hdoop用户组和hduser用户
[rootnode1 ~]# groupadd hadoop
[rootnode1 ~]# useradd -g hadoop hduser
[rootnode1 ~]# passwd hduser
此处设置密码
5.为hduser用户授权
[rootnode1 ~]# visudo在末尾添加
hduser ALL(ALL) ALL
6.安装JDK
[rootnode1 ~]# rpm -ivh jdk-8u171-linux-x64.rpm [rootnode1 ~]# vim /etc/profile
在末尾添加
export JAVA_HOME/usr/java/jdk1.8.0_171-amd64
export CLASSPATH$JAVA_HOME/lib:$CLASSPATH
export PATH$JAVA_HOME/bin:$PATH[rootnode1 ~]# source /etc/profile
7.配置免密码登录在node1上配置
[rootnode1 ~]# su - hduser
[hdusernode1 ~]$ ssh-keygen -t rsa //一路回车键即可
[hdusernode1 ~]$ ssh-copy-id hdusernode1
[hdusernode1 ~]$ ssh-copy-id hdusernode2
[hdusernode1 ~]$ ssh-copy-id hdusernode3 2.2安装Hadoop 1.将hadoop包拷贝到hduser的家目录并解压
在node1上操作
[hdusernode1 ~]$ tar zxvf hadoop-2.6.5.tar.gz
[hdusernode1 ~]$ mv hadoop-2.6.5 hadoop
2.配置hadoop的环境变量
[hdusernode1 ~]$ sudo vim /etc/profile
在末尾添加
export HADOOP_HOME/home/hduser/hadoop
export PATH$HADOOP_HOME/bin:$PATH[hdusernode1 ~]$ source /etc/profile
3.配置hadoop-env.sh文件
[hdusernode1 ~]$ cd ~/hadoop/etc/hadoop/
[hdusernode1 hadoop]$ vim hadoop-env.sh
在末尾添加
export JAVA_HOME/usr/java/jdk1.8.0_171-amd64
4.修改yarn-env.sh文件
[hdusernode1 hadoop]$ vim yarn-env.sh
在末尾添加
export JAVA_HOME/usr/java/jdk1.8.0_171-amd64
5.修改slaves文件
[hdusernode1 hadoop]$ vim slaves
清空文件中原有的内容
node2
node3
6.编辑core-site.xml文件
[hdusernode1 hadoop]$ vim core-site.xml
在末尾找到configuration模块
在里面添加配置
configuration
property
namefs.defaultFS/name
valuehdfs://node1:9000/value
/property
property
namehadoop.tmp.dir/name
valuefile:/home/hduser/hadoop/tmp/value
/property
/configuration备注定义hdfs的uri以及hdfs的临时目录
7.编辑hdfs-site.xml文件
[hdusernode1 hadoop]$ vim hdfs-site.xml
在末尾找到configuration模块
在里面添加
configuration
propertynamedfs.namenode.secondary.http-address/namevaluenode1:50090/value
/property
property
namedfs.namenode.name.dir/name
valuefile:/home/hduser/hadoop/dfs/name/value
/property
property
namedfs.datanode.data.dir/name
valuefile:/home/hduser/hadoop/dfs/data/value
/property
property
namedfs.replication/name
value2/value
/property
property
namedfs.webhdfs.enabled/name
valuetrue/value
/property
/configuration备注
名称节点和数据节点的存放位置文件副本数和读取权限。
8.修改mapred-site.xml文件
[hdusernode1 hadoop]$ cp mapred-site.xml.template mapred-site.xml
[hdusernode1 hadoop]$ vim mapred-site.xml
在末尾找到configuration模块在里面添加configuration
property
namemapreduce.framework.name/name
valueyarn/value
/property
property
namemapreduce.jobhistory.address/name
valuenode1:10020/value
/property
property
namemapreduce.jobhistory.webapp.address/name
valuenode1:19888/value
/property
/configuration备注Mapreduce作业记录的web地址和端口。
9.修改yarn-site.xml文件
[hdusernode1 hadoop]$ vim yarn-site.xml configurationproperty
nameyarn.nodemanager.aux-services/name
valuemapreduce_shuffle/value
/property
property
/property
property
nameyarn.resourcemanager.address/name
valuenode1:8032/value
/property
property
nameyarn.resourcemanager.scheduler.address/name
valuenode1:8030/value
/property
property
nameyarn.resourcemanager.resource-tracker.address/name
valuenode1:8035/value
/property
property
nameyarn.resourcemanager.admin.address/name
valuenode1:8033/value
/property
property
nameyarn.resourcemanager.webapp.address/name
valuenode1:8088/value
/property/configuration备注
resourcemanager、nodemanager的通信端口web端口等信息
10.将hadoop目录拷贝到其他节点上
[rootnode1 ~]#scp -r /home/hduser/hadoop node2:/home/hduser
[rootnode1 ~]#scp -r /home/hduser/hadoop node3:/home/hduser
2.3验证安装配置
1.在 Master 主机node1上格式化 NameNode
[hdusernode1 ~]$ cd hadoop/
[hdusernode1 hadoop]$ bin/hdfs namenode -format
[hdusernode1 hadoop]$ sbin/start-dfs.sh
2.查看进程
[hdusernode1 hadoop]$ jps
16721 Jps
15687 NameNode
15866 SecondaryNameNode
3.启动yarn
[hdusernode1 hadoop]$ sbin/start-yarn.sh
4.查看集群环境
[hdusernode1 hadoop]$ bin/hdfs dfsadmin -report
5.浏览器查看 HDFS 运行状态
http://192.168.10.101:50070
2.4运行 Hadoop 的 WordCount 程序
WordCount 实现了对文本中的单词计数的功能并要求输出结果并按单词首字母排序
1.创建测试文件的目录
[hdusernode1 ~]$ mkdir ~/file
2.编辑测试文件
[hdusernode1 ~]$ cd ~/file/
[hdusernode1 file]$ echo ni hao hadoopfile1.txt
[hdusernode1 file]$ echo hello hadoop hi chinafile2.txt
3.启动hadoop并 创建hdfs目录
[hdusernode1 file]$ cd ~/hadoop/
[hdusernode1 hadoop]$ sbin/start-all.sh
[hdusernode1 hadoop]$ bin/hadoop fs -mkdir /input2
4.将file1和file2拷贝到hdfs存储目录中
[hdusernode1 hadoop]$ bin/hadoop fs -put ~/file/file* /input2/
[hdusernode1 hadoop]$ bin/hadoop fs -ls /input2/
5.执行WordCount程序对文件进行统计
[hdusernode1 hadoop]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.5.jar wordcount /input2/ /output2/wordcount1注意输出目录不能已存在否则不会输出
6.查看执行结果
[hdusernode1 hadoop]$ bin/hadoop fs -cat /output2/wordcount1/*如果看到输出结果证明hadoop安装成功