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的哈勃多维监控平台在完…

.Net Web开发技术栈

有很多朋友有的因为兴趣&#xff0c;有的因为生计而走向了.Net中&#xff0c;有很多朋友想学&#xff0c;但是又不知道怎么学&#xff0c;学什么&#xff0c;怎么系统的学&#xff0c;为此我以我微薄之力总结归纳写了一篇.Net web开发技术栈&#xff0c;以此帮助那些想学&#…

使用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…

卷积神经网络 手势识别_如何构建识别手语手势的卷积神经网络

卷积神经网络 手势识别by Vagdevi Kommineni通过瓦格德维科米尼(Vagdevi Kommineni) 如何构建识别手语手势的卷积神经网络 (How to build a convolutional neural network that recognizes sign language gestures) Sign language has been a major boon for people who are h…

spring—第一个spring程序

1.导入依赖 <dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.0.9.RELEASE</version></dependency>2.写一个接口和实现 public interface dao {public void save(); }…

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

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

基础 之 数组

shell中的数组 array (1 2 3) array ([1]ins1 [2]ins2 [3]ins3)array ($(命令)) # 三种定义数组&#xff0c;直接定义&#xff0c;键值对&#xff0c;直接用命令做数组的值。${array[*]}${array[]}${array[0]} # 输出数组中的0位置的值&#xff0c;*和…

Linux_异常_08_本机无法访问虚拟机web等工程

这是因为防火墙的原因&#xff0c;把响应端口开启就行了。 # Firewall configuration written by system-config-firewall # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m st…

Building a WAMP Dev Environment [3/4] - Installing and Configuring PHP

Moved to http://blog.tangcs.com/2008/10/27/wamp-installing-configuring-php/转载于:https://www.cnblogs.com/WarrenTang/archive/2008/10/27/1320069.html

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…

2019 css 框架_宣布CSS 2019调查状态

2019 css 框架by Sacha Greif由Sacha Greif 宣布#StateOfCSS 2019调查 (Announcing the #StateOfCSS 2019 Survey) 了解JavaScript状况之后&#xff0c;帮助我们确定最新CSS趋势 (After the State of JavaScript, help us identify the latest CSS trends) I’ve been using C…

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

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

spring— Bean标签scope配置和生命周期配置

scope配置 singleton 默认值&#xff0c;单例的prototype 多例的request WEB 项目中&#xff0c;Spring 创建一个 Bean的对象&#xff0c;将对象存入到 request 域中session WEB 项目中&#xff0c;Spring 创建一个 Bean 的对象&#xff0c;将对象存入session 域中global sess…

装饰器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…

Windows下安装Python模块时环境配置

“Win R”打开cmd终端&#xff0c;如果直接在里面使用pip命令的时候&#xff0c;要么出现“syntax invalid”&#xff0c;要么出现&#xff1a; pip is not recognized as an internal or external command, operable program or batch file. 此时需要将C:\Python27\Scripts添加…

播客2008

http://blog.tangcs.com/2008/12/29/year-2008/转载于:https://www.cnblogs.com/WarrenTang/articles/1364465.html

linear在HTML的作用,CSS3里的linear-gradient()函数

linear-gradient() 函数用于创建一个线性渐变的 "图像"。为了创建一个线性渐变&#xff0c;你需要设置一个起始点和一个方向(指定为一个角度)的渐变效果。你还要定义终止色。终止色就是你想让Gecko去平滑的过渡&#xff0c;并且你必须指定至少两种&#xff0c;当然也…

golang底层深入_带有Golang的GraphQL:从基础到高级的深入研究

golang底层深入by Ridham Tarpara由里德姆塔帕拉(Ridham Tarpara) 带有Golang的GraphQL&#xff1a;从基础到高级的深入研究 (GraphQL with Golang: A Deep Dive From Basics To Advanced) GraphQL has become a buzzword over the last few years after Facebook made it ope…

spring—Bean实例化三种方式

1&#xff09; 使用无参构造方法实例化 它会根据默认无参构造方法来创建类对象&#xff0c;如果bean中没有默认无参构造函数&#xff0c;将会创建失败 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.o…