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 NameNode192.168.80.131 DataNode1192.168.80.132 DataNode2命令: sudo gedit /etc/hosts保存之后,重启网络 sudo /etc/init.d/networking restart 即可
2. 建立一个hadoop组和hadoop用户
P.S. 这一步的意图不太懂,用户这步应该都是为了后续的操作方便,添加到admin组应该是权限方面,但这块不太熟。。按网上的步骤:
sudo addgroup hadoopsudo 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 javasudo cp jdk-7u75-linux-i586.gz /usr/local/javasudo tar -xzf jdk-7u75-linux-i586.gz配置环境变量:打开.profile,在最后加上这几句
export JAVA_HOME=/usr/local/java/jdk1.7.0_75export JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libexport 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.2export PATH=$PATH:$HADOOP_INSTALL/binexport PATH=$PATH:$HADOOP_INSTALL/sbinexport HADOOP_MAPRED_HOME=$HADOOP_INSTALLexport HADOOP_COMMON_HOME=$HADOOP_INSTALLexport HADOOP_HDFS_HOME=$HADOOP_INSTALLexport YARN_HOME=$HADOOP_INSTALLexport HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/nativeexport 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进程检验有没有部署成功。
- Hadoop2.5.2集群配置(基于VMware虚拟机)
- Hadoop2.6集群环境虚拟机中搭建网络配置
- Hadoop渐进一:Hadoop2.8.0虚拟机集群配置
- 部署hadoop2.7.2 集群 基于zookeeper配置HDFS HA+Federation
- 虚拟机安装hadoop2.7.3集群
- hadoop2.7.1在vmware上3台centos7虚拟机上的完全分布式集群搭建
- Hadoop2.6.0集群配置
- hadoop2.6.0 集群配置
- hadoop2 yarn 集群配置
- Hadoop2.2.0集群安装配置
- hadoop2集群搭建+HA配置
- Hadoop2.2.0 集群配置攻略
- Hadoop2.0集群安装配置
- hadoop2.7.1集群配置过程
- hadoop2.6.0集群环境配置
- Hadoop2.6.4集群安装配置
- hadoop2.7.3集群安装配置
- hadoop2.6.0集群环境配置
- 马虎的算式
- 算导--6.5-9使用最小堆完成k路归并问题
- jquery实现图片自动轮播
- JSP的四种属性范围
- C++学了这么多年,你也许不知道为什么类定义要放在.h文件,类实现放在cpp文件。它们如何关联?
- Hadoop2.5.2集群配置(基于VMware虚拟机)
- HDOJ 5641-King's Phone【模拟】
- 我的博客今天开通啦
- 蓝桥杯 大臣的旅费
- 88. Merge Sorted Array
- jquery购物车插件minicart.js
- 测试C#代理的执行线程是新开还是在触发线程的代码
- 第一次上机实验—2
- 自定义照相机官方指南