Hadoop2.5.2集群配置(基于VMware虚拟机)

来源:互联网 发布:大众点评源码 编辑:程序博客网 时间:2024/05/18 00:45

写在前面:

文章内容为2015年年初准备毕业设计时随手记录的笔记


注:

当初搭建的时候,VMnet8的IP时不时就变成169.254,即使从VMware10升到VMware11也没法解决,初步怀疑是VMware在Win8下的问题,所以重置过很多次VMware的虚拟网卡配置,所以截图里的IP配置存在80、77等几个不同的网段。。


工具:

VMware 11

ubuntu 14.04.1

Hadoop 2.5.2


搭建步骤简述:

关闭VMware的NAT模式下的DHCP,

根据VMnet8的网段来分配三个节点的静态IP;

    ↓

修改hosts文件;

    ↓

安装jdk并配置环境变量;

    ↓

安装/配置SSH;

    ↓

安装hadoop并配置环境变量,修改相关文件;

    ↓

克隆出另外两个节点,并修改:hostname、静态IP、hosts文件;

    ↓

配置SSH、使NameNode能无密码访问DataNode;

    ↓

修改NameNode上的yarn-site.xml文件,完成hadoop配置。


正文:

上一篇先大致讲了如何在VMware中安装ubuntu,下面讲如何配置

0. 配置物理机和虚拟机间网络连接(NAT)

使用NAT的话,就要开启VMnet8这个虚拟网卡作为路由器,查看VMnet8的信息:


查看VMware对NAT相关的配置:

将DHCP服务器取消:


查看NAT设置:


所以按照这个网段、网关来配置ubuntu主机的静态IP:

配置好后,虚拟机和物理机能互相ping通即可。


1. 各虚拟主机及hosts文件修改

分配好各节点的IP和主机名:

192.168.80.129  NameNode

192.168.80.131  DataNode1

192.168.80.132  DataNode2


命令: sudo gedit /etc/hosts

保存之后,重启网络 sudo /etc/init.d/networking restart 即可

2. 建立一个hadoop组和hadoop用户

P.S. 这一步的意图不太懂,用户这步应该都是为了后续的操作方便,添加到admin组应该是权限方面,但这块不太熟。。
按网上的步骤:
sudo addgroup hadoop
sudo adduser --ingroup hadoop hadoop
由于安装ubuntu的时候已经设置好了用户名和密码,所以这时会提示:

将用户hadoop添加到管理组:

sudo usermod -aG admin hadoop

但我这边提示没有admin组,不知道是什么原因。。


3. 安装SSH

ubuntu好像是已经有SSH了,当时装的时候报了一堆的问题,这里不讲安装,只讲配置

配置成免密码登录(这一步是在克隆出DataNode后做的)

在NameNode上执行: ssh-keygen -t rsa -P ""

按个回车就可以了,会在/home/{username}/.ssh下生成id_rsa和id_rsa.pub,前者为私钥,后者为公钥。

复制公钥:cp id_rsa.pub authorized_keys

把公钥发送到另外两台datanode,这个过程可能有几个影响因素:

①关闭防火墙
    sudo ufw disable (好像需要重启?)
authorized_keys文件的权限
    chmod 600 authorized_keys
目的路径
    用户名@IP(hostname):/home/{用户名}/.ssh/
    例:scp authorized_keys hadoop@DataNode2:/home/hadoop/.ssh/

自己在做的时候,看到了网上的一篇博客里这么写的:scp authorized_keys root@10.0.1.201:/root/.ssh/

然后就跟着写了root,但是一直提示权限不足,后来继续搜索其他几篇博客,综合了一下①和②两个步骤,最终先修改了keys文件的权限,然后把datanode1关闭了防火墙并重启了一下,再尝试之后依旧提示权限不足(当然是。。),然后才恍然大悟,写了.ssh的正确路径。。

配置成功后,能无密码直接SSH连接到其他节点:


4. 安装jdk

下载好jdk:jdk-7u75-linux-i586.gz
在/usr/local下创建java文件夹,把gz包复制进去,解压。
sudo mkdir java
sudo cp jdk-7u75-linux-i586.gz /usr/local/java
sudo tar -xzf jdk-7u75-linux-i586.gz

配置环境变量:
打开.profile,在最后加上这几句
export JAVA_HOME=/usr/local/java/jdk1.7.0_75
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export PATH=${JAVA_HOME}/bin:$PATH  
然后执行source ~/.profile

这样算是配置好了,但是还需要修改系统默认jdk(看上图的样子其实觉得默认jdk已经是新安装的了):
$ sudo update-alternatives --install /usr/bin/java java /usr/local/java/jdk1.7.0_75/bin/java 300
$ sudo update-alternatives --install /usr/bin/javac javac /usr/local/java/jdk1.7.0_75/bin/javac 300 
$ sudo update-alternatives --config java
$ sudo update-alternatives --config javac
这个版本的直接执行前两句就自动完成了,所以后两句不需要了

5. 安装hadoop

在官网下载了比较新的2.5.2,与安装jdk类似,usr/local下新建hadoop文件夹,解压:

配置.profile,新增了这些(从网上学的):
export HADOOP_INSTALL=/usr/local/hadoop/hadoop-2.5.2
export PATH=$PATH:$HADOOP_INSTALL/bin
export PATH=$PATH:$HADOOP_INSTALL/sbin
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export YARN_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib"
保存之后,执行生效:
source ~/.profile

配置完之后,修改hadoop相关配置文件:
这个部分是搭建环境最麻烦的地方,因为网上的文章错综复杂,修改的配置文件各不相同,而我初次接触hadoop,完全不知道怎么搞,只得多搜一些博客,综合一下,搭建完后再做测试看看有没有什么问题:
core-site.xml:
<configuration><property>  <name>hadoop.tmp.dir</name>  <value>/usr/local/hadoop/hadoop-2.5.2/tmp</value>  <description>A base for other temporary directories.</description></property><property>  <name>fs.defaultFS</name>  <value>hdfs://NameNode:9000</value></property><property>  <name>io.file.buffer.size</name>  <value>4096</value></property></configuration>

hdfs-site.xml(可选的配置):
<configuration>    <property>    <name>dfs.nameservices</name>        <value>NameNode</value>  <description>    Comma-separated list of nameservices.  </description>    </property>    <property>        <name>dfs.namenode.name.dir</name>        <value>file:///usr/local/hadoop/hadoop-2.5.2/tmp/dfs/name</value>    </property>    <property>        <name>dfs.datanode.data.dir</name>        <value>file:///usr/local/hadoop/hadoop-2.5.2/tmp/dfs/data</value>    </property>    <property>        <name>dfs.replication</name>        <value>2</value>    </property>    <property>        <name>dfs.webhdfs.enabled</name>        <value>true</value>    </property></configuration>

mapred-site.xml(先复制mapred-site.xml.template->mapred-site.xml):
sudo cp mapred-site.xml.template mapred-site.xml 
<configuration>    <property>        <name>mapreduce.framework.name</name>        <value>yarn</value>    </property>    <property>        <name>mapreduce.jobtracker.http.address</name>        <value>NameNode:50030</value>    </property>    <property>        <name>mapreduce.jobhistory.address</name>        <value>NameNode:10020</value>    </property>    <property>        <name>mapreduce.jobhistory.webapp.address</name>        <value>NameNode:19888</value>    </property></configuration>

yarn-site.xml(只针对NameNode):
<configuration><property>  <name>yarn.resourcemanager.hostname</name>  <value>NameNode</value>  <description>The hostname of the ResourceManager</description></property><property>  <name>yarn.nodemanager.aux-services</name>  <value>mapreduce_shuffle</value>  <description>shuffle service for MapReduce</description></property>    <property>        <name>yarn.resourcemanager.address</name>        <value>NameNode:8032</value>    </property>    <property>        <name>yarn.resourcemanager.scheduler.address</name>        <value>NameNode:8030</value>    </property>    <property>        <name>yarn.resourcemanager.resource-tracker.address</name>        <value>NameNode:8031</value>    </property>    <property>        <name>yarn.resourcemanager.admin.address</name>        <value>NameNode:8033</value>    </property>    <property>        <name>yarn.resourcemanager.webapp.address</name>        <value>NameNode:8088</value>    </property></configuration>

slaves(记得把localhost删掉):

hadoop-env.sh:
export JAVA_HOME=/usr/local/java/jdk1.7.0_75

yarn-env.sh:
export JAVA_HOME=/usr/local/java/jdk1.7.0_75


=======================昏割线=======================

hadoop节点的安装配置就是这样,虚拟机的克隆没有在文章中描述,这步比较简单,下一篇讲如何启动hadoop进程检验有没有部署成功。



0 0
原创粉丝点击