文档章节

VMware虚拟机搭建Hadoop2.7.1分布式集群(3台)

Circleblog
 Circleblog
发布于 2016/07/21 16:22
字数 1690
阅读 851
收藏 0

【架构介绍】

   

【准备工作】

1. VMware:11.0.0 build-2305329 (下载:http://pan.baidu.com/s/1skq0oP3 )

2. CentOS:CentOS-6.7-x86_64-bin-DVD1.iso (下载:http://pan.baidu.com/s/1o7xYgGE )

                    或Ubuntu(以CentOS为例,一般生产环境用的是CentOS)

3. 本地机器配置:

4. Hadoop

(1)版本2.7.1

(2)下载地址:http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.7.1/hadoop-2.7.1.tar.gz

5. JDK

(1)版本1.7.9

(2)下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

    

【正式安装】

1. 安装VMware、安装Centos

    这里就不截图了,详细安装过程百度一下或参考:http://blog.itpub.net/26230597/viewspace-1255651/

注意事项:

(1)安装顺序:虚拟机节点先安装一个,完成基本配置后通过“克隆”的方式复制另外两个,这样既可以保证环境统一,又比较方便。

(2)网络连接:选择桥接方式。建议最好手动把IP地址固定下来,避免动态分配的时候错乱。

(3)防火墙:关闭防火墙,避免出现后面不必要的麻烦,chkconfig iptables off。

(4)内存分配:hadoop01 1024M,hadoop02 1024M(因为有resourcemanager),hadoop03 512M。

2. 安装vim和ssh

(1)安装vim

yum -y install vim

    PS:可以先测试一下有没有自带。

(2)安装ssh

yum -y install ssh

    PS:可以通过service ssh status 查看ssh状态。

3. 修改hostname

vi /etc/sysconfig/network

    修改HOSTNAME的值为hadoop01。

4. 修改hosts

vi /etc/hosts

192.168.159.130    hadoop01

192.168.159.131    hadoop02

192.168.159.132    hadoop03

5. 安装jdk

(1)上传:

    用工具winscp上传jdk包至目录/usr/lib/java,winscp配置时端口默认22。

(2)解压:

tar -zxvf jdk1.7.0_79.tar

(3)修改环境变量:

 vim ~/.bashrc

    在最下面添加:

export JAVA_HOME = /usr/lib/java/jdk1.7.0_79

export PATH = $JAVA_HOME/bin:$PATH

    修改完后,让配置文件生效:

source ~/.bashrc

 

6. 安装hadoop

(1)上传:

    用工具winscp上传hadoop包至目录/opt。

(2)解压:

 tar -zxvf hadoop2.7.1.tar

    重命名:

mv hadoop-2.7.1 hadoop

(3)修改环境变量

vim ~/.bashrc

    在最下面添加:

export HADOOP_HOME = /opt/hadoop

export PATH = $JAVA_HOme/bin:$HADOOP_HOME/bin:$PATH

 

    修改完后,让配置文件生效:

source ~/.bashrc

7. 克隆

    通过VMware克隆另外两个节点出来,参照4中的配置修改IP地址和hostname。

6.  配置ssh,实现免密码登录

(1)在三台机器上分别执行如下命令,一路按回车即可。

ssh-keygen -t rsa

(2)刚生成的文件保存在~/.ssh/下

    authorized_keys,已认证的keys(如果没有,可自建)

    id_rsa,私钥

    id_rsa.pub,公钥

(3)做ssh认证

    把三台机器~/.ssh/id_rsa.pub中的内容拷贝到hadoop01的authorized_keys文件里,然后在hadoop01上scp到各台机器上相同目录下,命令:

scp authorized_keys root@192.168.159.131:~/.ssh      

scp authorized_keys root@192.168.159.132:~/.ssh

 

    格式: scp authorized_keys 远程主机用户名@远程主机名或ip:存放路径。

    建议:最好是三台都互相免密码登录,不只是从master到另外两台。

(4)测试:

ssh hadoop02

    看是否不用密码就可以登录过去,直接进入,表示成功。

8. 修改hadoop基本配置

    路径:/opt/hadoop/etc/conf/

(1)修改 core-site.xml

    在<configuration></configuration>里添加如下内容:

<property>
        <name>hadoop.tmp.dir</name>
        <value>/tmp</value>
</property>
<!--fs.defaultFS 客户端连接HDFS时,默认的路径前缀 -->
<property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop01:9000</value>
</property>

(2)修改hadoop-env.sh

    修改或添加如下内容:

export HADOOP_CONF_DIR=/opt/hadoop/etc/hadoop
export JAVA_HOME=/usr/lib/java/jdk1.7.0_79
export HADOOP_HOME=/opt/hadoop
export PATH=$HADOOP_HOME/bin:$PATH

(3)修改 hdfs-site.xml

在<configuration></configuration>里添加如下内容:

<property>
        <name>dfs.name.dir</name>
        <value>/data/dfs/name</value>
</property>
<property>
        <name>dfs.replication</name>
        <value>2</value>
</property>

<!--datanode配置-->
<property>
        <name>dfs.data.dir</name>
        <value>/data/dfs/data</value>
</property>

(4)cp  mapred-site.xml.template mapred-site.xml

    然后在mapred-site.xml的<configuration></configuration>里添加如下内容:

<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
</property>
<property>
        <name>mapred.job.tracker</name>
        <value>hadoop01:9001</value>
</property>
<property>
        <name>mapreduce.job.user.classpath.first</name>
        <value>false</value>
</property>
<property>
        <name>mapreduce.task.timeout</name>
        <value>900000</value>
</property>
<property>
        <name>mapred.map.tasks</name>
        <value>5</value>
</property>
<property>
        <name>mapred.reduce.tasks</name>
        <value>10</value>
</property>

(5)修改slaves

    加入如下内容:

hadoop02
hadoop03

(6)创建masters文件

vim masters

    并加入如下内容:

hadoop01

(7)修改yarn-site.xml

    在<configuration></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.nodemanager.local-dirs</name>
        <value>/data/yarn/local</value>
        <description>the local directories used by thenodemanager</description>
</property>

<property>
        <name>yarn.resourcemanager.address</name>
        <value>hadoop02:8032</value>
</property>
<property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>hadoop02:8030</value>
</property>
<property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>hadoop02:8031</value>
</property>
<property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>hadoop02:8033</value>
</property>
<property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>hadoop02:8088</value>
</property>
<property>
        <name>yarn.resourcemanager.scheduler.class</name>
        <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>
</property>

(8)yarn-env.sh

    修改第23行:

# export JAVA_HOME=/home/y/libexec/jdk1.6.0/  

    改成

export JAVA_HOME=/usr/lib/java/jdk1.7.0_79

9. 同步hadoop配置到另外两台机器

scp /opt/hadoop/etc/hadoop/* hadoop02:/opt/hadoop/etc/hadoop/

scp /opt/hadoop/etc/hadoop/* hadoop03:/opt/hadoop/etc/hadoop/

    至此,配置安装配置就完成了。

 

【启动测试】

1. 在hadoop02上执行

hadoop namenode -format

sh /opt/hadoop/sbin/start-all.sh

2. "jps"命令查看进程

(1)hadoop01上

1243    namenode

(2)hadoop02上

2830    resourcemanager

1802    nodemanager

2901    datanode

(3)hadoop03上

1626    datanode

2018    nodemanager

3. 测试hdfs

创建:hadoop fs -mkdir /workspace

查看:hadoop fs -ls /

4. 通过UI查看

http://192.168.159.130:8088/cluster/nodes

【运行MapReduce】

1. 准备数据

    在本地目录创建wordcount.txt文件,并随便输入写英文,如:

aa bb cc dd

2. 上传文件

hadoop fs -put ./wordcount.txt /workspace

3. 执行命令

hadoop jar /opt/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar wordcount /workspace/wordcount.txt /outpath

4. UI查看任务

http://192.168.159.130:8088/cluster/app/RUNNING

5. 查看结果

hadoop fs -cat /outpath/*

aa    1

bb    1

cc    1

dd    1 

【遇到的问题】

1. 拒绝连接

    问题描述:在启动和运行任务时报连接拒绝等问题。

    解决方案:检查防火墙是否已关闭。

2. resourcemanager起动失败

    问题描述:启动集群时,其他进程都正常,只有resourcemanager启动失败,或只启动短暂几秒钟后失败。

    解决方案:通过hadoop02机器(即resourcemanager所在机器)执行sh start-all.sh启动集群。

3. 执行start-all.sh时出现异常

    问题描述:启动集群时,报错:Error:Cannot find configuration directory:/etc/hadoop

    解决方案:在 hadoop-env.sh  配置文件中将 export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-"etc/hadoop"}替换成 export HADOOP_CONF_DIR=/usr/hadoop-2.6.0/etc/hadoop修改完后运行 source hadoop-env.sh 让其立即生效!

4. 运行Wordcount报错

    问题描述:跑自带WordCount时候报mapreduce_shuffle does not exist。

    解决方案:在yarn-site.xml中加如下配置

    <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>

5. 运行Wordcount一段时间后报错

    问题描述:hadoop org.apache.hadoop.yarn.exceptions.YarnException: Unauthorized request to start container

    解决方案:百度说是集群的时间不同步,解决方法参考:
    http://www.chinadmd.com/file/tixiarput3eweszaceuzpttc_1.html
    http://www.aboutyun.com/thread-11397-1-2.html
    http://www.linuxde.net/2013/02/12232.html

更多精彩内容,请访问 “ 圈里圈外 ”

© 著作权归作者所有

下一篇: HBase–调优篇
Circleblog
粉丝 3
博文 11
码字总数 15216
作品 0
海淀
程序员
私信 提问
HBase–集群安装篇

HBase基于Hadoop,这里假设你已经安装好Hadoop平台。 1. 下载资源 官网:http://mirrors.cnnic.cn/apache/hbase/stable/ 2. 上传、解压、软连 说明:过程可参考《VMware虚拟机搭建Hadoop2.7...

Circleblog
2016/07/21
71
0
如何在一台ESXi主机上搭建一整套VSAN集群的环境

从上周起,我开始翻译一本新书。IT类中文书籍的翻译往往有一个术语的问题,如何选择最准确的中文术语,让读者清楚明白而且在实际操作和配置的时候不至于误解,是一件不那么容易的事情。一个简...

delxu
2014/05/15
0
0
搭建spark on yarn集群全过程

搭建spark on yarn集群全过程 Mz的博客2016-03-24225 阅读 大数据SparkHadoopYarn 机器配置 在VMware上创建4个虚拟机来搭建集群。其中一个master,三个salve。 每台虚拟机配置1G内存,1核CPU...

Mz的博客
2016/03/24
0
0
Hadoop完全分布式安装以及配置教程

Hadoop完全分布式安装 在此主要介绍hadoop完全分布式的安装配置。 因为我们硬件设施有限,所以我们采用虚拟机的方式模拟hadoop集群,我们准备建立四台虚拟机,一台机器master作为管理节点,其...

u012045426的博客
2017/12/21
0
0
在window上使用VirtualBox搭建Ubuntu15.04全分布Hadoop2.7.1集群

先给大家看看配置好的集群截图: 注意(default是docker的,大家不用管,下面四台才是,其中Ubuntu0是master,Ubuntu1,2,3是slave节点) 一.新建虚拟机,配置基础java环境,配置网络访问 下载...

崔光范
2015/10/19
1K
6

没有更多内容

加载失败,请刷新页面

加载更多

JAVA数据结构与算法(二)

栈 1) 栈的英文为 (stack) 2) 栈是一 个 先入后出 (FILO-First In Last Out) 的有序列表 。 3) 栈 (stack) 是限制线性表中元素的插入和删除 只能在线性表的同一端 进行的一种特殊线性表。允许...

aaa阿伟呀
6分钟前
1
0
聊聊nacos的ServiceReporter

序 本文主要研究一下nacos的ServiceReporter ServiceManager.init nacos-1.1.3/naming/src/main/java/com/alibaba/nacos/naming/core/ServiceManager.java @Component@DependsOn("nacosAppl......

go4it
11分钟前
2
0
文字太长想隐藏的字用省略号来代替

white-space: nowrap; overflow: hidden; text-overflow: ellipsis; width: 是必须的,因为宽度需要固定它才知道那些文字是超出了范围 你会觉得这样的话那怎么看全部的文字呢?你可以在元素上...

前端老手
18分钟前
3
0
二叉树交换左右子树

树的实现类 public class TreeNode {public int val;public TreeNode left;public TreeNode right;public TreeNode(int x) {val = x;}public TreeNode(int val, TreeN......

jxlgzwh
32分钟前
11
0
在Workstation 15上测试vShere 6.7+vCenter Server

想学习vSphere,最好能在自己的电脑上搭建相应的学习环境,如下图所示: _________________________________ | ...

大别阿郎
35分钟前
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部