VirtualBox5.1.18、Centos6.8、hadoop2.7.3搭建hadoop完全分布式集群教程
1.基本设定和软件版本
主机名 |
ip |
对应角色 |
master |
192.168.56.4 |
NameNode |
slave1 |
192.168.56.3 |
DataNode1 |
slave2 |
192.168.56.5 |
DataNode2 |
Windows主机设置的ip为192.168.56.88hadoop压缩包解压地址:/usr/local/hadoop虚拟机用户都为ljyVirtualBox-5.1.18、CentOS-6.8、hadoop-2.7.3.tar.gz、jdk1.7.0_79,且都是64位版本。
Centos6.8:链接:http://pan.baidu.com/s/1qYdjAY4 密码:7gxm此处连接方式使用Host-only模式,虚拟机不能联网;如使用网络地址转换(NAT),虚拟机可以联网。
图1Host-Only
图2windowsip
2.VirtualBox安装Centos6.8
这个网上教程太多,这里不详细介绍了。
3.FileZilla
FileZilla是一款免费开源的ftp软件,此处用于Windows电脑和Centos虚拟机之间互传文件。
图3FileZilla
4.安装jdk1.7.0-79
l查看系统自带的jdk并将其全部卸载:rpm-qa|grepjdkl下载jdk包,并将其解压到/usr/java路径下。
l配置全局java环境变量(以root用户执行):vim/etc/profilel在profile中的添加以下内容: exportJAVA_HOME=/usr/java/jdk1.7.0_79exportJRE_HOME=/usr/java/jdk1.7.0_79/jre l使profile配置生效:source/etc/profilel检测已经安装的jdk:java-versionl注意:其他DataNode执行上述同样 *** 作。
图4/etc/profile文件中添加的内容
图5安装的jdk
5.设置NameNode的ip
方法一:
l切换到root,输入密码:sul进入设置界面:setupl选择网络设置l选择设备设置l选择eth0l进行网络配置l注意:其他DataNode执行上述同样 *** 作。
图6选择网络设置
图7选择设备设置
图8选择eth0
图9NameNode的网络设置
方法二:
- l打开网络连接,直接设置
图10网络连接设置
方法三:
l编辑eth0文件:sudovim/etc/sysconfig/network-scripts/ifcfg-eth0l在文件中修改BOOTPROTO=static,添加IPADDR、NETMASK和GATEWAY。
图11配置eth0
图12windows电脑ping通NameNode
6.给用户增加sudo权限(此处用户名为ljy)
l切换到root,输入密码:sul给sudoers增加写权限:chmodu+w/etc/sudoersl编译sudoers文件:vim/etc/sudoersl在#%wheelALL=(ALL)NOPASSWD:ALL下方增加xxxALL=(ALL)NOPASSWD:ALL,注意xxx为用户,此处为ljyl去掉sudoers文件的写权限:chmodu-w/etc/sudoersl注意:其他DataNode执行上述同样 *** 作。
图13/etc/sudoers文件中增加的语句
7.配置每台机器的机器名和对应IP
l编辑hosts文件:sudovim/etc/hostsl编辑network文件,修改HOSTNAME为master:sudovim/etc/sysconfig/network,注意:此处例子master为NameNode机器的机器名。
l使文件立即生效:source/etc/sysconfig/networkl注意:其他DataNode执行上述同样 *** 作。
只有/etc/sysconfig/network中的hostname需要改为对应机器的机器名,例如:slave1。
图14在/etc/hosts文件中添加的内容
图15/etc/sysconfig/network文件中修改HOSTNAME为master
图16修改机器名和对应IP
8.永久关闭防火墙
l永久关闭防火墙,重启后生效:chkconfigiptablesoffl即时性关闭防火墙,重启后失效:serviceiptablesstopl此处执行这两条语句就不用重启了。
l注意:其他DataNode执行上述同样 *** 作。
图17永久关闭防火墙
9.配置SSH免密码登录
检查是否安装了ssh,若没有安装,则安装(以下指令并非都要执行):l检查是否安装ssh:rpm-qa|grepsshl查看ssh运行状态:servicesshdstatusl安装ssh:yuminstallsshl查看是否开机启动:chkconfig--listsshdl设置开机启动:chkconfigsshdonl注意:其他DataNode执行上述同样 *** 作。
图18设置ssh开机启动
配置ssh免密码登录:
l进入~/.ssh目录:cd~/.sshl每台机器执行:ssh-keygen-trsa,一路回车。
l生成两个文件,一个私钥,一个公钥,把id_rsa,pub文件追加到授权key(authorized_keys):cat~/.ssh/id_rsa.pub>>~/.ssh/authorized_keysl通过sshlocalhost命令登录本机,首次时会让输入yes/no,但是不需要密码:sshlocalhostl如果目录没有通过NFS共享,需要利用此方法共享公钥(此处是master把公钥发给slave1,别的就类似互相共享):ssh-copy-idslave1。
l注意:其他DataNode执行上述同样 *** 作。
图19ssh-keygen-trsa命令执行后~/.ssh文件中
图20设置ssh无密码登录
图21master把公钥发送给slave1
图22 ssh免密码登录
10.安装hadoop2.7.3
l转换到用户ljy下:su-ljyl获取管理员权限:sul输入管理员密码:l新建hadoop文件夹:mkdir/usr/local/hadoopl将hadoop包移动到hadoop文件夹中:mv/home/ljy/下载/hadoop-2.7.3.tar.gz/usr/local/hadoopl移动到hadoop文件中:cd/usr/local/hadoopl解压hadoop包:tarzxvfhadoop-2.7.3.tar.gzl将hadoop-2.7.3重命名为hadoop:mvhadoop-2.7.3hadoopl注意:其他DataNode执行上述同样 *** 作。
将hadoop文件的拥有者改为ljy用户和组
l引动到hadoop解压的路径:cd/usr/local/hadoopl将hadoop文件的拥有者改为ljy用户:sudochown-Rljy:ljyhadoopl查看/hadoop目录下所有用户属于ljy的文件或者文件夹:find/hadoop-userljy
配置环境变量
l编辑/etc/profile文件:vim/etc/profilel在profile文件中添加的内容:exportHADOOP_HOME=/usr/local/hadoop/hadoop、exportPATH=$HADOOP_HOME/bin:$PATHl使环境变量生效:source/etc/profilel注意:其他DataNode执行上述同样 *** 作。
图23 hadoop文件夹中的文件目录
图24 /etc/profile文件中添加的内容
配置Hadoop:
l移动到hadoop配置文件路径:cd/usr/local/hadoop/hadoop/etc/hadoopl查看当前文件夹中的文件目录:ls
图25 hadoop配置文件夹中的文件目录
l配置hadoop-env.sh:exportJAVA_HOME=/usr/java/jdk1.7.0_79l添加masters,内容为slave1:vimmastersl配置通用属性:vimcore-site.xml
1 2 3 4 5 6 7 fs.defaultFS 8 9 hdfs://master:9000 10 11 12 13 14 15 16 17 hadoop.tmp.dir 18 19 file:/usr/local/hadoop/hadoop/tmp 20 21 22 23 24 25 fs.checkpoint.period 26 27 3600 28 29 30 31 32 33 fs.checkpoint.size //以日志大小间隔 做备份间隔 34 35 67108864 36 37 38 39
图26 core-site.xml配置内容
l配置HDFS属性:vimhdfs-site.xml
1 2 3 dfs.namenode.secondary.http-address 4 slave1:50090 5 //注意:此处机器名要为另一个。
6 7 8 dfs.http.address 9 master:50070 10 11 12 13 dfs.replication 14 2 15 16 17 18 dfs.webhdfs.enable 19 true 20 21 22 23 dfs.permissions 24 false 25 26 27 28 dfs.namenode.name.dir 29 file:/usr/local/hadoop/hadoop/hdfs/name 30 31 32 33 dfs.datanode.data.dir 34 file:/usr/local/hadoop/hadoop/hdfs/data 35 36
图27 hdfs-site.xml配置内容
l复制mapred-site.xml.template并重命名为mapred-site.xml:cpmapred-site.xml.templatemapred-site.xmll配置MapReduce属性:vimmapred-site.xml
1 2 3 4 5 mapreduce.framework.name 6 7 yarn 8 9 10 11 12 13 mapreduce.jobhistory.address 14 15 master:10020 16 17 18 19 20 21 mapreduce.jobhistory.webapp.address 22 23 master:19888 24 25 26 27
图28 mapred-site.xml配置内容
图29 配置core-site.xml、hdfs-site.xml、mapred-site.xml
l配置yarn-site.xml:vimyarm-site.xml
1 2 3 4 5 6 7 yarn.nodemanager.aux-services 8 9 mapreduce_shuffle 10 11 12 13 14 15 yarn.nodemanager.aux-services.mapreduce.shuffle.class 16 17 org.apache.hadoop.mapred.ShuffleHandler 18 19 20 21 22 23 yarn.resourcemanager.address 24 25 master:8032 26 27 28 29 30 31 yarn.resourcemanager.scheduler.address 32 33 master:8030 34 35 36 37 38 39 yarn.resourcemanager.resource-tracker.address 40 41 master:8031 42 43 44 45 46 47 yarn.resourcemanager.admin.address 48 49 master:8033 50 51 52 53 54 55 yarn.resourcemanager.webapp.address 56 57 master:8088 58 59 60 61
图30yarn-site.xml配置内容
l配置slaves:vimslaves
slave1
slave2
11.复制NameNode作为DataNode
图31 NameNode和DataNode
l复制master,并重命名为slave1和slave2。
l运行slave2,将hostname改为slave2。
l将网络连接的ip改为192.168.56.5。
l对slave1的 *** 作同对slave2的 *** 作一样。
图32 masterpingslave2
lmasterpingwindows时,需要关闭windows的防火墙。
图33 masterpingwindows
图34 windowspingmaster
图35 slave1pingslave2
12.在master节点格式化hdfs
l到bin路径下:cd/usr/local/hadoop/hadoop/binlHadoop初始化:hdfsnamenode-format
13.启动HDFS和YARN
l到sbin路径下:lcd/usr/local/hadoop/hadoop/sbinl启动全部服务:start-all.shl查看:jps
图36 master
图37 slave1
图38 slave2
通过浏览器的方式验证:(HDFS管理界面)
图39 HDFS管理界面
(YARN管理界面)图40 YARN管理界面
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)