服务器搭建Hadoop环境详细指南
环境准备与依赖安装
在服务器上部署Hadoop集群需要满足硬件、软件及网络条件,以下是关键准备事项:
项目 | 要求 |
---|---|
操作系统 | CentOS 7+/Ubuntu 18+(64位) (推荐CentOS,兼容性更优) |
内存 | Master节点≥4GB,Salve节点≥2GB(实际生产环境需更高配置) |
硬盘 | Master节点≥20GB(用于存储HDFS元数据),Salve节点≥10GB(存储数据块) |
Java环境 | JDK 1.8+(Hadoop 3.x兼容,需配置JAVA_HOME ) |
SSH免密登录 | 所有节点需通过SSH Key认证实现无密码登录(需关闭密码登录以提升安全性) |
主机名解析 | 修改/etc/hosts 文件,确保所有节点主机名与IP对应(如168.1.100 master ) |
操作步骤:
安装Java
yum install java-1.8.0-openjdk -y # CentOS apt-get install openjdk-8-jdk -y # Ubuntu
配置环境变量:
echo "export JAVA_HOME=/usr/lib/jvm/java-1.8.0" >> /etc/profile source /etc/profile
配置SSH免密登录
- 在Master节点生成密钥:
ssh-keygen -t rsa
(按提示一路回车) - 将公钥复制到所有Salve节点:
ssh-copy-id -i ~/.ssh/id_rsa.pub user@slave1 ssh-copy-id -i ~/.ssh/id_rsa.pub user@slave2
- 测试免密登录:
ssh user@slave1 "hostname"
- 在Master节点生成密钥:
Hadoop安装与配置
下载Hadoop
从Apache官网下载稳定版(如Hadoop 3.4.0):wget https://downloads.apache.org/hadoop/common/hadoop-3.4.0.tar.gz tar -xzvf hadoop-3.4.0.tar.gz -C /opt/ mv /opt/hadoop-3.4.0 /opt/hadoop
配置环境变量
编辑/etc/profile
,添加以下内容:export HADOOP_HOME=/opt/hadoop export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
使配置生效:
source /etc/profile
修改配置文件
core-site.xml
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> <!-Master节点主机名 --> </property> </configuration>
hdfs-site.xml
<configuration> <property> <name>dfs.replication</name> <value>3</value> <!-副本数,需≤Salve节点数量 --> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:///opt/hadoop/data/nameNode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:///opt/hadoop/data/dataNode</value> </property> </configuration>
mapred-site.xml
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
yarn-site.xml
<configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>master</value> <!-ResourceManager地址 --> </property> </configuration>
分发Hadoop到Salve节点
scp -r /opt/hadoop user@slave1:/opt/ scp -r /opt/hadoop user@slave2:/opt/
格式化NameNode与启动集群
初始化HDFS
仅在Master节点执行(首次启动时需格式化):hdfs namenode -format # 格式化后会清空数据,谨慎操作!
启动Hadoop服务
- Master节点启动:
start-dfs.sh # 启动HDFS(NameNode+DataNode) start-yarn.sh # 启动YARN(ResourceManager+NodeManager)
- Salve节点只需执行:
start-dfs.sh # 仅启动DataNode start-yarn.sh # 仅启动NodeManager
- Master节点启动:
验证集群状态
- HDFS Web界面:http://master:9870
- YARN Web界面:http://master:8088
- 执行测试命令:
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.4.0.jar wordcount /input /output
常见问题与解决方案
问题 | 解决方案 |
---|---|
SSH连接失败(Host key not found) | 确保所有节点已配置SSH免密登录,并重启SSH服务:systemctl restart sshd |
DataNode未加入集群 | 检查hdfs-site.xml 中的dfs.namenode.name.dir 路径是否正确,并重启DataNode |
NameNode无法启动 | 确认core-site.xml 中的fs.defaultFS 地址正确,且防火墙已开放9000端口 |
FAQs
Q1:Hadoop 2.x与3.x版本如何选择?
A1:Hadoop 3.x支持容器化(Docker)、支持本地Kerberos集成,且修复了2.x中的多个Bug,若需新特性或长期维护,建议选3.x;若依赖旧生态组件(如Titanium),则需用2.x。
Q2:Secondary NameNode的作用是什么?
A2:Secondary NameNode并非NameNode的备份,它的作用是定期合并NameNode的编辑日志(Edit Log)和元数据镜像(FsImage),减少NameNode重启时间,Hadoop 3.x已弃用该组件,改用CheckPoint机制。
小编有话说
搭建Hadoop环境看似复杂,但只要按步骤操作并注意细节(如路径大小写、防火墙配置),就能快速上手,建议新手先在单机上通过伪分布式模式(hdfs namenode -format
后直接运行start-dfs.sh
)熟悉流程,再过渡到多节点集群,务必备份$HADOOP_CONF_DIR
目录下的配置文件,避免误操作导致集群瘫痪
各位小伙伴们,我刚刚为大家分享了有关“服务器搭建hadoop环境”的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复