在经过几天的环境搭建,终于搭建成功,其中对于hadoop的具体设置倒是没有碰到很多问题,反而在hadoop各节点之间的通信遇到了问题,而且还反复了很多遍,光虚拟机就重新安装了4、5次,但是当明白了问题之后才发现这都是无用功,有了问题应该找具体的解决方案,并不是完全的重装,这样不会明白问题是怎么解决的,除了费时费力没有多大的用处,接下来就把搭建的过程详细叙述一下。

环境配置:
计算机:
CPU-I7 2630QM
6G内存
256G SSD
虚拟机:
vmware workstation
系统:
ubuntu 14.04 LTS
节点:
192.168.1.150 master
192.168.1.151 slave1
192.168.1.151 slave2
参考:
  http://www.aboutyun.com/thread---.html
  http://my.oschina.net/u/2285247/blog/354449
  http://www.aboutyun.com/thread-5738-1-1.html
  http://www.aboutyun.com/thread-6446-1-1.html
安装步骤:
、安装虚拟机系统(安装1个即可,其余的可以通过克隆),并进行准备工作
、安装JDK,并配置环境变量
、克隆虚拟机系统,并修改hosts、hostname
4、配置虚拟机网络,使虚拟机系统之间以及和host主机之间可以通过相互ping通。
、配置ssh,实现节点间的无密码登录 
、master配置hadoop,并将hadoop文件传输到slave节点
、配置环境变量,并启动hadoop,检查是否安装成功

1、安装虚拟机系统,并进行准备工作

  安装虚拟机系统不用赘述,安装vmware——新建虚拟机——典型——选择镜像——设置账户密码——安装位置——配置——安装。

  当虚拟机安装成功后,默认的是nat模式,不要立即将网络模式切换到桥接模式下,这时nat模式下应该可以联网,先安装几个软件,以后需要用到,当然在桥接模式下也可以联网,但是桥接模式是要设置成静态IP的,局限性比较大,下载安装完以后,接下来就不用联网了。

#切换到root模式下
#刚开始root是默认不开启的,可以利用如下命令对root密码进行设置
sudo passwd root
#现在在root模式先安装vim,命令如下:
apt-get install vim
#安装ssh
apt-get install ssh
#这个步骤是可选的,用于更新,以及将ssh相关都安装
apt-get install openssh*
apt-get update

2、安装jdk,并配置环境变量

1)从oracle下载jdk安装包,并将安装包拖入到虚拟机当中

2)通过cd命令进入到安装包的当前目录,利用如下命令进行解压缩。

tar -zxvf jdk.....(安装包名称)

3)利用如下命令将解压后的文件夹移到/usr目录下 

#注意,这样移动到/usr以后就没有jdk1.8...这个目录了,是将这个目录下的所有文件全部移动到/usr/java下,
mv jdk1.8...(文件夹名称) /usr/java

4)配置环境变量

#切换到root模式下
su - root
#利用vim编辑/etc/profile(这个是对全体用户都起作用的)
vim /etc/profile
#将一下两句加入到其中,并保存退出
export PATH=$PATH:/usr/java/bin:/usr/java/jre/bin
export CLASSPATH=.:/usr/java/lib:/usr/java/jre/lib
#然后使profile生效
source /etc/profile
#试验java、javac、java -version

3、克隆虚拟机并修改三个虚拟机的hosts、hostname

1)克隆虚拟机时要注意一定要选择完整克隆

2)修改hosts(三个虚拟机都要改)

#root下用vim打开hosts
vim /etc/hosts
#将以下内容添加到hosts中
192.168.1.150 master
192.168.1.151 slave1
192.168.1.152 slave2

如图:

3)修改hostname(三个虚拟机都要改)

#root下打开hostname
vim /etc/hostname
#分别将每个虚拟机改成对应的name(master、slave1、slave2)

4、配置虚拟机网络

  在安装好虚拟机后,虚拟机有三种模式分别是nat模式、仅主机模式、桥接模式,此处对于此三种模式进行简单介绍:

    nat模式:这是通nat地址转换共享主机Ip的模式,在安装好虚拟机后会发现有vmnet8虚拟网卡,这个网卡默认是nat模式,这时nat模式下的虚拟机相当于又组成一个局域网,而vmnet8相当于这个局域网的网关,在这种模式下,虚拟机之间可以相互ping通,但是不能与主机通信,因为主机与虚拟机之间有有一个vmnet8网卡。当然通过配置vmnet8网卡可以实现通信。

    仅主机模式:这种模式没有地址转换能力,各个虚拟机之间是相互独立的,不能相互访问,每个虚拟机只能与主机通信。

    桥接模式:这种模式是将虚拟网卡直接绑定到物理网卡上,可以绑定多个地址,这里是将网卡设置成混杂模式,然后实现可以收发多个地址的消息。

  本人搭建环境采用的是桥接模式,这种模式拟真性更强一些,虽然有些麻烦。

  注意:要将三个虚拟机的ip与主机都处于同一个网段,然后实验是否可以Ping通

5、配置ssh,实现节点间的无密码登录 (注意关闭防火墙 ufw disable)

1)产生密钥
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

2)导入authorized_keys

cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

3)试验看是否安装成功

#查看是否有sshd进程
ps -e | grep ssh
#尝试登录本地
ssh localhost

4)远程无密码登录

#进入master的.ssh目录
scp authorized_keys u0@slave1:~/.ssh/authorized_keys_master
#u0是我的用户名
#进入slave1、slave2的.ssh目录
cat authorized_keys_master >> authorized_keys

注意:第四步要在slave上重复,要使三者都能够无密码相互登录,重复完后可以利用如下命令试验,第一次需要输入密码绑定

ssh salve1(slave2)

注意:我的主机是连接的路由无线网络,我遇到了一个问题,就是在虚拟机网络重连后master可以登录slave2,但是过一会后就发现老是connection refused,就因为这个问题我还重新安装了几次,网络上的方法都试了也不管用,后来发现,原来是我的虚拟机ip与路由局域网中的其他机器Ip冲突,千万要保证局域网内的Ip不要和虚拟机的ip冲突

6、master配置hadoop,并将hadoop文件传输到slave节点

1)解包移动

#解压hadoop包
tar -zxvf hadoop...
#将安装包移到/usr目录下
mv hadoop... /usr/hadoop

2)新建文件夹

#在/usr/hadoop目录下新建如下目录(root)
mkdir /dfs
mkdir /dfs/name
mkdir /dfs/data
mkdir /tmp

3)配置文件:hadoop-env.sh(文件都在/usr/hadoop/etc/hadoop中)

修改JAVA_HOME值(export JAVA_HOME=/usr/java)
4)配置文件:yarn-env.sh

修改JAVA_HOME值(export JAVA_HOME=/usr/java)

5)配置文件:slaves

将内容修改为:

slave1
slave2

6)配置文件:core-site.xml

<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:8020</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>hadoop.proxyuser.u0.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.u0.groups</name>
<value>*</value>
</property>
</configuration>

7)配置文件:hdfs-site.xml

<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/hadoop/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>

8)配置文件: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>

9)配置文件:yarn-site.xml

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

10)将hadoop传输到slave1和slave2根目录

 scp -r /usr/hadoop u0@slave1:~/
7、配置环境变量,并启动hadoop,检查是否安装成功
1)配置环境变量
#root模式编辑/etc/profile
vim /etc/profile
#以上已经添加过java的环境变量,在后边添加就可以
export PATH=$PATH:/usr/java/bin:/usr/java/jre/bin:/usr/hadoop/bin:/usr/hadoop/sbin

2)启动hadoop

#注意最后单词带‘-’
hadoop namenode -format
start-all.sh

3)查看启动进程

[hadoop]hadoop2.6完全分布式环境搭建的更多相关文章

  1. Hadoop学习笔记(3)——分布式环境搭建

    Hadoop学习笔记(3) ——分布式环境搭建 前面,我们已经在单机上把Hadoop运行起来了,但我们知道Hadoop支持分布式的,而它的优点就是在分布上突出的,所以我们得搭个环境模拟一下. 在这里, ...

  2. hadoop学习(三)----hadoop2.x完全分布式环境搭建

    今天我们来完成hadoop2.x的完全分布式环境搭建,话说学习本来是一件很快乐的事情,可是一到了搭环境就怎么都让人快乐不起来啊,搭环境的时间比学习的时间还多.都是泪.话不多说,走起. 1 准备工作 开 ...

  3. Hadoop基础教程之分布式环境搭建

    前面,我们已经在单机上把Hadoop运行起来了,但我们知道Hadoop支持分布式的,而它的优点就是在分布上突出的,所以我们得搭个环境模拟一下. 在这里,我们采用这样的策略来模拟环境,我们使用3台ubu ...

  4. Hadoop 2.7 伪分布式环境搭建

    1.安装环境 ①.一台Linux CentOS6.7 系统 hostname                ipaddress              subnet mask             ...

  5. Hadoop学习2—伪分布式环境搭建

    一.准备虚拟环境 1. 虚拟环境网络设置 A.安装VMware软件并安装linux环境,本人安装的是CentOS B.安装好虚拟机后,打开网络和共享中心 -> 更改适配器设置 -> 右键V ...

  6. hadoop(集群)完全分布式环境搭建

    一,环境 主节点一台: ubuntu desktop 16.04 zhoujun      172.16.12.1 从节点(slave)两台:ubuntu server 16.04 hadoop2  ...

  7. hadoop2.6.2分布式环境搭建

    1.准备三台机器,机器名是:master.slave01.slave02 1.1 最小化安装centos6.5 1.2 安装ssh,yum -y install openssh-clients(这一步 ...

  8. 攻城狮在路上(陆)-- hadoop分布式环境搭建(HA模式)

    一.环境说明: 操作系统:Centos6.5 Linux node1 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 ...

  9. Hadoop-2.4.1完全分布式环境搭建

      Hadoop-2.4.1完全分布式环境搭建   Hadoop-2.4.1完全分布式环境搭建 一.配置步骤如下: 主机环境搭建,这里是使用了5台虚拟机,在ubuntu 13系统上进行搭建hadoop ...

随机推荐

  1. 0422数学口袋精灵bug发现

    团队成员的博客园地址: 蔡彩虹:http://home.cnblogs.com/u/caicaihong/ 曾治业:http://www.cnblogs.com/zzy999/ 蓝叶:http://w ...

  2. 获取ios设备的udid

    今天get的第二个技能~~~ UDID指的是设备的唯一设备识别符,ipa包未上架之前如果不添加udid是无法安装成功的.那么如何快速获取ios设备的udid呢? 今天get的方法是用蒲公英,网址:ht ...

  3. https 的理解

    前言: 本篇博文来记录下对http及https的理解.(会有点 杂,补缺补漏) 引用:https://blog.csdn.net/u011109589/article/details/80306479 ...

  4. SQLSERVER 使用XP开头的系统默认存储过程

    1. 根据官网上面的内容进行执行命令 EXEC xp_cmdshell 'dir *.exe'; 但是会报错 消息 ,级别 ,状态 ,过程 xp_cmdshell,行 [批起始行 ] SQL Serv ...

  5. Nginx负载均衡配置与负载策略

    原理 负载均衡的目的是为了解决单个节点压力过大,造成Web服务响应过慢,严重的情况下导致服务瘫痪,无法正常提供服务. 应用场景 春节期间在12306网站上买过火车票的朋友应该深有体会,有时查询一张火车 ...

  6. (转)web开发流程

    a.项目经理与公司决策层的沟通,以确定这个需求有没有足够的人手和可行性去实现,以及与现有产品的依存关系. b.公司决策层与市场/策划部门的交流,这个过程将进行的相当充分,并且是反复.长期的,它致力于从 ...

  7. Angular中sweetalert弹框的使用详解

    最近太忙了,项目中使用的弹框老板嫌太丑,让我们优化一下,我在网上找了一下,找到了sweetalert弹框,算是比较好看的弹框了.所以我就想办法将sweetalert用到项目中,在项目中引入sweeta ...

  8. Codeforces 1060 F. Shrinking Tree

    题目链接 一道思维好题啊...感觉这种类型的题很检验基本功是否扎实(像我这样的就挂了). 题意:你有一棵\(n\)个点的树,每次随机选择一条边,将这条边的两个端点合并,并随机继承两个点标号中的一个,问 ...

  9. 【IOI 2018】Highway 高速公路收费

    这是一道极好的图论题,虽然我一开始只会做$18$分,后来会做$51$分,看着题解想了好久才会做(吐槽官方题解:永远只有一句话),但这的确是一道好题,值得思考,也能启发思维. 如果要讲这道题,还是要从部 ...

  10. cgroup限制内存

    cgroup有个memory子系统,有两组对应的文件,一组带 memsw ,另一组不带. # docker ps -a # cd /sys/fs/cgroup/memory/docker/4b5619 ...