写在前边的话:

最近找了一个云计算开发实习生的工作,本以为来了会直接做一些敲代码,处理数据的活,没想到师父给了我一个课题“基于质量数据的大数据分析”,NameNode问题来了首先要做的就是搭建这样一个平台,毫无疑问,底层采用hadoop集群,在此之上,进行一些其他组件的安装和二次开发


hadoop伪分布部署参考:点击打开链接

hadoop单机版部署参考:点击打开链接

一:安装VM 12.x

下载地址:链接:http://pan.baidu.com/s/1c2KA3gW密码:3r67

二:安装CentOS6.5

这里采用3台机器,其对应的IP和主机分别如下(他们的用户名都是master)

主机名 ip 对应的角色
master1 192.168.48.130 NameNode
slave1 192.168.48.131 Datanode1
slave2 192.168.48.132 Datanode2

这里我们可以采用安装一台虚拟机,然后进行克隆的方法,克隆出五台机器,然后修改对应的ip地址和用户名,VM安装虚拟机有三种网络连接方式,分别是桥接,NAT,仅主机模式,这里采用默认设置,即使用NAT,NAT模式下实用的是Vmnet8

修改IP地址:

1:查看本机IP

我的电脑ip地址为:192.168.69.30

Vmnet8的ipv4地址为:192.168.48.1

2:确定虚拟机IP地址范围和网关地址,下图红线标示


3:打开虚拟机终端

输入:sudo vim /etc/sysconfig/network-scripts/ifcfg-eth0

修改后的信息如下,需要修改的地方有红线标示出来了:

eth0--->eth1

dhcp--->static

HWADDR MAC地址修改为本虚拟机的mac地址,mac地址查看 ip addr,选择eth1那个

之后便可以使用ifconfig查看ip了

修改主机名和对应IP:

1:编辑hosts文件

sudo vim /etc/hosts

清空内容,添加 192.168.48.129 master

2:便捷network文件

sudo vim /etc/sysconfig/network

修改HOSTNAME为master

重启生效

三:安装hadoop集群

0:每台机器上关闭防火墙和selinux

永久关闭防火墙:chkconfig --level 35 iptables off

永久关闭selinux:

vim /etc/selinux/config

找到SELINUX 行修改成为:SELINUX=disabled:

1:每台机器上安装java环境(jdk-7u51-linux-x64.tar

解压到指定目录,这里我选择的是/opt

tar -zxvf jdk-7u51-linux-x64.tar /opt

修改文件夹名字为java

mv /opt/jdk1.7.0_51 /opt/java

配置环境变量,打开/etc/profile文件,加入java的路径

vim /etc/profile (如果没有权限可以前边加入sudo)

文件前边写上:

export JAVA_HOME=/opt/java
export CLAsspATH=.:%JAVA_HOME%/lib/dt.jar:%JAVA_HOME%/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

2:配置每台机器的主机名

清空每台机器上的/etc/hosts文件内容,添加如下:

192.168.48.130 master1
192.168.48.131 slave1
192.168.48.132 slave2

执行完之后source/etc/hosts

同时修改每台机器上的/etc/sysconfig/network 中hostname对应的用户名(此步骤一定要注意,否则容易找不到主机名)

3:给master用户增加sudo权限

1)切换到root用户,su 输入密码

2)给sudoers增加写权限:chmod u+w /etc/sudoers

3)编译sudoers文件:vim /etc/sudoers
在root ALL=(ALL)ALL下方增加 master ALL=(ALL)nopASSWD:ALL
4)去掉sudoers文件的写权限:chmod u-w /etc/sudoers

4:每台机器都切换到master用户下

su master

5:配置SSH免密码登录

进入~/.ssh目录

每台机器执行:ssh-keygen -t rsa,一路回车

生成两个文件,一个私钥,一个公钥,在master1中执行:cp id_rsa.pub authorized_keys

a:本机无密钥登录

修改authorized_keys权限:chmod 644 authorized_keys

此时重启ssh服务:sudo service sshd restart

ssh master1

yes!!!

b:master与其他节点无密钥登录

从master中把authorized_keys分发到各个结点上(会提示输入密码,输入thinkgamer即可):

scp /home/master/.ssh/authorized_keys slave1:/home/master/.ssh

scp /home/master/.ssh/authorized_keys slave2:/home/master/.ssh

然后在各个节点对authorized_keys执行(一定要执行该步,否则会报错):chmod 644 authorized_keys

测试如下(第一次ssh时会提示输入yes/no,输入yes即可):

6:解压hadoop到指定目录(我这里使用的是/opt/目录)

tar -zxvfhadoop-2.7.0.tar.gz /opt/hadoop-2.7.0

重命名文件:mv /opt/hadoop-2.7.0 /opt/hadoop

7:修改配置文件

hadoop-env.sh:

       export JAVA_HOME=/opt/java

core-site.xml:

<configuration>
  <property>
    <name>fs.default.name</name>
    <value>hdfs://master1:9000</value>
  </property>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/hadoop/tmp</value>
  </property>
</configuration>

hdfs-site.xml:

<configuration>
  <property>
    <name>dfs.replication</name>
    <value>2</value>
  </property>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/opt/hadoop/dfs/name</value>
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/opt/hadoop/dfs/data</value>
  </property>
</configuration>
mapred-site.xml:

<configuration>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
  <property>
    <name>mapreduce.jobhistory.address</name>
    <value>Master:10020</value>
  </property>
  <property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>Master:19888</value>
  </property>
</configuration>
yarn-site.xml:

<configuration>

<!-- Site specific YARN configuration properties -->
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
  <property>
    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  </property>
  <property>
    <name>yarn.resourcemanager.address</name>
    <value>master1:8032</value>
  </property>
  <property>
    <name>yarn.resourcemanager.scheduler.address</name>
    <value>master1:8030</value>
  </property>
  <property>
    <name>yarn.resourcemanager.resource-tracker.address</name>
    <value>master1:8031</value>
  </property>
  <property>
    <name>yarn.resourcemanager.admin.address</name>
    <value>master1:8033</value>
  </property>
  <property>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>master1:8088</value>
  </property>
</configuration>

8:编辑slaves文件

清空加入从节点的名字

slave1

slave2

9:将hadoop分发到各个节点(因为权限问题,先将该文件夹分发到各个节点的/home/master目录下,再进入各个节点将文件夹移到/opt下)

scp -r /opt/hadoop slave1:/home/master/hadoop,进入该节点执行:sudo mv hadoop /opt/

scp -r /opt/hadoop slave2:/home/master/hadoop,进入该节点执行:sudo mv hadoop /opt/

10:在master节点格式化hdfs

bin/hdfs namenode -format

看见status 0表示安装成功

四:web页面查看

1:http://192.168.48.130:8088/

2:http://192.168.48.130:50070/



五:问题记录

1:linux文件夹权限

eg:

第一列共有十位
第一位,d:表示是一个目录,-:表示一个普通的文件
第2-4位:rwx:分别表示读,写,执行,这里显示为rwx表示文件所有者对该文件拥有读写执行的权利(补充一点,rwx用数字表示为4,2,1)
第5-7位:r-x:表示与该文件所有者的同组用户拥有该文件的读和执行的权限
第8-10位:r-x:表示其他组的用户对该文件拥有读和执行的权利

2:linux基本命令

查看用户所属用户组 id hostname / groups hostname

vim命令: 查找:/xxxx

清空: gg dG

参考: http://www.cnblogs.com/laov/p/3421479.html

http://www.aboutyun.com/thread-7781-1-1.html

http://blog.sina.com.cn/s/blog_821d83720102vkx5.html

http://www.aboutyun.com/thread-10572-1-1.html(HA配置)

VM+CentOS+hadoop2.7搭建hadoop完全分布式集群的更多相关文章

  1. XCode 5远程调试OS X应用程序

    我正在使用XCode5.0.2在OSX10.9上开发一个应用程序并获得了一个我无法在这台开发机器上重现的错误报告.但是,我有一个10.7虚拟机出现崩溃,所以我想调试那里没有在这个VM中安装XCode.我搜索了有关远程调试的信息,但我没有得到有用的答案.我甚至担心它根本不受支持.但无论如何我还是要问一下.或者,除了执行完整的XCode安装等之外,还有哪些其他选项来调试这样的问题?

  2. cinder swift的区别

    [原]OpenStack入门以及一些资料之2014-4-29阅读1144评论0注:本文内容均来自网络,我只是在此做了一些摘抄和整理的工作,来源均有注明。它拥有自己的文件系统,通过网络文件系统NFS或通用文件系统CIFS对外提供文件访问服务。Raid,不同的raid等级在增加数据可靠性以及增加存储器(群)读写性能间取得平衡。卷组描述区域,和磁盘将包含分区信息的元数据保存在位于分区的起始位置的分区表中一样,逻辑卷以及卷组相关的元数据也是保存在位于物理卷的VGDA中。

  3. OpenStack中Swift和cinder区别

    swift是objectstorage,将object存储到bucket里,你可以用swift创建container,然后上传文件,例如视频,照片,这些文件会被replication到不同服务器上以保证可靠性,swift可以不依靠虚拟机工作。如果你把这个虚拟机terminate了,这个volume和里边的数据依然还在,你还可以把它接到其他虚拟机上继续使用里边的数据。cinder创建的volume必须被接到虚拟机上才能工作。

  4. 使用 Swift语言进行 Hadoop 数据流应用程序开发

    如果您发现了问题,或者希望为改进本文提供意见和建议,请在这里指出.在您开始之前,请参阅目前待解决的问题清单.简介本项目包括两类Hadoop流处理应用程序:映射器mapper和总结器reducer。如上所示,在Hadoop上编写流处理程序是一个很简单的工作,也不需要依赖于特定的软件体系。

  5. swift分布式存储多节点部署

    1、机器192.168.1.211ProxyNode192.168.1.212StorageNode192.168.1.213StorageNode192.168.1.214StorageNode系统为SLES11sp12、配置软件源因为公司服务器无法连外网,所以配置局域网源和本地源来搭建环境上传ISO镜像文件到各台机器SLES-11-SP4-DVD-x86_64-GM-DVD1.iso每台机器挂

  6. Swift属性观察者在协议扩展?

    换句话说,我可以观察协议扩展中的属性的更改吗?这并不意味着它是不可能实现的,但如果我们有这样的话可能会有点令人惊讶.

  7. 解决Swift 3中缺少递归协议约束的问题

    Swift3目前对“递归协议约束”有一个限制.有一个公开的问题here,在here,here和here有类似的讨论.但是,我仍然没有看到应该如何解决这个限制.可能吗?或者我需要开始引入较不严格的协议,直到在Swift中实现?会出现.然而,通过这种方法,我们可以得到正确的类型,而无需做很多专业化.当然,可以添加更多的协议来获得更多的抽象,但同样的解决方案将会适用.由于某些原因/语言缺陷,您必须在View.foo中分配委托时使用显式转换:viewmodel.delegate=selfas?

  8. Android VM不允许我们分配xx字节

    我正在开发一款安卓游戏.当我尝试使用3张图像作为背景时问题就出现了.图像为1280x720px和100kb大.图像真的不是那么大,所以我有点困惑,为什么它们应该导致内存问题.注意:屏幕分辨率为800×400,因此我无法通过因子2调整图像大小,因为它是suggestedonandroiddeveloper注意:我正在使用HTC欲望手机(这里崩溃来了),我也尝试过在三星galaxyS1和三星上运行正常

  9. 在Android中编译java文件后,注释会发生什么?

    Android编译器如何工作?它是否在编译时删除了Java代码和AndroidXML文件中的注释?

  10. 为什么Android上的每个应用程序都有单独的VM(Dalvik / ART)实例?

    正如标题所述,为什么Android上的每个App都有单独的VM实例?(需要它)如果Android操作系统选择了单个虚拟机运行所有应用程序的模型,会发生什么?解决方法在单个进程中运行多个应用程序不起作用的原因有很多;这是两个:安全区.两个不相互信任的应用程序不应该能够查看彼此的内存,即使它们使用本机代码或反射.失败隔离.如果进程泄漏内存并崩溃,则只会损害自身.

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部