Hadoop 安装

环境说明:

操作系统环境为debian 11.hadoop版本:2.10.2。集群规划 4个节点,一个master,3个slave.对应的ip:hostname为
172.22.7.1 host1
172.22.7.2 host2
172.22.7.3 host3
172.22.7.4 host4

1. 环境准备

1.1 host配置和主机名

自行配置

1.1 配置hadoop用户

可以使用root,但是注意设置最大打开文件数。

新增用户组:
groupadd hadoop
新增名为hadoop的用户,并将其添加到hadoop组:
useradd –g hadoop Hadoop
修改用户hadoop的密码:
passwd hadoop
将 hadoop 增加为 sudo 用户:
visudo
找到 root ALL=(ALL)ALL,在之后新增一行:
hadoop ALL=(ALL) ALL

1.2 安装jdk

用的是1.8 自行安装.

1.3 SSH免密码登录

一般主节点到各个节点免密即可了。
生成密钥

ssh-keygen -t rsa

本机免密访问(有需要的话)

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chomd 0600 ~/.ssh/authorized_keys

把密钥复制到所有节点上:

ssh-copy-id –i ~/.ssh/id_rsa.pub hadoop@host1
ssh-copy-id –i ~/.ssh/id_rsa.pub hadoop@ host2
ssh-copy-id –i ~/.ssh/id_rsa.pub hadoop@ host3

验证

1.4 关闭防火墙

关闭四台服务器的防火墙和SELINUX

service iptables status
service iptables stop
chkconfig iptables off

1.5 关闭SElinux

关闭SELINUX后,需要重启服务器(debian11没有安装selinux,可以不用设置)

vim /etc/selinux/config

– 注释掉

#SELINUX=enforcing
#SELINUXTYPE=targeted

– 添加

SELINUX=disabled

2. 解压安装包(master节点)

tar -xzvf hadoop-2.10.2.tar.gz -C /usr/local/hadoop

3. 配置环境变量

export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
source /etc/profile

4. 修改hadoop-env.sh

export  JAVA_HOME=/usr/lib/jvm/jdk1.8

5. 修改配置文件

1.core-site.xml

通过fs.default.name指定NameNode的IP地址和端口号,
通过hadoop.tmp.dir指定hadoop数据存储的临时文件夹。

<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://host1:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
</configuration>

特别注意:如没有配置hadoop.tmp.dir参数,此时系统默认的临时目录为:/tmp/hadoo-hadoop。而这个目录在每次重启后都会被删除,必须重新执行format才行,否则会出错。最好手动创建。

配置hdfs-site.xml

修改HDFS核心配置文件/usr/local/hadoop/etc/hadoop/hdfs-site.xml,
通过dfs.replication指定HDFS的备份因子为3,
通过dfs.name.dir指定namenode节点的文件存储目录,
通过dfs.data.dir指定datanode节点的文件存储目录。
最好手动在master节点创建文件目录。

<configuration>
<property>
	<name>dfs.replication</name>
	<value>3</value>
</property>
<property>
	<name>dfs.name.dir</name>
	<value>/usr/local/hadoop/hdfs/namenode</value>
</property>
<property>
	<name>dfs.data.dir</name>
	<value>/usr/local/hadoop/hdfs/datanode</value>
</property>
</configuration>

配置mapred-site.xml

cp mapred-site.xml.template mapred-site.xml
<configuration>
<property>
	<name>mapreduce.framework.name</name>
	<value>yarn</value>
</property>
</configuration>

配置yarn-site.xml

<configuration>
<property>
	<name>yarn.nodemanager.aux-services</name>
	<value>mapreduce_shuffle</value>
</property>
<property>
	<name>yarn.resourcemanager.hostname</name>
	<value>host1</value>
</property>
</configuration>

配置slaves文件(Master特有)

vi /usr/local/hadoop/etc/hadoop/slaves

host2
host3
host4

6. 配置slave

1.复制hadoop到数据节点

scp -r /usr/local/hadoop host2:/usr/local/
scp -r /usr/local/hadoop host3:/usr/local/
scp -r /usr/local/hadoop host4:/usr/local/

2.配置环境变量

export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
source /etc/profile

3.删除slaves内容

rm -rf /usr/local/hadoop/etc/hadoop/slaves

7. 启动集群

1.格式化HDFS文件系统

bin/hdfs namenode -format

格式化namenode,第一次启动服务前执行的操作,以后不需要执行。
2.启动hadoop:

sbin/start-all.sh

或者
使用start-dfs.sh 启动NameNode和DataNode
使用start-yarn.sh 启动资源管理器和节点管理器

8. 简单使用

使用jps命令查看运行情况

#master 执行 jps查看运行情况

12067 NameNode
12347 SecondaryNameNode
12573 ResourceManager

#slave 执行 jps查看运行情况

17104 NodeManager
16873 DataNode

命令查看Hadoop集群的状态

我们可以通过hadoop dfsadmin -report进行查看。用该命令可以快速定位出哪些节点挂掉了,HDFS的容量以及使用了多少,以及每个节点的硬盘使用情况。

bin/hdfs dfsadmin -report

输出结果:

hadoop 重启

sbin/stop-all.sh
sbin/start-all.sh

Web查看集群情况

hadoop集群的状态
http://host1:50070/
yarn的工作状态 ResourceManager的web界面
http://host1:8088/cluster/nodes

如何重置hdfs

把namenode的目录和datanode的目录都删掉,然后重新走格式化就行了

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐