博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hadoop 2.0:分布式环境搭建安装配置
阅读量:4138 次
发布时间:2019-05-25

本文共 6640 字,大约阅读时间需要 22 分钟。

集群环境:

1 NameNode(真实主机):

Linux yan-Server 3.4.36-gentoo #3 SMP Mon Apr 1 14:09:12 CST 2013 x86_64 AMD Athlon(tm) X4 750K Quad Core Processor AuthenticAMD GNU/Linux

2 DataNode1(虚拟机):

Linux node1 3.5.0-23-generic #35~precise1-Ubuntu SMP Fri Jan 25 17:13:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

3 DataNode2(虚拟机):

Linux node2 3.5.0-23-generic #35~precise1-Ubuntu SMP Fri Jan 25 17:13:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

4 DataNode3(虚拟机):

Linux node3 3.5.0-23-generic #35~precise1-Ubuntu SMP Fri Jan 25 17:13:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

1.安装VirtualBox虚拟机

Gentoo下直接命令编译安装,或者官网下载二进制安装包直接安装:

emerge -av virtualbox

2.虚拟机下安装Ubuntu 12.04 LTS

使用Ubuntu镜像安装完成后,然后再克隆另外两台虚拟主机(这里会遇到克隆的主机启动的时候主机名和MAC地址会是一样的,局域网会造成冲突)

主机名修改文件

/etc/hostname

MAC地址修改需要先删除文件

/etc/udev/rules.d/70-persistent-net.rules

然后在启动之前设置VirtualBox虚拟机的MAC地址

启动后会自动生成删除的文件,配置网卡的MAC地址。

为了更方便的在各主机之间共享文件,可以启动主机yan-Server的NFS,将命令加入/etc/rc.local中,让客户端自动挂载NFS目录。

删除各虚拟机的NetworkManager,手动设置静态的IP地址,例如node2主机的/etc/network/interfaces文件配置如下:

auto lo  
iface lo inet loopback 
auto eth0 
iface eth0 inet static 
address 192.168.137.202 
gateway 192.168.137.1 
netmask 255.255.255.0 
network 192.168.137.0 
broadcast 192.168.137.255 

主机的基本环境设置完毕,下面是主机对应的IP地址

类型

主机名

IP

NameNode

yan-Server

192.168.137.100

DataNode

node1

192.168.137.201

DataNode

node2

192.168.137.202

DataNode

node3

192.168.137.203

为了节省资源,可以设置虚拟机默认启动字符界面,然后通过主机的TERMINAL ssh远程登录。(SSH已经启动服务,允许远程登录,安装方法不再赘述)

设置方式是修改/etc/default/grub文件将下面的一行解除注释

GRUB_TERMINAL=console

然后update-grub即可。

3.Hadoop环境的配置

3.1配置JDK环境(之前就做好了,这里不再赘述)

3.2在官网下载Hadoop,然后解压到/opt/目录下面(这里使用的是hadoop-2.0.4-alpha)

然后进入目录/opt/hadoop-2.0.4-alpha/etc/hadoop,配置hadoop文件

修改文件hadoop-env.sh

export HADOOP_FREFIX=/opt/hadoop-2.0.4-alpha  
export HADOOP_COMMON_HOME=${HADOOP_FREFIX} 
export HADOOP_HDFS_HOME=${HADOOP_FREFIX} 
export PATH=$PATH:$HADOOP_FREFIX/bin 
export PATH=$PATH:$HADOOP_FREFIX/sbin 
export HADOOP_MAPRED_HOME=${HADOOP_FREFIX} 
export YARN_HOME=${HADOOP_FREFIX} 
export HADOOP_CONF_HOME=${HADOOP_FREFIX}/etc/hadoop 
export YARN_CONF_DIR=${HADOOP_FREFIX}/etc/hadoop 
export JAVA_HOME=/opt/jdk1.7.0_21 

修改文件hdfs-site.xml

 
 
  
dfs.namenode.name.dir
 
  
file:/opt/hadoop-2.0.4-alpha/workspace/name
 
  
Determines where on the local filesystem the DFS name node should store the 
name table.If this is a comma-delimited list of directories,then name table is 
replicated in all of the directories,for redundancy.
 
  
true
 
 
 
  
dfs.datanode.data.dir
 
  
file:/opt/hadoop-2.0.4-alpha/workspace/data
 
  
Determines where on the local filesystem an DFS data node should 
store its blocks.If this is a comma-delimited list of directories,then data will 
be stored in all named directories,typically on different devices.Directories that do not exist are ignored. 
  
 
  
true
 
 
 
  
dfs.replication
 
  
1
 
 
 
  
dfs.permission
 
  
false
 
 
 

修改文件mapred-site.xml

 
 
  
mapreduce.framework.name
 
  
yarn
 
 
 
  
mapreduce.job.tracker
 
  
hdfs://yan-Server:9001
 
  
true
 
 
 
  
mapreduce.map.memory.mb
 
  
1536
 
 
 
  
mapreduce.map.java.opts
 
  
-Xmx1024M
 
 
 
  
mapreduce.reduce.memory.mb
 
  
3072
 
 
 
  
mapreduce.reduce.java.opts
 
  
-Xmx2560M
 
 
 
  
mapreduce.task.io.sort.mb
 
  
512
 
 
 
  
mapreduce.task.io.sort.factor
 
  
100
 
 
 
  
mapreduce.reduce.shuffle.parallelcopies
 
  
50
 
 
 
  
mapred.system.dir
 
  
file:/opt/hadoop-2.0.4-alpha/workspace/systemdir
 
  
true
 
 
 
  
mapred.local.dir
 
  
file:/opt/hadoop-2.0.4-alpha/workspace/localdir
 
  
true
 
 
 

修改文件yarn-env.xml

export HADOOP_FREFIX=/opt/hadoop-2.0.4-alpha  
export HADOOP_COMMON_HOME=${HADOOP_FREFIX} 
export HADOOP_HDFS_HOME=${HADOOP_FREFIX} 
export PATH=$PATH:$HADOOP_FREFIX/bin 
export PATH=$PATH:$HADOOP_FREFIX/sbin 
export HADOOP_MAPRED_HOME=${HADOOP_FREFIX} 
export YARN_HOME=${HADOOP_FREFIX} 
export HADOOP_CONF_HOME=${HADOOP_FREFIX}/etc/hadoop 
export YARN_CONF_DIR=${HADOOP_FREFIX}/etc/hadoop 
export JAVA_HOME=/opt/jdk1.7.0_21 

修改文件yarn-site.xml

 
 
  
yarn.resourcemanager.address
 
  
yan-Server:8080
 
 
 
  
yarn.resourcemanager.scheduler.address
 
  
yan-Server:8081
 
 
 
  
yarn.resourcemanager.resource-tracker.address
 
  
yan-Server:8082
 
 
 
  
yarn.nodemanager.aux-services
 
  
mapreduce.shuffle
 
 
 
  
yarn.nodemanager.aux-services.mapreduce.shuffle.class
 
  
org.apache.hadoop.mapred.ShuffleHandler
 
 
 

将配置好的Hadoop复制到各DataNode(这里DataNode的JDK配置和主机的配置是一致的,不需要再修改JDK的配置)

3.3 修改主机的/etc/hosts,将NameNode加入该文件

192.168.137.100yan-Server

192.168.137.201node1
192.168.137.202node2
192.168.137.203node3

3.4 修改各DataNode的/etc/hosts文件,也添加上述的内容

192.168.137.100yan-Server
192.168.137.201node1
192.168.137.202node2
192.168.137.203node3

3.5 配置SSH免密码登录(所有的主机都使用root用户登录)

主机上运行命令

ssh-kengen -t rsa

一路回车,然后复制.ssh/id_rsa.pub为各DataNode的root用户目录.ssh/authorized_keys文件

然后在主机上远程登录一次

ssh root@node1

首次登录可能会需要输入密码,之后就不再需要。(其他的DataNode也都远程登录一次确保可以免输入密码登录)

4.启动Hadoop

为了方便,在主机的/etc/profile配置hadoop的环境变量,如下:

export HADOOP_PREFIX="/opt/hadoop-2.0.4-alpha"  
export PATH=$PATH:$HADOOP_PREFIX/bin 
export PATH=$PATH:$HADOOP_PREFIX/sbin 
export HADOOP_MAPRED_HOME=${HADOOP_PREFIX} 
export HADOOP_COMMON_HOME=${HADOOP_PREFIX} 
export HADOOP_HDFS_HOME=${HADOOP_PREFIX} 
export YARN_HOME=${HADOOP_PREFIX} 

4.1 格式化NameNode

hdfs namenode -format

4.2 启动全部进程

start-all.sh


在浏览器查看,地址:

所有数据节点DataNode正常启动。

4.3 关闭所有进程

stop-all.sh

至此,Hadoop环境搭建基本结束。

你可能感兴趣的文章
python 变量作用域问题(经典坑)
查看>>
pytorch
查看>>
pytorch(三)
查看>>
ubuntu相关
查看>>
C++ 调用json
查看>>
nano中设置脚本开机自启动
查看>>
动态库调动态库
查看>>
Kubernetes集群搭建之CNI-Flanneld部署篇
查看>>
k8s web终端连接工具
查看>>
手绘VS码绘(一):静态图绘制(码绘使用P5.js)
查看>>
手绘VS码绘(二):动态图绘制(码绘使用Processing)
查看>>
基于P5.js的“绘画系统”
查看>>
《达芬奇的人生密码》观后感
查看>>
论文翻译:《一个包容性设计的具体例子:聋人导向可访问性》
查看>>
基于“分形”编写的交互应用
查看>>
《融入动画技术的交互应用》主题博文推荐
查看>>
链睿和家乐福合作推出下一代零售业隐私保护技术
查看>>
Unifrax宣布新建SiFAB™生产线
查看>>
艾默生纪念谷轮™在空调和制冷领域的百年创新成就
查看>>
NEXO代币持有者获得20,428,359.89美元股息
查看>>