[BigData]关于Hadoop学习笔记第一天(段海涛老师)(三)

视频2:

hadoop的应用在电商,"浏览了该商品的人还看了","浏览了该商品的人最终购买的"...这些很多网站都有,就是用了相对廉价的hadoop技术.

还应用在信贷网站,银行不喜欢把钱交给个人,因为个人的信用审核比较繁琐.贷给你之后赚钱相对也少.用hadoop技术可以全方位的从你的淘宝购物,浏览哪些网站,行为轨迹......从海量的数据中可以分析的更全面.

Hadoop中的模块就相当于Maven下的几个子工程.

1.Hadoop Common:各种操作工具,没有业务功能,以下几种有业务功能.

2.HDFS ,存储海量的文件.

3.YARN ,作业调度和集群资源管理的.

4.MapReduce,基于YARN的.

其他的Hadoop相关的Apache项目

Ambari

Avro

Cassandra

Chukwa

HBase

Hive

Mahout 数据挖掘相关的

Pig 现在用的比较少.

Spark可以取代MapReduce....

Tez

ZooKeeper

=====================================

视频3(海量数据场景下的分布式运算):

hadoop最初起源于谷歌的论文,

下面是Google遇到的问题,网络爬虫收集到的全球的网页信息,存储在不同的机器上.

1.海量的信息,如何存储.

2.海量的信息,如何分析.

1.GFS是就用来做存储.

2.MapReduce就是用来做分析.

3.BigTable就用来存储索引信息.google的索引都非常的大.索引信息不是放在一个文件中,放一个文件会非常慢了.

BigTable相当于一个数据库.

后来Google公布了解决这个问题的三大论文.

Nutch()+Lucene == Google

分布式:逻辑上是一个完整的机器,但是是运行在不同的机器上.进程之间的相互通信.

==================================================

视频4(hdfs实现机制):

解决海量数据的存储.可以通过共享文件夹的问题.

1.如果一台主机挂了怎么办.

2.都访问一台主机,IO是有限的,访问量大了,吞吐量是有一个瓶颈的.

3.多台主机,统计不方便,不适合海量数据的分析.每台机器的信息相对局部,要用到别的机器的信息相对方繁琐.

如下图:

HDFS:hadoop分布式文件系统

Hadoop生态系统中用来解决海量数据存储的框架.

什么是文件系统?
读取文件在java中new InputStream 其实底层调用的是Windows中文件系统提供的服务(不用关注第几个磁道,第几个扇区).

单机的文件系统(本地文件系统)

Windows是NTFS 磁盘格式.Linux是EXT4.

浏览Windows或者Linux中的文件,双击相应都是NTFS或者EXT4提供给用户的界面.

HDFS就是在很多的本地文件之上再抽象一层,提供统一的界面给,给更上层的软件.HDFS就是在很多的文件系统之上.

在HDFS文件系统中,一个文件的路径:hdfs://master:port/aa/bb/cc.data 而且HDFS会对文件进行切分.放到其下的某台服务器上.

到底放在其下的哪个服务器上会有相应的策略.

客户端访问读取这个文件的时候,HDFS分配了一个角色去管理分布在各个服务器上的文件.这个角色存储的就是文件的映射关系.

客户端读取文件就先去访问这个节点(其实就是NameNode).

&

==================================

视频5(hadoop集群搭建服务器准备):

安装

&

安装VMware然后在VMware中安装CentOS.配置CentOS的网络.

网络适配器有三种连接方式.(NAT&Host-only&Custom,关于这三者的不同,之后我会再总结的.)

段海涛老师这里使用的是Custom的方式

VMent0这个适配器对应的是桥接Bridged.

VMnet8这个适配器的对应的NAT方式.

Host Only和Custom没有单独的网络适配器与之对应.

======>自定义Cumstom的虚拟机网络配置(开始)===============================>

看虚拟网关的地址:

记住上面的虚拟网关的地址.然后到Windows中的"网络和共享中心"中设置.

======>自定义Cumstom的虚拟机网络配置(结束)===============================>

这样的话Window中的网络配置就完成了.接着配置VMWare中的Linux系统中的网络配置.

启动Linux之后 在Terminal上进行修改一些配置文件.

su 切换到root用户下  密码是hadoop(仅限老师给的这个centos)

从root@localhost 这里也可以看出是root用户.   用命令修改 etc目录下的inittab 文件,这个文件控制着CentOS的启动的方式.

vi /etc/inittab

然后回车会看到如下的提示:

系统默认的是5 这个级别(Xll是图形界面的级别).只需要把焦点处的5修改成3就可以了.

千万不要修改成0或者是6.

选0是启动之后不久久关机.选6是一直在重启.

这样设置成3级别(全部的多用户模式)这样重启reboot之后就没有GUI界面了.只剩下命令行,Linux作为服务器就要使用他的强大的命令行.

重启之后:

通过[hadoop@localhost ~]这个可以看出当前的用户是hadoop,当前的主机名叫localhost.在真实的场景下,集群里会有很多的机器的,不能都使用这个localhost的主机名(应该有对应有序的编号),每台对应的主机名都是要修改的.

在进入Linux的无GUI界面之后,鼠标是没有的,这个时候移动鼠标是没有任何反应的,怎么回到母体Windows上来呢?

VMWare在左下角是有提示的,不注意看,还真看不到.  当鼠标出来之后,快速进入VMWare中是Ctrl+G.

修改配置文件要用root用户,进入root用户每次都要切换.每次切换都很麻烦,可以用sudo命令.但是普通用户sudo命令是要首先配置一下...如下:命令su  密码:hadoop

[root@localhost hadoop]分别代表用户  主机名  当前路径.....后面用pwd显示了一下当前工作目录(present work directory)

然后修改如下:

在原本有的root下 建立一个hadoop用户.

在Linux下,改任何东西都是改文件,不像Windows中那样有时候要修改注册表,注册表中有二进制.十六进制的.

Linux普通用户修改系统配置需要提供密码.

修改该Linux机器的主机名称(HOSTNAME)

修改成:

这个地方名字可以任意起,还可以按照包的名字来命名com.itcast......server01....

修改之后不会立马生效,需要重启....

输入命令:

这样就会发现主机名字已经更改了.

修改主机的名字这样的好处就是以后在访问的这台主机的时候不用输入IP地址,直接通过主机名字就可以了.但是通过主机名字访问机器的本质还是通过IP地址来访问的.类似于Web网站的访问,有一个DNS域名解析器.

Linux类似于Windows,通过配置系统的hosts文件来配置就可以实现局域网内通过主机名来访问任意一台主机.把所有局域网内的主机名和IP写在任意一台机器的hosts文件里面.

在没有配置之前ping server01是ping不通的.

修改hosts文件(还有主机名和IP的映射列表)

打开之后显示如下:

既存的这两个可以删除没有什么作用.(VI下快速删除一行的方式是,光标移动到这一行的末尾,然后按下两个小d就可以了.dd)

直接加一个:

先查看本机的IP地址:

这个地址是自动获取的.我们需要固定这台机器的IP这样设置的hosts文件IP和主机名的映射才有意义.

怎么固定机器的IP地址呢?

然后:

注意这个地方的配置Network的时候要注意,一般ipconfig之后会出现两个(eth0或者eth1 和 lo)NetWorkConfiguration具体是配置eth0还是配置eth1是根据ipconfig之后显示有什么来的.

老师这个地方是eth0,我的却是eth1.所以在这个图形化界面再配置eth0是没有效果的(最后发现这一点配置了eth1). 

注意Default gateway IP 是和之前的设置一样.

设置保存之后还是要重启才生效,可以重启服务器(机器)但是不建议,服务器一般不要重启

还可以重启网络服务.如下图:

这样IP地址固定住了修改hosts映射列表.

这个时候再ping server01 可以正常ping通.但是pingserver02还是不可以的.

============================================================================

视频6:hadoop集群搭建服务器准备2

现在已经在linux服务器上配置好了,可以在windows中配置一个远程的终端来操作控制linux,比直接操作linux更加方便.

按照上述完成Linux的配置之后,发现SecureCRT连接Linux总是报告Connection time out.....

上图是连接成功的样子....

然后调查到Linux中发现ifconfig eth1这个网口中有没有了ipv4的地址,显示的是ipv6的....百度用下面的方法解决.

修改配置文件 /etc/sysconfig/network-scripts/ifcfg-eth1,
ONBOOT为yes。
重启network服务

在Linux中安装JDK.

可以用图形化界面工具FileZilla来把windows上的东西传到Linux上.(类似的工具还有Windows-SCP)

在SecureCRT上也有类似的功能.

用put命令上传到上传到Linux

上传到了用户的主目录下了:

建立一个名字叫app的文件夹专门用于安装hadoop相关的软件. (建立一个hadoop用户专门用于hadoop相关的操作)

还有tar 的解压命令.

解压之后再app中多了一个文件夹.

然后进入到这个jdk1.7.0_65文件夹中进行环境变量的配置.

进入这个profile文件之后,调到文档的最后(调到文档的最后一行的首个字符,shift+gg;如果是两个gg是跳刀文档的第一行的首个字符.相当于Excle中的Ctrl+Home)

加入两个export输出变量.

然后用source命令还使其生效,否则要重启机器.再用java命令java -version来判断是否成功.

切回用户主目录:

直接cd就可以切回用户主目录.

集群有大的有上百台机器,小的有也有几十台,一台台的安装是不现实的,大都部署完一台之后的整个的安装目录全部复制到其他的机器上去,也有的会写一些自动化的脚本去部署.

=======================================================关于SecureCRT的字体配置(开始)==================================

&

=======================================================关于SecureCRT的字体配置(结束)==================================

下面安装hadoop

和上面安装jdk一样.

一开始我用tar -zxvf 命令的时候没有指定 -C /app参数,,hadoop的安装包就自动安装到了当前目录下. 为了保持和老师的一致,和安装路径的统一,要删除这次的解压.

用到了命令rm -rf + 文件的全路径.....如下图:

\

上面的截图最后写错了,应该是 -C app/

hadoop也是许要配置的.附录hadoop文件夹下目录结构:

bin是一些普通的操作,sbin是系统级别的操作,脚本(系统的启动,停止).

脚本是什么?

Tomcat中的bin中有start.bat 等就是一个可以执行的脚本.

Linux下的etc文件夹放的都是一些和配置相关的文件.

hadoop相关的配置文件和Linux一样都放在了etc文件夹中.

share中放的是hadoop中的jar包.

share文件夹下还有doc 和 hadoop两个文件夹,

hadoop文件夹下还有common,hdfs,httpfs等相关jar包的文件夹.....

httpfs是提供http方式访问hdfs的rest API....rest是软件开发领域提供服务的方式.多个url请求你的类....

url请求Action....Action就是一个类......不具体说了,具体百度.

lib是本地库. hadoop有写是调用的底层操作系统的API

hadoop在Linux上是没有兼容性问题的,但是在Windows中是有一些兼容性问题的.当然我们一般不会把hadoop部署在Windows上.

(我下次重新配置的时候找了一段时间这个路径才找到,路径是/homme/app/hadoop-2.4.1/etc/hadoop)

pwd:

&

修改hadoop-env.sh中的一点配置项:

修改这个JAVA_HOME,因为这个是取得的环境中${JAVA_HOME}中的值,有的时候取不到,我们在这里就直接写成固定的值.因为你集群中的每台机器作为结点的配置是完全一样的,这里

可以写固定的值.

之后再修改第二个文件core-site.xml:

core(公共的)运行的参数....hdfs的配置参数....mapreduce运行的配置参数....一个个的进行配置.

core-site.xml文件中可以配置的东西有很多很多.你不可能全部都记住的.老师直接去官网上去找了.hadoop.apache.org中选择一个版本,在Configuration中去找的.

点击之后会出现对应的可以配置的name和value.

hadoop的临时目录在生产环境中 一定要做修改的.默认是放在Linux的temp文件中,Linux的temp在重启系统之后就会被清除掉了.

hadoop的临时目录的作用,hadoop在工作的时候那些进程在本地读写文件.如果temp文件中重启就不见了...所以这里要指定一下...

配置项的名字是<name>hadoop.tmp.dir</name>

在生产环境中,我们会把它单独的配置在一个挂载点.一个单独的挂载点就可以挂载很多的硬盘.这样这个目录下的空间可以去动态的扩展.

工作目录存放的block越多.空间占用的越多.

这里不是一个真实的生产环境,配置随意.

保存退出就可以了.

之后再改第三个文件(hdfs-site.xml):

配置副本的数量.这里配置两个.

之后再修改第四个文件(mapred-site.xml.template)

但是修改之前一定要修改这个文件,否则hadoop在运行的时候是 会忽略掉这种带template结尾的文件的.

Linux中怎么修改文件的名字?

这样修改完之后进行修改文件中内容.

之后修改地五个文件yarn-site.xml

1.指定yarn的主节点要放在哪台主机上.

2.规定从节点的行为(现在先不解释)

这样hadoop就可以启动起来了,但是最好还再配置一个文件 slaves

因为上面我们在配置文件中规定了哪些是主节点,主机,但是哪些是从节点却没有写.就在slaves中配置好.

写上的话在启动的时候就帮你启动从节点(需要自己手动启动起来),不写的话就不帮你启动从节点.所以这个文件不是运行必须的.

打开这个文件默认是localhost

配置后:

这之后我们可以启动hadoop了.但是我们要把一些配置复制到另外的两台机器中.

注意要切换到app目录下复制...还有路径要写对.

scp  s是指的是ssh协议.....

接着再拷贝到另外的两台(我的虚拟机配置可能就是有问题,只能支持一台和server01连接)

后来经过段老师给我远程debug,终于发现了我配置的问题所在.....

具体原因是因为:

我的后三台虚拟机都是拷贝的同一个副本.

当时我为了省事,weekend02和weekend03都是拷贝的weeken01.所以这样就造成了,weekend01,02,03都有相同的设置,这个地方互相ping不通就是因为他们有相同的物理网卡.

造成了这个现象.老师也是花费了些时间,然后发现的这个问题,后来在虚拟机上删除网卡,然后再生成网卡就可以了.

在目录/home/hadoop/app/hadoop-2.4.1/bin 下 用bin下的hadoop脚本去格式化目录.

这种格式化是在本地文件系统之上的一种文件系统.其实是在你本地文件系统之中建立 一些文件和文件夹,来为以后hadoop的工作提供一些先决条件.

(格式化的时候出错......)

这个文件可配可不配......

====================通过Linux可视化UI配置伪分布式的Linux的配置(Host-only仅主机模式)(屌丝程序员专用)(开始)=====================================================

仅主机模式的安装设置.

&

&

获取IP地址的方式有种是DHCP的方式这样是动态获取的.每次启动虚拟机的IP地址就不一样了这里不要设置这种方式.采用Manual(手动手工的)

&

设置Windows的IP地址为

把Windows的IP地址设置成了192.168.8.100 这个时候也要把linux的IP改成192.168.8.X这两个IP地址必须是在同一个网段上.
如果你们公司有网管,不在同一个网段也可以进行通信,只不过要进行其他设置(是通过路由来实现不同网段的互相通信)
老师这个地方设置成了192.168.8.88,后面的知网掩码是255.255.255.0,网关是192.168.8.1(网关最后一位是1)
第二种设置IP的方式是在Terminal中输入"setup"命令然后"Network Configuration"...............

这样通过UI设置完IP之后和你的本地WindowsIP进行ping测试.相互ping通了那么说明没有问题了.

====================通过Linux可视化UI配置伪分布式的Linux的配置(屌丝程序员专用)(结束)=====================================================

[BigData]关于HDFS的伪分布式安装和虚拟机网络的配置的更多相关文章

  1. HBase伪分布式安装(HDFS)+ZooKeeper安装+HBase数据操作+HBase架构体系

    HBase1.2.2伪分布式安装(HDFS)+ZooKeeper-3.4.8安装配置+HBase表和数据操作+HBase的架构体系+单例安装,记录了在Ubuntu下对HBase1.2.2的实践操作,H ...

  2. 指导手册02:伪分布式安装Hadoop(ubuntuLinux)

    指导手册02:伪分布式安装Hadoop(ubuntuLinux)   Part 1:安装及配置虚拟机 1.安装Linux. 1.安装Ubuntu1604 64位系统 2.设置语言,能输入中文 3.创建 ...

  3. 【Hadoop】伪分布式安装

    创建hadoop用户 创建用户命令: sudo useradd -m hadoop -s /bin/bash 创建好后需要更改hadoop用户的密码,命令如下: sudo passwd hadoop ...

  4. HBase基础和伪分布式安装配置

    一.HBase(NoSQL)的数据模型 1.1 表(table),是存储管理数据的. 1.2 行键(row key),类似于MySQL中的主键,行键是HBase表天然自带的,创建表时不需要指定 1.3 ...

  5. Hadoop入门进阶课程1--Hadoop1.X伪分布式安装

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,博主为石山园,博客地址为 http://www.cnblogs.com/shishanyuan  ...

  6. Hadoop单机和伪分布式安装

    本教程为单机版+伪分布式的Hadoop,安装过程写的有些简单,只作为笔记方便自己研究Hadoop用. 环境 操作系统 Centos 6.5_64bit   本机名称 hadoop001   本机IP ...

  7. 一.Kylin的伪分布式安装

    一.伪分布式安装kylin 2018年4月15日 15:06 安装需要的环境 1. hadoop集群环境:由于安装的是CDH5.14.0的版本,所以相关组件都是跟5.14.0相关 2. spark采用 ...

  8. Hbase伪分布式安装

    前面的文章已经讲过hadoop伪分布式安装,这里直接介绍hbase伪分布式安装. 1. 下载hbase 版本hbase 1.2.6 2. 解压hbase 3. 修改hbase-env.sh 新增如下内 ...

  9. 伪分布式安装core-site.xml和hdfs-site.xml配置文件

    hadoop的伪分布式安装流程如下所示: 其中core-site.xml和hdfs-site.xml是两个很重要的配置文件. core-site.xml <configuration> & ...

随机推荐

  1. iOS 开发的9个超有用小技巧

    http://www.jianshu.com/p/221507eb8590 1.如何快速的查看一段代码的执行时间. 1 2 #define TICK   NSDate *startTime = [NS ...

  2. ocp 1Z0-043 131-205题解析

    131. Which three methods can you use to run an Automatic Database Diagnostic Monitor (ADDM) analysis ...

  3. CodeForces 689B Mike and Shortcuts (bfs or 最短路)

    Mike and Shortcuts 题目链接: http://acm.hust.edu.cn/vjudge/contest/121333#problem/F Description Recently ...

  4. (转)UML序列图总结

    序列图主要用于展示对象之间交互的顺序. 序列图将交互关系表示为一个二维图.纵向是时间轴,时间沿竖线向下延伸.横向轴代表了在协作中各独立对象的类元角色.类元角色用生命线表示.当对象存在时,角色用一条虚线 ...

  5. Spring入门(5)-自动装配Bean属性

    Spring入门(5)-自动装配Bean属性 本文介绍如何装配Bean属性. 0. 目录 ByName ByType constructor 默认自动装配 混合使用自动装配和显示装配 1. ByNam ...

  6. Linux 性能监控的18个命令行工具

    对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.在IT领域作为一名Linux系统的管理员工作5年后,我逐渐 认识到监控和保持系统启动并运行是多么的不容易.基于此原因,我 ...

  7. ActiveMQ JMS 在发邮件中的使用

    ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线.ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久 ...

  8. JMS开发(二):深入PTP,Pub-Sub两种模式

    1.PTP模型 PTP(Point-to-Point)模型是基于队列(Queue)的,对于PTP消息模型而言,它的消息目的是一个消息队列(Queue),消息生产者每次发送消息总是把消息送入消息队列中, ...

  9. Linux - 打印文件夹全部文件 代码(C)

    列出文件夹全部文件 代码(C) 本文地址:http://blog.csdn.net/caroline_wendy 首先配置环境,參考:http://blog.csdn.net/caroline_wen ...

  10. 【项目实例】android开发游戏音效代码实例

    //音效的音量 int streamVolume; //定义SoundPool 对象 private SoundPool soundPool; //定义HASH表 private HashMap< ...