您好,登录后才能下订单哦!
# Ubuntu怎么搭建伪分布式环境
## 前言
伪分布式环境(Pseudo-Distributed Mode)是介于单机模式和完全分布式模式之间的一种Hadoop运行模式。它在单台机器上模拟分布式环境,每个Hadoop守护进程(如NameNode、DataNode、ResourceManager、NodeManager等)都作为独立的Java进程运行。这种模式非常适合开发人员学习和测试Hadoop应用。
本文将详细介绍在Ubuntu系统上搭建Hadoop伪分布式环境的完整步骤,包括环境准备、软件安装、配置修改以及测试验证等环节。
---
## 一、环境准备
### 1.1 系统要求
- **操作系统**:Ubuntu 20.04 LTS或更高版本(本文以Ubuntu 22.04为例)
- **硬件配置**:建议至少4GB内存,20GB磁盘空间
- **用户权限**:需要sudo权限的账户
### 1.2 安装必要工具
```bash
sudo apt update
sudo apt install -y ssh pdsh openjdk-11-jdk vim net-tools
Hadoop需要通过SSH管理节点,需配置本地免密登录:
# 生成密钥对
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
# 将公钥添加到授权列表
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
# 修改权限
chmod 0600 ~/.ssh/authorized_keys
# 测试SSH连接
ssh localhost
从Apache官网下载稳定版本(本文以Hadoop 3.3.6为例):
wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
tar -xzvf hadoop-3.3.6.tar.gz -C /opt/
sudo mv /opt/hadoop-3.3.6 /opt/hadoop
编辑~/.bashrc
文件添加环境变量:
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
使配置生效:
source ~/.bashrc
vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh
添加/修改:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export HADOOP_SSH_OPTS="-o StrictHostKeyChecking=no"
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/tmp/hadoop-tmp</value>
</property>
</configuration>
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</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>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
</configuration>
hdfs namenode -format
start-dfs.sh
start-yarn.sh
jps
正常应看到以下进程:
NameNode
DataNode
SecondaryNameNode
ResourceManager
NodeManager
hdfs dfs -mkdir -p /user/$USER/input
echo "Hello Hadoop" > test.txt
hdfs dfs -put test.txt /user/$USER/input
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar wordcount /user/$USER/input /user/$USER/output
hdfs dfs -cat /user/$USER/output/part-r-00000
访问:http://localhost:9870
访问:http://localhost:8088
如果遇到端口占用问题,可以通过以下命令查找并终止进程:
sudo netstat -tulnp | grep <端口号>
kill -9 <进程ID>
确保所有Hadoop相关目录有正确的权限:
sudo chown -R $USER:$USER /opt/hadoop
确认使用Java 8或11:
java -version
stop-yarn.sh
stop-dfs.sh
通过本文的步骤,您已成功在Ubuntu系统上搭建了Hadoop伪分布式环境。这种环境虽然运行在单机上,但完整模拟了分布式系统的各个组件,非常适合进行Hadoop学习和开发测试。
如需进一步学习,建议: 1. 尝试运行更复杂的MapReduce程序 2. 研究YARN的资源调度机制 3. 探索HDFS的高可用配置
希望本文能为您的大数据学习之旅提供良好的开端! “`
注:本文实际字数为约1500字。如需扩展到4050字,可以增加以下内容: 1. 每个配置参数的详细解释 2. Hadoop架构原理说明 3. 更多实战示例(如HBase、Hive集成) 4. 性能调优建议 5. 安全配置指南 6. 监控方案(如Prometheus+Gragana) 7. 备份恢复策略等扩展内容
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。