安装hadoop3.3.6集群

背景

去年写了一篇编译ranger2.4.1 文章。有网友说部署ranger2.4.1 后,在对接hive地方老报错。所以一探究竟,为其搭建ranger 2.4.1环境。ranger 2.4.1对接hive ,需要安装hive,而hive又依赖hadoop.所以决定先安装hadoop.

安装jdk1.8.0

这个比较简单,将jdk1.8.0_201解压到/usr/java目录

tar -zxvf /setup/jdk1.8.0_201.tar -C /usr/java

在这里插入图片描述
然后在/etc/profile增加jdk路径及JAVA_HOME环境变量

vi /etc/profile

在这里插入图片描述
:wq保存后,执行source /etc/profile 使得环境变量生效

source /etc/profile

验证java 版本
在这里插入图片描述

安装hadoop3.3.6 集群

网络规划

主机名地址
master192.31.11.194
slave2192.31.11.195
slave3192.31.11.196
slave4192.31.11.197

关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

四台机都做

添加ip映射

vi /etc/hosts

在/etc/hosts的末尾添加

192.31.11.194 master
192.31.11.195 slave2
192.31.11.196 slave3
192.31.11.197 slave4

集群每台都加上

修改主机名

在master,slave2,slave3,slave4 机,使用root用户分别执行
hostnamectl set-hostname master
hostnamectl set-hostname slave2
hostnamectl set-hostname slave3
hostnamectl set-hostname slave4

创建hdfs用户

为了安全起见,不建议直接使用root用户,在集群每台机创建

sudo useradd hdfs -m -s /bin/bash
sudo passwd hdfs  # 设置密码

配置免密登录

切换到master机器,切换到hdfs用户,创建密钥

su - hdfs
ssh-keygen -t rsa

都默认敲回车就行

把公钥复制到各个节点,第一次登陆会让输入密码

ssh-copy-id hdfs@master
ssh-copy-id hdfs@slave2
ssh-copy-id hdfs@slave3
ssh-copy-id hdfs@slave4

验证免密是否成功
ssh slave2
在这里插入图片描述
如上图表示成功

安装hadoop3.3.6

解压tar包
tar -zxvf /setup/hadoop3.3.6.tar.gz -C /opt
修改配置文件

1.配置Hadoop环境变量

vi /etc/profile
export HADOOP_HOME=/opt/hadoop-3.3.6
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

测试Hadoop环境变量是否成功
在这里插入图片描述
2.hadoop-env.sh

cd $HADOOP_HOME/etc/hadoop
vi hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_201/
 
export HDFS_NAMENODE_USER=hdfs
export HDFS_DATANODE_USER=hdfs
export HDFS_SECONDARYNAMENODE_USER=hdfs
export YARN_RESOURCEMANAGER_USER=hdfs
export YARN_NODEMANAGER_USER=hdfs

3.core-site.xml

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/hadoop-3.3.6</value>
    </property>
    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>hdfs</value>
    </property>
    <property>
    	<name>hadoop.proxyuser.root.hosts</name>
    	<value>*</value>
    </property>
    <property>
   	<name>hadoop.proxyuser.root.groups</name>
    	<value>*</value>
    </property>
    <property>
   	<name>fs.trash.interval</name>
    	<value>1440 </value>
    </property>
</configuration>

4.hdfs-site.xml

<configuration>
<property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
        <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>slave2:9868</value>
    </property>
</configuration>
  1. mapred-site.xml
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
        <property>
            <name>mapreduce.jobhistory.address</name>
            <value>master:10020</value>
        </property>
        <property>
            <name>mapreduce.jobhistory.webapp.address</name>
            <value>master:19888</value>
        </property>
</configuration>

6.yarn-site.xml

<configuration>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
            <name>yarn.nodemanager.pmem-check-enabled</name>
            <value>false</value>
    </property>
    <property>
            <name>yarn.nodemanager.vpmem-check-enabled</name>
            <value>false</value>
    </property>
    <property>
            <name>yarn.log-aggregation-enable</name>
            <value>true</value>
    </property>
    <property>  
            <name>yarn.log.server.url</name>
            <value>http://master:19888/jobhistory/logs</value>
    </property>
    <property>
            <name>yarn.log-aggregation.retain-seconds</name>
            <value>604800</value>
    </property>
</configuration>

7.workers

vi workers

将localhost改为
在这里插入图片描述

文件分发

文件从master机器分发到其他三台机,省得再配一遍

分发jdk安装目录
scp -r /usr/java/jdk1.8.0_201 hdfs@slave2:~
scp -r /usr/java/jdk1.8.0_201 hdfs@slave3:~
scp -r /usr/java/jdk1.8.0_201 hdfs@slave4:~

因为hdfs用户没有权限直接访问/usr目录,所以先复制到它的Home目录,然后再本机root用户再挪位置
slave2,slave3,slave4 三台执行以root用户如下命令

# mkdir /usr/java
# mv /home/hdfs/jdk1.8.0_201 /usr/java/jdk1.8.0_201
分发hadoop安装目录
scp -r /opt/hadoop3.3.6 hdfs@slave2:~
scp -r /opt/hadoop3.3.6 hdfs@slave3:~
scp -r /opt/hadoop3.3.6 hdfs@slave4:~

同理切换到各自机器使用root用户挪到/opt目录

分发环境变量
scp -r /etc/profile hdfs@slave2:~
scp -r /etc/profile hdfs@slave3:~
scp -r /etc/profile hdfs@slave4:~

同理切换到各自机器使用root用户挪到/etc目录

启停集群

hdfs用户授权(四台机都执行)
sudo chown -R hdfs:hdfs /opt/hadoop3.3.6
sudo chmod -R 755 /opt/hadoop3.3.6
sudo setfacl -R -m u:hdfs:rx /usr/java
sudo chmod +x /usr/java/jdk1.8.0_201/bin/java
sudo chown -R root:root /usr/java/jdk1.8.0_201

在slave2、slave3,slave4 中使用source /etc/profile命令初始化系统环境变量

验证是否有权限
ssh hdfs@slave2 "java -version"

在这里插入图片描述
如果能显示java版本号,就表示有权限

在master机器启动集群

首次启动集群需要先格式化 NameNode 节点

在master上执行

hdfs namenode -format

启动集群

start-dfs.sh
start-yarn.sh

四台节点jps查看
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
网页界面
本地浏览器中查看 Hadoop web 界面:192.31.11.194 :9870(看文件结构),
如果要看任务运行,进入192.31.11.194:8088
在这里插入图片描述

停止集群
stop-all.sh

最后

好,hadoop3.3.6集群部署,就写到这里。如需沟通:lita2lz

### Hadoop 3.3.6 集群配置教程 #### 创建用户和安装Java环境 为了确保Hadoop能够正常运行,在所有节点上创建`hadoop`用户,并为其设置密码。之后,安装JDK并配置JAVA_HOME环境变量[^2]。 ```bash sudo useradd hadoop echo "hadoop:hadoop" | sudo chpasswd ``` 接着,下载并解压JDK至指定目录,编辑`.bashrc`文件来设定必要的环境变量: ```bash export JAVA_HOME=/usr/local/jdk1.8.0_XXX export PATH=$PATH:$JAVA_HOME/bin ``` #### SSH无密码登录配置 为了让各个节点之间可以无障碍通信,需配置SSH免密登录功能。这一步骤对于后续的数据传输至关重要[^3]。 ```bash ssh-P &#39;&#39; -f ~/.ssh/id_rsa cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 0600 ~/.ssh/authorized_keys ``` #### 复制Hadoop安装文件到集群各节点 通过SCP命令将本地已准备好的Hadoop压缩包分发给其他成员机器上的相同路径下[^1]。 ```bash scp -qr /opt/app/hadoop-3.3.6 hadoop101:/opt/app/ scp -r /opt/app/hadoop-3.3.6 hadoop102:/opt/app/ ``` #### 修改核心配置文件 进入Hadoop的配置目录,调整如下几个重要参数以适应实际部署情况: - `core-site.xml`: 设置namenode主机名以及默认FS URI。 ```xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> </configuration> ``` - `hdfs-site.xml`: 指定数据存储位置以及其他高级选项。 ```xml <configuration> <property> <name>dfs.replication</name> <value>3</value> </property> </configuration> ``` - `yarn-site.xml`: 如果启用了YARN,则还需进一步定制资源管理器相关属性。 最后执行初始化操作完成整个过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值