实验目的:
本实验通过在PC电脑上同时运行3个虚拟机,一个为master节点,两个slave节点。 
 
搭建环境
主机:mac os 10.10
 
OS:CenOS 6.5
虚拟机:VMware fusion
 
 
一、虚拟机配置安装
     本实验采用三台虚拟机作为分布式模拟,因此建立了三台虚拟机。每台虚拟机分别分配1g内存,15G硬盘空间。分别命名为Node1(master192.168.0.1),       Node2(slave192.168.0.2),Node3(slave192.168.0.3
修改/etc/hosts,添加
192.168.0.1 Node1
192.168.0.2 Node2
192.168.0.3 Node3
     1.虚拟机OS安装
  • 三台虚拟机安装linux(CenOS 6.5)
  • 关闭防火墙、iptables(在root权限下,运行chkconfig iptables off永久关闭防火墙,然后运行service iptables status查看防火墙运行状态)
     2.网络配置
  • 由于在局域网环境进行实验,因此虚拟机的网络适配器选择桥接模式(虚拟机-网络适配器-桥接模式)。
  • 同时选择网络适配器设置(虚拟机-网络适配器-网络适配器设置),选择“连接网络适配器”
  • 静态ip设置:局域网可以自行给每台主机设置静态ip,在网络里选择ipv4为手动模式,进行ip配置。(我分别设置为192.168.0.1/2/3)
     验证:分别在三台主机上打开终端,进行ping其他主机的ip,若都能互相ping通,则设置成功
 
二、jdk安装
  在oracle官网下载java SE的jdk。下载后解压到主机上,由于jdk安装网上很多,因此不再细讲jdk安装。
  验证:在终端输入java -version后有提示说明安装成功
 
三.SSH免密码登陆
  由于在互相远程操作的话,我们使用ssh [ip]命令进行ssh登录,需要输入远程主机的密码才能登陆。因此要将ssh设置为免密码登陆。
  在设置的时候要做两方面ssh免密码登陆,一方面是自己登陆到自己(localhost)需要设置,另外一方面是需要将自己到其他各个主机之间都设置为ssh免密码登陆。
  其实ssh免密码登陆的设置,就是将本机的rsa公钥传到远程主机上,将公钥内容放到对方主机的/.ssh文件夹里面的authorized_keys里面,即可实现免密码登陆。
操作如下:
  首先关闭本机的防火墙及iptables等
  Node1(master)
  A:免密码登陆到其他主机
  1.回到用户主目录(cd ~)
  2.运行ssh-keygen -t rsa,一直回车   (生成rsa 密钥)
  3.进入生成的文件夹.ssh,运行scp id_rsa.pub   username@192.168.0.X:/home/username/.ssh/authorized_keys将pub公钥分别传给其他两个主机
  4.再次运行ssh [ip]则不需要密码登陆。
  B:免密码登陆到本机
  将id_rsa.pub里面的内容加到同目录下的 authorized_keys即可。
 
  同理,将其余两个节点都设置为互相ssh免密码登陆。
 
[其实不用这么麻烦,可以将其与两个slave和master自己的id_rsa.pub都加到master的authorized_keys里,然后master的这个authorized_keys都复制到其他节点的.ssh/里面就行了]
  验证:在各个主机上,输入[ssh 目标ip]都不用输入密码,直接登录
 
四、Hadoop配置
  非常重要的来了。中间遇到各种问题,由于查的各种资料不靠谱,搞了一周才把这步搞定。
  1.hadoop下载
    首先,毫无疑问我们得去官网上下载hadoop的包。http://mirror.bit.edu.cn/apache/hadoop/common/
    在界面中,我选择的是2.7.0的版本。选择下载hadoop-2.7.0.tar.gz(当然也能复制下载链接用wget,都一样)
  2.解压hadoop,将其放到用户主目录下,命名为hadoop
  3.配置hadoop文件
    A.配置环境变量
    打开/etc/profile,编辑如下
#set Java   JAVA环境变量
export JAVA_HOME=/usr/java

export JAVA_BIN=/usr/java/bin
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATH
export JAVA_LIBRARY_PATH=/home/renjie/hadoop/lib/native

#set Hadoop hadoop环境变量
export HADOOP_HOME=/home/renjie/hadoop
export PATH=$PATH:HADOOP_HOME/bin

立即生效:source /etc/profile

   B.在hadoop目录下,分别建立tmp、dfs、dfs/name、dfs/data文件夹

   C.配置hadoop环境文件

    修改hadoop/etc/hadoop/hadoop-env.sh,取消export JAVA_HOME=/usr/java的注释,并且配置java的绝对路径

    修改hadoop/etc/hadoop/yarn-env.sh,同样将java路径配置为绝对路径

   D.修改hadoop/etc/hadoop/core-site.xml

<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.0.1:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/renjie/hadoop/tmp</value>
</property>
</configuration>

  E.修改hadoop/etc/hadoop/hdfs-site.xml

<configuration>
<property>
<name>dfs.nameservices</name>
<value>Node1</value>
</property>
<property>
<name>dfs.ha.namenodes.Node1</name>
<value>Node1</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/renjie/hadoop/dfs/data</value>
</property><property>
<name>dfs.namenode.secondary.http-address</name>
<value>Node1:9001</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>

<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>

  F.修改hadoop/etc/hadoop/mapred-site.xml

<configuration>
<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>
<property>
<name>yarn.resourcemanager.address</name>
<value>192.168.0.1:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>192.168.0.1:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>192.168.0.1:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>192.168.0.1:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>192.168.0.1:8088</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>768</value>
</property></configuration>

  G.修改hadoop/etc/hadoop/slaves

  其中注销掉localhost,添加

  Node2

  Node3

五、分发hadoop

  将配置好的hadoop分发到其他节点。

  在用户主目录下,scp -r hadoop username@192.168.0.2:/home/username     //将当前目录下的hadoop文件夹传到192.168.0.2的username用户文件夹下。剩下节点也这样操作

六、初始化

  进入hadoop目录。运行bin/hadoop namenode -format 若最后出现success,则成功初始化

七、运行hadoop

  在master上,进入hadoop/sbin,运行./start-all.sh,运行hadoop

  这个时候如果hadoop没有配置好的话,可能会进行报错。这一步运行后,提示中不能出现任何错误。我做的时候运行这一步,出现了

WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform...
using builtin-java classes where applicable
这种情况是没有找到本地库。解决方案:http://dl.bintray.com/sequenceiq/sequenceiq-bin/。在这个网站下载对应的版本包。下载后解压,将里面的文件覆盖到hadoop/lib/native/就行。 最后成功运行后,输入jps。出现此时运行的程序,若出现

10914 Jps
9112 ResourceManager
8862 NameNode

则master成功

在slave上,运行jps,若出现

2326 DataNode
3423 Jps

则slave成功。

至此,hadoop成功运行。接下来可以运行example了

 

Hadoop 2.7.0模拟分布式实验环境搭建[亲测]的更多相关文章

  1. hadoop_spark伪分布式实验环境搭建和运行实例详细教程

    hadoop+spark伪分布式环境搭建 安装须知 单机模式(standalone): 该模式是Hadoop的默认模式.这种模式在一台单机上运行,没有分布式文件系统,而是直接读写本地操作系统的文件系统 ...

  2. Hadoop2.0伪分布式平台环境搭建

    一.搭建环境的前提条件 环境:ubuntu-16.04 hadoop-2.6.0  jdk1.8.0_161.这里的环境不一定需要和我一样,基本版本差不多都ok的,所需安装包和压缩包自行下载即可. 因 ...

  3. selenium + python自动化测试环境搭建--亲测

    环境准备: 1.下载所学安装包: setuptools https://pypi.python.org/packages/2.7/s/setuptools/ selenium https://pypi ...

  4. 操作系统内核Hack:(一)实验环境搭建

    操作系统内核Hack:(一)实验环境搭建 三四年前,心血来潮,入手<Orange's:一个操作系统的实现>学习操作系统内核,还配套买了王爽的<汇编语言(第二版)>和<80 ...

  5. Apache Spark1.1.0部署与开发环境搭建

    Spark是Apache公司推出的一种基于Hadoop Distributed File System(HDFS)的并行计算架构.与MapReduce不同,Spark并不局限于编写map和reduce ...

  6. hadoop2.7.3+spark2.1.0+scala2.12.1环境搭建(4)SPARK 安装

    hadoop2.7.3+spark2.1.0+scala2.12.1环境搭建(4)SPARK 安装 一.依赖文件安装 1.1 JDK 参见博文:http://www.cnblogs.com/liugh ...

  7. Nginx配置多个基于域名的虚拟主机+实验环境搭建+测试

    标签:Linux 域名 Nginx 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://xpleaf.blog.51cto.com/9 ...

  8. hadoop3.1.0 window win7 基础环境搭建

    https://blog.csdn.net/wsh596823919/article/details/80774805 hadoop3.1.0 window win7 基础环境搭建 前言:在windo ...

  9. Kafka 0.7.2 单机环境搭建

    Kafka 0.7.2 单机环境搭建当下载完Kafka后,进行解压,其目录结构如下: bin config contrib core DISCLAIMER examples lib lib_manag ...

随机推荐

  1. 0003_Linux基础之常用命令

    1.pwd:查看当前所在目录 2.cd :切换目录 3.ls:查看当前目录下的文件及文件夹: 4.ls -l :列出当前目录下文件及详细信息         drwxr-xr-x   第一个字符为d则 ...

  2. nohup开机自启脚本

    #!/bin/bash cd /root/xcloud/ str=$"/n" sstr=$(echo -e $str) nohup ./deploy >>/dev/nu ...

  3. poj 2769 感觉♂良好 (单调栈)

    poj 2769 感觉♂良好 (单调栈) 比尔正在研发一种关于人类情感的新数学理论.他最近致力于研究一个日子的好坏,如何影响人们对某个时期的回忆. 比尔为人的一天赋予了一个正整数值. 比尔称这个值为当 ...

  4. 2014-10-4 NOIP模拟赛

    1.某种密码(password.*) 关于某种密码有如下描述:某种密码的原文A是由N个数字组成,而密文B是一个长度为N的01数串,原文和密文的关联在于一个钥匙码KEY.若KEY=∑▒[Ai*Bi],则 ...

  5. 用户唯一性验证(ajax)

    验证用户添加或者修改时用户名的唯一性: 验证时机:用户名改变时,表单提交时. 1.jsp页面:(前端) <%@ page contentType="text/html;charset= ...

  6. 基于 Laravel Route 的 ThinkSNS+ Component

    这里是传送门: <ThinkSNS+ 基于 Laravel master 分支,从 1 到 0,再到 0.1[ThinkSNS+研发日记系列一]> <基于 Laravel 开发 Th ...

  7. 洛谷P2136 拉近距离

    题目背景 我是源点,你是终点.我们之间有负权环. --小明 题目描述 在小明和小红的生活中,有\(N\)个关键的节点.有\(M\)个事件,记为一个三元组\((S_i,T_i,W_i)\),表示从节点\ ...

  8. JS高级学习历程-6

    PHP菜鸟学习历程-6 [闭包案例] 1 闭包创建数组 <!DOCTYPE html> <html lang="en"> <head> < ...

  9. 链家H5项目总结

    在此次项目中,使用的是高度百分比.对于适配这一块确实少了很多. 1.如果是用高度百分比的话.则img需要写成这样的样式. img{ width:auto; height:100%; display: ...

  10. Leetcode:根据身高重建队列

    题目 假设有打乱顺序的一群人站成一个队列. 每个人由一个整数对(h, k)表示,其中h是这个人的身高,k是排在这个人前面且身高大于或等于h的人数. 编写一个算法来重建这个队列. 注意: 总人数少于11 ...