Ubuntu部署伪分布式hadoop
-
伪分布式模式:也是单机运行,但是具备Hadoop集群的所有功能,
一台服务器模拟一个分布式的环境 -
ubuntu默认不允许ssh登录 也没有vim,需要你们自己百度安装
Ubuntu默认安装了openssh-client;
没有安装openssh-server,因此想远程SSH登陆Ubuntu;
需要先在Ubuntu上安装openssh-serverapt-get install openssh-server
完毕后重启
/etc/init.d/ssh restart
-
ubuntu默认不允许root开始ssh远程访问,
vim /etc/ssh/sshd_config
-
修改此配置文件,开启22端口, 将 PermitRootLogin 参数修改为 yes
-
允许root登录
-
关闭防火墙 示例:enable 开启 disable 关闭 status 状态
sudo ufw disable
- 新增用户
useradd-s /bin/bash -m xiaofa
- 设置密码
passwd xiaofa
- 加sudo权限
usermod -aG sudo xiaofa
- 配置免密登录,切换root用户也配置一下免密
- 生成密钥
ssh-keygen -t rsa
ssh-copy-id 主机名 - 创建目录
mkdir -p module software
- 安装jdk\hadoop并配置环境变量,上传tar包到目录,解压缩,配置环境变量
jdk 操作步骤 解压到指定目录()
tar -zxvf jdk-8u212-linux-x64.tar.gz -C …/module/
cd module/jdk1.8.0_212/
pwd
/home/xiaofa/module/jdk1.8.0_212
hadoop操作步骤 解压到指定目录()
tar -zxvf hadoop-3.1.3.tar.gz -C …/module/
cd module/hadoop-3.1.3/
pwd
/home/xiaofa/module/hadoop-3.1.3
13:修改环境变量
sudo vim /etc/profile.d/my_env.sh
#JAVA_HOME
export JAVA_HOME=/home/xiaofa/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin
#HADOOP_HOME
export HADOOP_HOME=/home/xiaofa/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
14:进入hadoop安装目录下,修改对应hadoop文件
cd module/hadoop-3.1.3/etc/hadoop/
15:修改 核心配置文件 core-site.xml:
<configuration>
<!-- 指定NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:8020</value>
</property>
<!-- 指定hadoop数据的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-3.1.3/data</value>
</property>
<!-- 配置HDFS网页登录使用的静态用户为xiaofa -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>xiaofa</value>
</property>
</configuration>
16:修改 HDFS文件 hdfs-size.xml: 默认情况下,dfs.replication属性的值为3 ,
目前部署的是单节点,所以要指定它为1副本
<configuration>
<property>
<!--由于我们这里搭建是单机版本,所以指定 dfs 的副本系数为 1-->
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
16.1: vim hadoop-env.sh 取消注释,改为自己的JAVA_HOME地址
17:修改 workers 默认本地,故不用修改(集群模式需要添加节点主机名或IP进去)
18:修改YARN配置文件 vim yarn-site.xml
在单节点Hadoop集群中,可以使用Hadoop的本地模式(local mode)来运行MapReduce任务,而不需要使用YARN和ResourceManager。在本地模式下,MapReduce任务将在单个进程中运行,而不是在集群中分配资源和运行任务。
因此,在单节点Hadoop集群中,不需要指定ResourceManager,也不需要配置YARN框架。只需要确保Hadoop的核心组件(如HDFS、MapReduce等)正确配置和启动即可
<configuration>
<!-- 指定MR走shuffle -->
<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>
19:修改MapReduce配置文件 vim mapred-site.xml
<configuration>
<!-- 指定MapReduce程序运行在Yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
20:第一次启动,需要格式化文件系统,非root用户启动,注意!!!
格式化
如果集群是第一次启动,需要在master节点格式化NameNode(注意:格式化NameNode,会产生新的集群id,导致NameNode和DataNode的集群id不一致,集群找不到已往数据。如果集群在运行过程中报错,需要重新格式化NameNode的话,一定要先停止namenode和datanode进程,并且要删除所有机器的data和logs目录,然后再进行格式化
hdfs namenode -format
启动HDFS 启动NameNode守护进程和DataNode守护进程:
sbin/start-dfs.sh
启动YARN NodeManager和 ResourceManager进程
sbin/start-yarn.sh
Web端查看HDFS的NameNode
浏览器中输入:http://这里替换成你主机的ip地址:9870
Web端查看YARN的ResourceManager
浏览器中输入:http://这里替换成你主机的ip地址:8088
各个服务组件逐一启动/停止
(1)分别启动/停止HDFS组件
sbin/stop-dfs.sh
(2)启动/停止YARN
sbin/stop-yarn.sh
常用端口号说明