展开

Hadoop单机版环境搭建

最后发布时间 : 2023-10-26 11:33:27 浏览量 :

学习资料

配置文件文件存放在Hadoop的jar包中的位置作用
[core-site.xml]hadoop-common-2.7.2.jar/ core-default.xmlhdaoop核心模块配置文件
[hdfs-site.xml]hadoop-hdfs-2.7.2.jar/ hdfs-default.xmlhdfs文件系统模块配置
[yarn-site.xml]hadoop-yarn-common-2.7.2.jar/ yarn-default.xmlyarn模块配置
[mapred-site.xml]hadoop-mapreduce-client-core-2.7.2.jar/ mapred-default.xmlMapReduce模块配置

配置免密登录

Hadoop 组件之间需要基于 SSH 进行通讯,配置免密登录后不需要每次都输入密码。

配置映射,配置 ip 地址和主机名映射

vim /etc/hosts
# 文件末尾增加
192.168.80.100 server

生成公钥私钥

ssh-keygen -t rsa

授权,进入 ~/.ssh 目录下,查看生成的公匙和私匙,并将公匙写入到授权文件:

cd ~/.ssh
cat id_rsa.pub >> authorized_keys
chmod 600 authorized_keys

配置Hadoop

  • hadoop-env.sh
  • hdfs-site.xml
  • core-site.xml

修改配置文件

进入/opt/server/hadoop-3.1.0/etc/hadoop 目录下,修改以下配置:

修改hadoop-env.sh文件,设置JDK的安装路径
vim hadoop-env.sh
export JAVA_HOME=/opt/server/jdk1.8.0_131
修改core-site.xml文件,分别指定hdfs 协议文件系统的通信地址及hadoop 存储临时文件的目录

(此目录不需要手动创建)

<configuration>
	<property>
		<!--指定 namenode 的 hdfs 协议文件系统的通信地址-->
		<name>fs.defaultFS</name>
		<value>hdfs://server:8020</value>
	</property>
	<property>
		<!--指定 hadoop 数据文件存储目录-->
		<name>hadoop.tmp.dir</name>
		<value>/app/hadoop_data</value>
	</property>
</configuration>
修改hdfs-site.xml,指定 dfs 的副本系数
<configuration>
	<property>
		<!--由于我们这里搭建是单机版本,所以指定 dfs 的副本系数为 1-->
		<name>dfs.replication</name>
		<value>1</value>
	</property>
</configuration>
修改workers文件,配置所有从属节点
vim workers
# 配置所有从属节点的主机名或 IP 地址,由于是单机版本,所以指定本机即可:
server

初始化并启动HDFS

关闭防火墙,不关闭防火墙可能导致无法访问 Hadoop 的 Web UI 界面

# 查看防火墙状态
sudo firewall-cmd --state
# 关闭防火墙:
sudo systemctl stop firewalld
# 禁止开机启动
sudo systemctl disable firewalld

初始化,第一次启动 Hadoop 时需要进行初始化,进入 /opt/server/hadoop-3.1.0/bin目录下,执
行以下命令:

cd /opt/server/hadoop-3.1.0/bin
./hdfs namenode -format

Hadoop 3中不允许使用root用户来一键启动集群,需要配置启动用户

cd /opt/server/hadoop-3.1.0/sbin/
# 编辑start-dfs.sh、stop-dfs.sh,在顶部加入以下内容
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

启动HDFS,进入/opt/server/hadoop-3.1.0/sbin/ 目录下,启动 HDFS:

cd /opt/server/hadoop-3.1.0/sbin/
./start-dfs.sh

验证是否启动

  • 方式一:执行 jps 查看 NameNode 和 DataNode 服务是否已经启动:
[root@server bin]# jsp
41032 DataNode
41368 Jps
40862 NameNode
41246 SecondaryNameNode

配置环境变量,方便启动

export HADOOP_HOME=/opt/server/hadoop-3.1.0
export PATH=$PATH:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin
source /etc/profile
 ./hadoop fs -ls /

Hadoop(YARN)环境搭建

  • yarn-env.sh
  • mapred-site.xml
  • yarn-site.xml

修改配置文件

进入/opt/server/hadoop-3.1.0/etc/hadoop 目录下,修改以下配置:

修改yarn-env.sh文件,设置JDK的安装路径
vim yarn-env.sh
export JAVA_HOME=/opt/server/jdk1.8.0_131
修改mapred-site.xml文件
  • yarn stands for MR version 2.
  • classic is for MR version 1
  • local for local runs of the MR jobs.
<configuration>
	<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
	</property>
	<property>
		<name>yarn.app.mapreduce.am.env</name>
		<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
	</property>
	<property>
		<name>mapreduce.map.env</name>
		<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
	</property>
	<property>
		<name>mapreduce.reduce.env</name>
		<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
	</property>
</configuration>
修改yarn-site.xml文件,配置 NodeManager 上运行的附属服务
<configuration>
	<property>
		<!--配置 NodeManager 上运行的附属服务。需要配置成 mapreduce_shuffle 后才可以在Yarn 上运行 MapRedvimuce 程序。-->
		<name>yarn.nodemanager.aux-services</name>
		<value>mapreduce_shuffle</value>
	</property>
</configuration>

启动服务

Hadoop 3中不允许使用root用户来一键启动集群,需要配置启动用户

# start-yarn.sh stop-yarn.sh在两个文件顶部添加以下内容
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

进入 $/sbin/ 目录下,启动 YARN:

./start-yarn.sh

验证是否启动成功

  • 方式一:执行 jps 命令查看 NodeManager 和 ResourceManager 服务是否已经启动
[root@server bin]# jsp
41655 ResourceManager
41032 DataNode
42125 Jps
40862 NameNode
41246 SecondaryNameNode
41983 NodeManager

使用内置程序计算PI值

Hadoop自带的hadoop-mapreduce-examples-x.jar中包含一些示例程序,位于{HADOOP_HOME}/share/hadoop/mapreduce 目录。 进入 /bin/ 目录下,执行以下命令

hadoop jar /opt/server/hadoop-3.1.0/share/hadoop/mapreduce/hadoop-mapreduce-
examples-3.1.0.jar pi 2 10

查看运行效果
./hdfs getconf -confKey fs.defaultFS