『实践』hadoop2.7.3+Centos6.8+VirtualBox5.1.18搭建hadoop完全分布式集群
来源:互联网 发布:sql语句建立数据库 编辑:程序博客网 时间:2024/06/07 05:51
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.88
- hadoop压缩包解压地址:/usr/local/hadoop
- 虚拟机用户都为ljy
- VirtualBox-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),虚拟机可以联网。
图1 Host-Only
图2 windows ip
2.VirtualBox安装Centos6.8
这个网上教程太多,这里不详细介绍了。
3.FileZilla
FileZilla是一款免费开源的ftp软件,此处用于Windows电脑和Centos虚拟机之间互传文件。
图3 FileZilla
4.安装jdk1.7.0-79
- l 查看系统自带的jdk并将其全部卸载:rpm -qa | grep jdk
- l 下载jdk包,并将其解压到/usr/java路径下。
- l 配置全局java环境变量(以root用户执行):vim /etc/profile
- l 在profile中的添加以下内容:
- export JAVA_HOME=/usr/java/jdk1.7.0_79
- export JRE_HOME=/usr/java/jdk1.7.0_79/jre
- l 使profile配置生效:source /etc/profile
- l 检测已经安装的jdk:java -version
- l 注意:其他DataNode执行上述同样操作。
图4 /etc/profile文件中添加的内容
图5 安装的jdk
5.设置NameNode的ip
方法一:
- l 切换到root,输入密码:su
- l 进入设置界面:setup
- l 选择网络设置
- l 选择设备设置
- l 选择eth0
- l 进行网络配置
- l 注意:其他DataNode执行上述同样操作。
图6 选择网络设置
图7 选择设备设置
图8 选择eth0
图9 NameNode的网络设置
方法二:
- l 打开网络连接,直接设置
图10 网络连接设置
方法三:
- l 编辑eth0文件:sudo vim /etc/sysconfig/network-scripts/ifcfg-eth0
- l 在文件中修改BOOTPROTO=static,添加IPADDR、NETMASK和GATEWAY。
图11 配置eth0
图12 windows电脑ping通NameNode
6.给用户增加sudo权限(此处用户名为ljy)
- l 切换到root,输入密码:su
- l 给sudoers增加写权限:chmod u+w /etc/sudoers
- l 编译sudoers文件:vim /etc/sudoers
- l 在#%wheel ALL=(ALL) NOPASSWD: ALL下方增加 xxx ALL=(ALL) NOPASSWD: ALL,注意xxx为用户,此处为ljy
- l 去掉sudoers文件的写权限:chmod u-w /etc/sudoers
- l 注意:其他DataNode执行上述同样操作。
图13 /etc/sudoers文件中增加的语句
7.配置每台机器的机器名和对应IP
- l 编辑hosts文件:sudo vim /etc/hosts
- l 编辑network文件,修改HOSTNAME为master:sudo vim /etc/sysconfig/network,注意:此处例子master为NameNode机器的机器名。
- l 使文件立即生效:source /etc/sysconfig/network
- l 注意:其他DataNode执行上述同样操作。只有/etc/sysconfig/network中的hostname需要改为对应机器的机器名,例如:slave1。
图14 在/etc/hosts文件中添加的内容
图15 /etc/sysconfig/network文件中修改HOSTNAME为master
图16 修改机器名和对应IP
8.永久关闭防火墙
- l 永久关闭防火墙,重启后生效:chkconfig iptables off
- l 即时性关闭防火墙,重启后失效:service iptables stop
- l 此处执行这两条语句就不用重启了。
- l 注意:其他DataNode执行上述同样操作。
图17 永久关闭防火墙
9.配置SSH免密码登录
- 检查是否安装了ssh,若没有安装,则安装(以下指令并非都要执行):
- l 检查是否安装ssh:rpm -qa| grep ssh
- l 查看ssh运行状态:service sshd status
- l 安装ssh:yum install ssh
- l 查看是否开机启动:chkconfig --list sshd
- l 设置开机启动:chkconfig sshd on
- l 注意:其他DataNode执行上述同样操作。
图18 设置ssh开机启动
配置ssh免密码登录:
- l 进入~/.ssh目录:cd ~/.ssh
- l 每台机器执行:ssh-keygen -t rsa,一路回车。
- l 生成两个文件,一个私钥,一个公钥,把id_rsa,pub文件追加到授权key(authorized_keys):cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
- l 通过ssh localhost命令登录本机,首次时会让输入yes/no,但是不需要密码:ssh localhost
- l 如果目录没有通过NFS共享,需要利用此方法共享公钥(此处是master把公钥发给slave1,别的就类似互相共享):ssh-copy-id slave1。
- l 注意:其他DataNode执行上述同样操作。
图19 ssh-keygen -t rsa命令执行后~/.ssh文件中
图20 设置ssh无密码登录
图21 master把公钥发送给slave1
图22 ssh免密码登录
10.安装hadoop 2.7.3
- l 转换到用户ljy下:su - ljy
- l 获取管理员权限:su
- l 输入管理员密码:
- l 新建hadoop文件夹:mkdir /usr/local/hadoop
- l 将hadoop包移动到hadoop文件夹中:mv /home/ljy/下载/hadoop-2.7.3.tar.gz /usr/local/hadoop
- l 移动到hadoop文件中:cd /usr/local/hadoop
- l 解压hadoop包:tar zxvf hadoop-2.7.3.tar.gz
- l 将hadoop-2.7.3重命名为hadoop: mv hadoop-2.7.3 hadoop
- l 注意:其他DataNode执行上述同样操作。
将hadoop文件的拥有者改为ljy用户和组
- l 引动到hadoop解压的路径:cd /usr/local/hadoop
- l 将hadoop文件的拥有者改为ljy用户:sudo chown -R ljy:ljy hadoop
- l 查看/hadoop目录下所有用户属于ljy的文件或者文件夹:find /hadoop -user ljy
配置环境变量
- l 编辑/etc/profile文件:vim /etc/profile
- l 在profile文件中添加的内容:export HADOOP_HOME=/usr/local/hadoop/hadoop、export PATH=$HADOOP_HOME/bin:$PATH
- l 使环境变量生效:source /etc/profile
- l 注意:其他DataNode执行上述同样操作。
图23 hadoop文件夹中的文件目录
图24 /etc/profile文件中添加的内容
配置Hadoop:
- l 移动到hadoop配置文件路径:cd /usr/local/hadoop/hadoop/etc/hadoop
- l 查看当前文件夹中的文件目录:ls
图25 hadoop配置文件夹中的文件目录
- l 配置hadoop-env.sh:export JAVA_HOME=/usr/java/jdk1.7.0_79
- l 添加masters,内容为slave1:vim masters
- l 配置通用属性:vim core-site.xml
1 <configuration> 2 3 <property> 4 5 <!-- NameNode 地址 --> 6 7 <name>fs.defaultFS</name> 8 9 <value>hdfs://master:9000</value> 10 11 </property> 12 13 <property> 14 15 <!-- 临时目录设定 -->16 17 <name>hadoop.tmp.dir</name> 18 19 <value>file:/usr/local/hadoop/hadoop/tmp</value> 20 21 </property> 22 23 <property>24 25 <name>fs.checkpoint.period</name>26 27 <value>3600</value>28 29 </property>30 31 <property>32 33 <name>fs.checkpoint.size</name> //以日志大小间隔 做备份间隔34 35 <value>67108864</value>36 37 </property>38 39 </configuration>
图26 core-site.xml配置内容
- l 配置HDFS属性:vim hdfs-site.xml
1 <configuration> 2 <property> 3 <name>dfs.namenode.secondary.http-address</name> 4 <value>slave1:50090</value> 5 //注意:此处机器名要为另一个。 6 </property> 7 <property> 8 <name>dfs.http.address</name> 9 <value>master:50070</value>10 </property>11 <property>12 <!-- 缺省的块复制数量,默认为3 --> 13 <name>dfs.replication</name> 14 <value>2</value> 15 </property> 16 <property>17 <!-- --> 18 <name>dfs.webhdfs.enable</name> 19 <value>true</value> 20 </property>21 <property>22 <!-- 关闭hdfs权限验证 --> 23 <name>dfs.permissions</name> 24 <value>false</value> 25 </property>26 <property> 27 <!-- 存贮在本地的名字节点数据镜象的目录,作为名字节点的冗余备份 -->28 <name>dfs.namenode.name.dir</name> 29 <value>file:/usr/local/hadoop/hadoop/hdfs/name</value> 30 </property> 31 <property> 32 <!-- 数据节点的块本地存放目录 -->33 <name>dfs.datanode.data.dir</name> 34 <value>file:/usr/local/hadoop/hadoop/hdfs/data</value> 35 </property> 36 </configuration>
图27 hdfs-site.xml配置内容
- l 复制mapred-site.xml.template并重命名为mapred-site.xml:cp mapred-site.xml.template mapred-site.xml
- l 配置MapReduce属性:vim mapred-site.xml
1 <configuration> 2 3 <property> 4 5 <name>mapreduce.framework.name</name> 6 7 <value>yarn</value> 8 9 </property>10 11 <property>12 13 <name>mapreduce.jobhistory.address</name>14 15 <value>master:10020</value>16 17 </property>18 19 <property>20 21 <name>mapreduce.jobhistory.webapp.address</name>22 23 <value>master:19888</value>24 25 </property>26 27 </configuration>
图28 mapred-site.xml配置内容
图29 配置core-site.xml、hdfs-site.xml、mapred-site.xml
- l 配置yarn-site.xml:vim yarm-site.xml
1 <configuration> 2 3 <!-- Site specific YARN configuration properties --> 4 5 <property> 6 7 <name>yarn.nodemanager.aux-services</name> 8 9 <value>mapreduce_shuffle</value> 10 11 </property> 12 13 <property> 14 15 <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> 16 17 <value>org.apache.hadoop.mapred.ShuffleHandler</value> 18 19 </property> 20 21 <property> 22 23 <name>yarn.resourcemanager.address</name> 24 25 <value>master:8032</value> 26 27 </property> 28 29 <property> 30 31 <name>yarn.resourcemanager.scheduler.address</name> 32 33 <value>master:8030</value> 34 35 </property> 36 37 <property> 38 39 <name>yarn.resourcemanager.resource-tracker.address</name> 40 41 <value>master:8031</value> 42 43 </property> 44 45 <property> 46 47 <name>yarn.resourcemanager.admin.address</name> 48 49 <value>master:8033</value> 50 51 </property> 52 53 <property> 54 55 <name>yarn.resourcemanager.webapp.address</name> 56 57 <value>master:8088</value> 58 59 </property> 60 61 </configuration>
图30yarn-site.xml配置内容
- l 配置slaves:vim slaves
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 master ping slave2
- l master ping windows时,需要关闭windows的防火墙。
图33 master ping windows
图34 windows ping master
图35 slave1 ping slave2
12.在master节点格式化hdfs
- l 到bin路径下:cd /usr/local/hadoop/hadoop/bin
- l Hadoop初始化:hdfs namenode -format
13.启动HDFS和YARN
- l 到sbin路径下:lcd /usr/local/hadoop/hadoop/sbin
- l 启动全部服务:start-all.sh
- l 查看:jps
图36 master
图37 slave1
图38 slave2
- 通过浏览器的方式验证:
- http://192.168.56.4:50070 (HDFS管理界面)
图39 HDFS管理界面
- http://192.168.56.4:8088 (YARN管理界面)
图40 YARN管理界面
14.参考文献
安装java1.6 http://www.cnblogs.com/ssslinppp/p/5923298.html
CentOS常用的文件操作命令总结: http://www.haorooms.com/post/centeros_wj_zj
Linux给用户添加sudo权限 :http://blog.chinaunix.net/uid-25305993-id-126661.html
yarn-site.xml参数设置: http://blog.csdn.net/xiaoshunzi111/article/details/51221139
VirtualBox虚拟机网络环境解析和搭建-NAT、桥接、Host-Only、Internal、端口映射 :http://blog.csdn.net/yxc135/article/details/8458939
hadoop(2.x)以hadoop2.2为例完全分布式最新高可靠安装文档: http://www.aboutyun.com/thread-7684-1-1.html
Hadoop之Secondary NameNode : http://blog.csdn.net/zwto1/article/details/50839191
hadoop2.x常用端口、定义方法及默认端口、hadoop1.X端口对比和新旧 Hadoop 脚本 / 变量 / 位置变化表: http://www.aboutyun.com/thread-7513-1-1.html
- 『实践』hadoop2.7.3+Centos6.8+VirtualBox5.1.18搭建hadoop完全分布式集群
- VM12+CentOS6.5+hadoop2.7.3 搭建hadoop完全分布式集群
- 完全分布式的hadoop集群搭建-hadoop2.7.3
- Hadoop完全分布式集群搭建手记(CentOS6.7+Hadoop2.6手把手胸贴胸详细版)
- Hadoop完全分布式集群搭建手记(CentOS6.7+Hadoop2.6手把手胸贴胸详细版)
- Hadoop2.7.3完全分布式集群搭建
- 【Hadoop】hadoop2.7完全分布式集群搭建以及任务测试
- VM+CentOS+hadoop2.7搭建hadoop完全分布式集群
- 搭建hadoop完全分布式集群VM+CentOS+hadoop2.7
- 搭建hadoop完全分布式环境,CentOS6.5安装Hadoop2.7.3完整流程
- 完全分布式模式hadoop集群(hadoop2.7.3)
- hadoop完全分布式集群搭建
- hadoop完全分布式集群搭建
- Hadoop完全分布式集群搭建
- Hadoop完全分布式集群搭建
- Hadoop完全分布式集群搭建
- Hadoop2.7.3完全分布式集群搭建和测试
- centos7 搭建hadoop2.7.3完全分布式集群环境
- Android --- 布局结构属性(一)
- 排序算法总结
- Android Studio引用第三方jar包(例如:使用LitePal)
- 『实践』Android之短信验证码(用的Mob短信验证)
- 『记录』Android参考资料
- 『实践』hadoop2.7.3+Centos6.8+VirtualBox5.1.18搭建hadoop完全分布式集群
- 『转载』hadoop2.x常用端口、定义方法及默认端口
- 『转载』hadoop1.X到2.X的变化
- 『实践』Yalmip获取对偶函数乘子
- 输入m和n两个正整数,求其最大公约数和最小公倍数
- Android中Activity触摸事件传递源码学习
- 『转载』Matlab中fmincon函数获取乘子
- KMD算法
- 『实践』Matlab实现Flyod求最短距离及存储最优路径