Hadoop基础之环境搭建
环境搭建
- 本地环境
- 可以用于开发的单节点模式,没有分布式的概念
- 伪分布式环境
- 一个节点表示一整个集群,但是分布式的概念,一个节点充当分布式里的所有角色
- 完全分布式
- 一个集群中有N个节点,他们分别充当分布式中不同的角色,完成不同的任务
伪分布式环境搭建
- 下载安装包
- 配制环境变量
#set hadoop enviornment
export HADOOP_HOME=/home/bduser/model/hadoop-2.7.6
PATH=$PATH:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin
- 修改配制文件
- hdfs-site.xml
<configuration> <property> <name>dfs.namenode.secondary.http-address</name> <value>hadoop100:9001</value> </property> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/home/bduser/model/hadoop-2.7.6/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/home/bduser/model/hadoop-2.7.6/dfs/data</value> </property> <property> <name>dfs.namenode.checkpoint.dir</name> <value>/home/bduser/model/hadoop-2.7.6/dfs/secondaryName</value> </property> <property> <name>dfs.hosts</name> <value>/home/user/modules/hadoop/etc/hadoop/dfs</value> </property> <property> <name>dfs.hosts.exclude</name> <value>/home/user/modules/hadoop/etc/hadoop/dfs.hosts.exclude</value> </property> </configuration>
- core-size.xml
<configuration> <property> <name>fs.default.name</name> <value>hdfs://hadoop100:9000</value> </property> <property> <name>net.topology.node.switch.mapping.impl</name> <value>hdfs.RackPerception</value> </property> </configuration>
- yarn-size.xml
<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.resourcemanager.hostname</name> <value>hadoop100</value> </property> </configuration>
- slaves
- 填写DataNode从节点
- hadoop-env.sh
- 修改JAVA_HOME路径
- 填写DataNode节点
- 格式化Hadoop
- hadoop namenode format
- 启动
- hadoop/sbin/start-all.sh
- 需要什么启动什么
- 注意事项
- 配置前
- jdk
- ssh免密登录
- 防火墙关闭
- 如果访问不到webUI
- 检查防火墙
- 检查映射关系
- 浏览器不能使用IE或兼容模式
- 需要格式化时
- 关闭服务
- 删除创建出来的文件
- 重新格式化
完全分布式
- 角色分配
- 第一台机器,NameNode,R esourcesManager
- 中间机器,DataNode,NodeManager
- 最后一台机器,DataNode,SecondaryNameNode
- 配制过程:虚拟机为例
- 克隆虚拟机
- 修改物理地址
- sudo vim /etc/udev/rules.d/70-persistent-net.relus
- 将原网卡注释掉
- 将新网卡改名为原网卡
- 记录网卡的物理地址
- 修改IP地址
- sudo vim /etc/sysconfig/network-scripts/ifcfg-etho
- 修改网卡配制文件中的物理地址,将记录的物理地址写入
- 修改ip地址
- 重启网络:service network restart
- 修改主机名
- sudo vim /etc/sysconfig/network
- HOSTNAME=新主机名
- 重新启动:reboot
- 免密登录
- 由于节点时完整复制的,包括ssh
- 不需要重新配制
- 如果是实体机,需要将不同的公钥附加到authorized_keys
- 修改Hadoop配制文件
- 修改配制文件
- 同步到所有节点
- rsync -r 原路径/原文件 目标用户名@目标地址:目标路径
- 核心命令:rsync,用法与scp一致
- 区别:
- scp全部复制
- rsync只同步不一样的
- 可以使用脚本来快速操作
- 远程操作所有节点
- xcall
- 核心命令:ssh 用户 主机名/ip 命令
- 格式化Hadoop集群
- 只在主节点格式化
- hadoop/hdfs namenode -format
- 启动服务
- 常见问题
- 时间不同步导致服务启动失效
- 使用网络,连接国家受时中心进行自动同步
- 使用date命令手动设置
- 端口占用问题
- 多次格式化问题
- 如果多次格式化会导致dfs的id信息与集群不同步
- 在启动hadoop时,如果SecondaryNameNode没有起来,很有可能是所需要的端口被占用,检查是什么服务已经占据了端口,进行修改
- 删除dfs目录,重新格式化
如有问题,请发送邮件至buxiaqingcheng@163.com或者buxiaqingcheng@dingtalk.com