宝塔山 发表于 2025-3-30 20:21:44

Hadoop的伪分布式搭建

Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。

Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,伪分布式至少需要修改2个配置文件 core-site.xml 和 hdfs-site.xml。Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。

1.修改文件内容


进入文件目录:

cd ~/Desktop/hadoop/etc/hadoop/ 首先修改hadoop-env.sh配置文件的export JAVA_HOME=这一行,主要内容为:
sudo vim hadoop-env.sh export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH 注意将以上的文件路径更换为你实际上Java下载的路径(路径可使用如下下令查):
 
echo $JAVA_HOME
修改core-site.xml文件:
 

首先编辑
sudo vim core-site.xml 把<configuration></configuration>部门修改为以下内容:
<configuration>
    <property>
      <name>hadoop.tmp.dir</name>
      <value>file:/usr/local/hadoop/tmp</value>
      <description>Abase for other temporary directories.</description>
    </property>
    <property>
      <name>fs.defaultFS</name>
      <value>hdfs://localhost:9000</value>
    </property>
</configuration> 注意:
fs.defaultFS属性设置的IP地址或主机名按实际情况修改,端口也可以改成一个跟系统在用的端口不辩论的数字,hadoop.tmp.dir属性指定了Hadoop的临时工作目录。

修改hdfs-site.xml文件


编辑文件:
 
sudo vim hdfs-site.xml 把<configuration></configuration>部门修改为以下内容:
<configuration>
    <property>
      <name>dfs.replication</name>
      <value>1</value>
    </property>
    <property>
      <name>dfs.namenode.name.dir</name>
      <value>/home/huangyingyuan/Desktop/hadoop/data/namenode</value>
    </property>
    <property>
      <name>dfs.datanode.data.dir</name>
      <value>home/huangyingyuan/Desktop/hadoop/data/datanode</value>
    </property>
</configuration> 注意:
dfs.namenode.name.dir和dfs.datanode.data.dir属性指定NameNode和DataNode的目录【注意更换】

2.实行NameNode的格式化:
 

hdfs namenode -format
注意!如果出现mkdir失败的题目【即文件不存在且无法创建的题目】就是你当前地点的用户没有权限对hadoop这个文件举行修改编辑:请你实行以下下令授予权限即可
sudo chown -R huangyingyuan:huangyingyuan /home/huangyingyuan/Desktop/hadoop 请将huangyingyuan更换成你自己的用户名, 文件夹也是


如果实行成功的话,就会看到“seccessfully formatted”出现:
https://i-blog.csdnimg.cn/img_convert/cca3cda64d14963c8041173dc7669887.png

3.然后启动Hadoop:

start-dfs.sh 启动之后通过jps下令可以看到NameNode、SecondaryNameNode和DataNode三个进程表示启动成功(如果少一个进程没成功的话,都是前面的那一步配置进程出现了题目【建议回去查抄一下配置】)

再输入jps查抄是否java情况有效
jps
注意!
出现以下题目请重新操作:
题目:


没有表现jps进程:

注意!若没有表现jps进程的话,则实行以下下令去重新安装jdk即可
sudo apt update
sudo apt install openjdk-11-jdk-headless 然后重新查抄hadoop-env的java路径是否正确:
sudo vim hadoop-env.sh 确保该文件下有这一行:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
然后重新启动集群:
start-dfs.sh 成功后会看到如下进程启动:
https://i-blog.csdnimg.cn/img_convert/dfb83904bbcf3596d4284b3bf1de9f66.png
但是如果你再次使用“jps”下令的时候,没看到hadoop的进程,说明启动失败

使用jps没有看到hadoop的进程:


以下方法办理使用“jps”没有看到hadoop进程的题目:
1.查抄java情况配置:
 
# 检查 JAVA_HOME 环境变量
echo $JAVA_HOME

# 打开 hadoop-env.sh 文件进行编辑
vim ~/Desktop/hadoop/etc/hadoop/hadoop-env.sh

# 确保以下行存在且配置正确
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64# 根据实际安装路径修改

# 保存并退出编辑器,然后使配置生效
source ~/.bashrc
查抄配置文件:
1.core-site.xml
<configuration>
    <property>
      <name>fs.defaultFS</name>
      <value>hdfs://localhost:9000</value>
    </property>
</configuration> 2.hdfs-site.xml
<configuration>
    <property>
      <name>dfs.namenode.name.dir</name>
      <value>/home/huangyingyuan/Desktop/hadoop/data/namenode</value># 根据实际情况修改
    </property>
    <property>
      <name>dfs.datanode.data.dir</name>
      <value>/home/huangyingyuan/Desktop/hadoop/data/datanode</value># 根据实际情况修改
    </property>
</configuration>
查抄权限:
chmod -R 755 ~/Desktop/hadoop
打开防火墙:
那些数字是进程号
sudo ufw allow 9000
sudo ufw allow 9870
final:测试Hadoop


1.创建新的目录


在自家创建新的目录,如
vim data.txt 输入一下内容并保存
Hello World
Hello Hadoop
2.创建文件夹


在HDFS下创建文件夹input:
hdfs dfs-mkdir /input
题目:
 

使用下令“hdfs dfs -mkdir /input”表现毗连失败的办理方案:

# 进入Hadoop的sbin目录(路径根据你的安装位置调整)
cd ~/Desktop/hadoop/sbin
# 启动HDFS服务
./start-dfs.sh 查抄hadoop进程是否举行
jps 查抄端口是否被占用
netstat -tuln | grep 9000 关闭防火墙
sudo ufw disable 格式化Namenode
hdfs namenode -format 重启服务
./stop-dfs.sh && ./start-dfs.sh 最后再次使用下令查抄是否有效【一般来说肯定是办理题目的了】:
hdfs dfs -mkdir -p /input


将data.txt上传到HDFS的input目录:
hdfs dfs -put ~/data.txt /input


检察是否上传成功:
hdfs dfs -cat /input/data.txt 成功的标记:
https://i-blog.csdnimg.cn/img_convert/48caeb93760579ced9cdcd25e0cb890d.png

关闭hadoop的进程:
 

做完后肯定肯定要关闭进程!!!
stop-dfs.sh
以上是配置hadoop的伪分布式的学习,有什么题目随时练习,咱们下期再见!!


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Hadoop的伪分布式搭建