1.0 Hadoop的介绍、搭建、环境

HADOOP背景介绍

1.1 Hadoop产生背景

  1. HADOOP最早起源于NutchNutch的设计目标是构建一个大型的全网搜索引擎,包括网页抓取、索引、查询等功能,但随着抓取网页数量的增加,遇到了严重的可扩展性问题——如何解决数十亿网页的存储和索引问题。
  2. 2003年、2004谷歌发表的两篇论文为该问题提供了可行的解决方案。(谷歌为现代技术做了十分大的贡献!!)

——分布式文件系统(GFS),可用于处理海量网页的存储

——分布式计算框架MAPREDUCE,可用于处理海量网页的索引计算问题。

Nutch的开发人员完成了相应的开源实现HDFSMAPREDUCE,并从Nutch中剥离成为独立项目HADOOP,到20081月,HADOOP成为Apache顶级项目,迎来了它的快速发展期。

1.2 什么是HADOOP

  1. HADOOPapache旗下的一套开源软件平台(apache软件几乎都开源)
  2. HADOOP提供的功能:利用服务器集群,根据用户的自定义业务逻辑,对海量数据进行分布式处理
  3. HADOOP的核心组件有
    1. HDFS(分布式文件系统)
    2. YARN(运算资源调度系统)
    3. MAPREDUCE(分布式  运算编程框架)

1.3 HADOOP在大数据、云计算中的位置和关系

1. 云计算是分布式计算、并行计算、网格计算、多核计算、网络存储、虚拟化、负载均衡等传统计算机技术和互联网技术融合发展的产物。借助IaaS(基础设施即服务)PaaS(平台即服务)SaaS(软件即服务)等业务模式,把强大的计算能力提供给终端用户。 

2. 现阶段,云计算的两大底层支撑技术虚拟化”和“大数据技术。 

3. HADOOP则是云计算的PaaS层的解决方案之一,并不等同于PaaS,更不等同于云计算本身。

1.4 Hadoop生态系统

HDFS:分布式文件系统hdfsMAPREDUCEyarn)元老级大数据处理技术框架,擅长离线数据分析

MAPREDUCE:分布式运算程序开发框架

HIVE:基于大数据技术(文件系统+运算框架)的SQL数据仓库工具,使用方便,功能丰富。但基于MR会有很大的延迟。

HBASE:基于HADOOP的分布式海量数据库,离线分析和在线业务通吃, 是 Google Bigtable 的另一套开源实现。

ZOOKEEPER:分布式协调服务基础组件,提供的功能包括:配置维护、名字服务、 分布式同步、心跳、组服务等

Mahout:基于mapreduce/spark/flink等分布式运算框架的机器学习算法库提供可扩展的计算机学习领域的算法实现,旨在帮助开发人员更加快捷地开发智能 应用程序。

Oozie:工作流调度框架

Sqoop:数据导入导出工具

Flume:日志数据采集框架

Avro: 基于JSON的数据序列化的系统。

Cassandra: 一套分布式,非关系型存储系统,类似Google - BigTable。

Chukwa: 用于监控大型分布式系统的数据采集系统。

Pig:提供一个并行执行的数据流框架。

Spark:类似MapReduce的通用并行框架,继承了其的分布式优势,只是中间输出结果存储 于内存中,提供了相对实时性的处理能力

Tez:新的一套分布式执行框架,主要以开发人员为最终用户构建性能更快、扩展性更强的应 用程序。

1.5Hadoop大数据项目流程图

1) 数据采集:定制开发采集程序,或使用开源框架FLUME

2) 数据预处理:定制开发mapreduce程序运行于hadoop集群

3) 数据仓库技术:基于hadoop之上的Hive

4) 数据导出:基于hadoopsqoop数据导入导出工具

5) 数据可视化:定制开发web程序或使用kettle等产品

6) 整个过程的流程调度:hadoop生态圈中的oozie工具或其他类似开源产品

1.6Hadoop集群的安装

提前准备:虚拟机的正常安装,网卡启动成功,Xshell和ftp软件。jdk的压缩包,和Hadoop的压缩包。

HadoopMaster1     NameNode  SecondaryNameNode     192.168.242.110

HadoopYarn       ResourceManager         192.168.242.111

HadoopSlaver1     DataNode    NodeManager     192.168.242.112

HadoopSlaver2     DataNode    NodeManager     192.168.242.113

HadoopSlaver3     DataNode    NodeManager     192.168.242.114

1.6.1上传jdk安装包(用xftp上传文件)

解压到相应目录:rpm -ivh ./xxxxx.jdk  ./user/java

编辑环境变量:为了在各个目录下能运行JAVA代码

vim /etc/profile
export JAVA_HOME=/usr/java/jvm/jdk1.7.0_79
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

wq后保存: source  /etc/profile 配置更新

echo java 检验 或者 javac java-version

1.6.2 Hadoop的安装

1、解压到相应目录:cd /usr/local     tar –zxvf ./hadoop-2.7.2.tar.gz

     把目录修改为hadoop   mv hadoop-2... hadoop
2、修改hadoop-env.sh
     vim  /usr/local/hadoop/etc/hadoop/hadoop-env.sh

     修改export JAVA_HOME 语句为 export JAVA_HOME=/usr/java/default

3、修改core-site.xml 配置端口

cd /usr/local/hadoop/etc/hadoop
vi core-site.xml 

<configuration>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>file://usr/hadoop/hadoop-2.6.4/tmp</value>  //文件存储的目录。需要创建
  </property>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://localhost:9000</value> //集群Master的端口号
  </property>
</configuration>

###修改secondaryNamenode中的core-site.xml 配置冷备份
  <property>
    <name>fs.checkpoint.period</name>
    <value>60</value>
  </property>
<property>
    <name>fs.checkpoint.size</name>
    <value>67108864</value>
  </property>
  <property>
    <name>fs.checkpoint.dir</name>
    <value>file:/usr/hadoop/hadoop-2.8.0/dfs/fsimage/</value> //需要把映射文件考到这个目录
  </property>
  <property>
    <name>fs.checkpoint.edits.ir</name>
    <value>file:/usr/hadoop/hadoop-2.8.0/dfs/edits/</value>
</property>

4、修改集群hdfs-site.xml配置

vi  hdfs-site.xml

<configuration>

  <property>
    <name>dfs.namenode.secondary.http-address</name>  //冷备份
    <value>HadoopMaster1 :50090</value>
  </property>

  <property>

    <name>dfs.namenode.name.dir</name>

    <value>/home/hadoop/data/name</value>//主文件的存储目录需要在相应目录创建

  </property>

  <property>

    <name>dfs.datanode.data.dir</name>

    <value>/home/hadoop/data/data</value>//data文件的存储目录需要在相应目录创建

  </property>

  <property>

    <name>dfs.replication</name>

    <value>3</value>

  </property>

  <property>

    <name>dfs.secondary.http.address</name>

    <value>hdp-node-01:50090</value>

  </property>

</configuration>

5、配hadoop的环境变量 把/usr/hadoop/bin和/usr/hadoop/sbin设到PATH中

  vi /etc/profile
  export PATH=$PATH:/usr/hadoop/bin:/usr/hadoop/sbin
  更新:source etc/profile

测试hadoop命令是否可以直接执行,任意目录下敲hadoop

1.6.3Yarn的搭建

 配置计算调度系统Yarn和计算引擎Map/Reduce
1  namenode上配置 mapred-site.xml
<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>
2 yarn-site.xml的配置

<property>
  <name>yarn.resourcemanager.hostname</name>
  <value>master</value>
</property>
<property> 
  <name>yarn.nodemanager.aux-services</name> 
  <value>mapreduce_shuffle</value> 
</property> 
<property>
  <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
  <value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>

3启动yarn集群start-yarn.sh
4 jps观察启动结果

1.6.4搭建五台机器,集群

1、关闭虚拟机,完全克隆复制5份(一个个启动 修改IP和hostname)

  分别修改虚拟机的ip vim/etc/sysconfig/network-scripts/ifcfg-env33跟之前的图对应

  修改hostname  vim /etc/hostname  对应之前的名 

2、确认互相能够ping通,用ssh登陆

在主机创建 .shh目录 

ssh-keygen  -t rsa

ssh-copy-id (子机IP和自己IP)一直确定完成免密,hosts修改可以改名

3,同时修改所有虚拟机的/etc/hosts,确认使用名字可以ping通

HadoopMaster1      192.168.242.110

HadoopYarn       192.168.242.111

HadoopSlaver1     192.168.242.112

HadoopSlaver2    192.168.242.113

HadoopSlaver3     192.168.242.114

4,修改master上/etc/hadoop/slaves文件,每一个slave占一行(子机的名)

HadoopSlaver1      

HadoopSlaver2    

HadoopSlaver3

现在集群namenode  datanode已经可以启动了

使用start-dfs.sh启动集群,jps并观察结果

配置文件详细信息以后慢慢搭建时会慢慢更改。

现在这个集群完全搭建完毕,过程较长。建议初学者一点一点搭环境。配置文件可能会有问题。后续慢慢更改。

 

 

  

  

 

转载于:https://www.cnblogs.com/Smileing/p/7211137.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/391992.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何实现多维智能监控?--AI运维的实践探索【一】

作者丨吴树生&#xff1a;腾讯高级工程师&#xff0c;负责SNG大数据监控平台建设。近十年监控系统开发经验&#xff0c;具有构建基于大数据平台的海量高可用分布式监控系统研发经验。 导语&#xff1a;监控数据多维化后&#xff0c;带来新的应用场景。SNG的哈勃多维监控平台在完…

使用Python和MetaTrader在5分钟内开始构建您的交易策略

In one of my last posts, I showed how to create graphics using the Plotly library. To do this, we import data from MetaTrader in a ‘raw’ way without automation. Today, we will learn how to automate this process and plot a heatmap graph of the correlation…

请对比html与css的异同,css2与css3的区别是什么?

css主要有三个版本&#xff0c;分别是css1、css2、css3。css2使用的比较多&#xff0c;因为css1的属性比较少&#xff0c;而css3有一些老式浏览器并不支持&#xff0c;所以大家在开发的时候主要还是使用css2。CSS1提供有关字体、颜色、位置和文本属性的基本信息&#xff0c;该版…

ipywidgets_未来价值和Ipywidgets

ipywidgetsHow to use Ipywidgets to visualize future value with different interest rates.如何使用Ipywidgets可视化不同利率下的未来价值。 There are some calculations that even being easy becoming better with a visualization of his terms. Moreover, the sooner…

计算机主机后面辐射大,电脑的背面辐射大吗

众所周知&#xff0c;电子产品的辐射都比较大&#xff0c;而电脑是非常常见的电子产品&#xff0c;它也存在着一定的辐射&#xff0c;那么电脑的背面辐射大吗?下面就一起随佰佰安全网小编来了解一下吧。有资料显示&#xff0c;电脑后面的辐射比前面大&#xff0c;长期近距离在…

装饰器3--装饰器作用原理

多思考&#xff0c;多记忆&#xff01;&#xff01;&#xff01; 转载于:https://www.cnblogs.com/momo8238/p/7217345.html

用folium模块画地理图_使用Folium表示您的地理空间数据

用folium模块画地理图As a part of the Data Science community, Geospatial data is one of the most crucial kinds of data to work with. The applications are as simple as ‘Where’s my food delivery order right now?’ and as complex as ‘What is the most optim…

python创建类统计属性_轻松创建统计数据的Python包

python创建类统计属性介绍 (Introduction) Sometimes you may need a distribution figure for your slide or class. Since you are not using data, you want a quick solution.有时&#xff0c;您的幻灯片或课程可能需要一个分配图。 由于您不使用数据&#xff0c;因此需要快…

浅析STM32之usbh_def.H

【温故而知新】类似文章浅析USB HID ReportDesc (HID报告描述符) 现在将en.stm32cubef1\STM32Cube_FW_F1_V1.4.0\Middlewares\ST\STM32_USB_Host_Library\Core\Inc\usbh_def.H /********************************************************************************* file us…

C# (类型、对象、线程栈和托管堆)在运行时的相互关系

在介绍运行时的关系之前,先从一些计算机基础只是入手,如下图: 该图展示了已加载CLR的一个windows进程,该进程可能有多个线程,线程创建时会分配到1MB的栈空间.栈空间用于向方法传递实参,方法定义的局部变量也在实参上,上图的右侧展示了线程的栈内存,栈从高位内存地址向地位内存地…

2019-08-01 纪中NOIP模拟赛B组

T1 [JZOJ2642] 游戏 题目描述 Alice和Bob在玩一个游戏&#xff0c;游戏是在一个N*N的矩阵上进行的&#xff0c;每个格子上都有一个正整数。当轮到Alice/Bob时&#xff0c;他/她可以选择最后一列或最后一行&#xff0c;并将其删除&#xff0c;但必须保证选择的这一行或这一列所有…

knn分类 knn_关于KNN的快速小课程

knn分类 knnAs the title says, here is a quick little lesson on how to construct a simple KNN model in SciKit-Learn. I will be using this dataset. It contains information on students’ academic performance.就像标题中所说的&#xff0c;这是关于如何在SciKit-Le…

office漏洞利用--获取shell

环境&#xff1a; kali系统&#xff0c; windows系统 流程&#xff1a; 在kali系统生成利用文件&#xff0c; kali系统下监听本地端口&#xff0c; windows系统打开doc文件&#xff0c;即可中招 第一种利用方式&#xff0c; 适合测试用&#xff1a; 从git下载代码&#xff1a; …

pandas之DataFrame合并merge

一、merge merge操作实现两个DataFrame之间的合并&#xff0c;类似于sql两个表之间的关联查询。merge的使用方法及参数解释如下&#xff1a; pd.merge(left, right, onNone, howinner, left_onNone, right_onNone, left_indexFalse, right_indexFalse,    sortFalse, suffi…

python ==字符串

字符串类型(str)&#xff1a; 包含在引号&#xff08;单&#xff0c;双&#xff0c;三&#xff09;里面&#xff0c;由一串字符组成。 用途&#xff1a;姓名&#xff0c;性别&#xff0c;地址&#xff0c;学历&#xff0c;密码 Name ‘zbk’ 取值: 首先要明确&#xff0c;字符…

认证鉴权与API权限控制在微服务架构中的设计与实现(一)

作者&#xff1a; [Aoho’s Blog] 引言&#xff1a; 本文系《认证鉴权与API权限控制在微服务架构中的设计与实现》系列的第一篇&#xff0c;本系列预计四篇文章讲解微服务下的认证鉴权与API权限控制的实现。 1. 背景 最近在做权限相关服务的开发&#xff0c;在系统微服务化后&a…

mac下完全卸载程序的方法

在国外网上看到的&#xff0c;觉得很好&#xff0c;不仅可以长卸载的知识&#xff0c;还对mac系统有更深的认识。比如偏好设置文件&#xff0c;我以前设置一个程序坏了&#xff0c;打不开了&#xff0c;怎么重装都打不开&#xff0c;后来才知道系统还保留着原来的偏好设置文件。…

机器学习集群_机器学习中的多合一集群技术在无监督学习中应该了解

机器学习集群Clustering algorithms are a powerful technique for machine learning on unsupervised data. The most common algorithms in machine learning are hierarchical clustering and K-Means clustering. These two algorithms are incredibly powerful when appli…

自考本科计算机要学什么,计算机自考本科需要考哪些科目

高科技发展时代&#xff0c;怎离得开计算机技术&#xff1f;小学生都要学编程了&#xff0c;未来趋势一目了然&#xff0c;所以如今在考虑提升学历的社会成人&#xff0c;多半也青睐于计算机专业&#xff0c;那么计算机自考本科需要考哪些科目&#xff1f;难不难&#xff1f;自…

非对称加密

2019独角兽企业重金招聘Python工程师标准>>> 概念 非对称加密算法需要两个密钥&#xff1a;公钥&#xff08;publickey&#xff09;和私钥&#xff08;privatekey&#xff09;。公钥与私钥是一对&#xff0c;如果用公钥对数据进行加密&#xff0c;只有用对应的私…