ARM Linux 安装Hadoop3.3.5(需要对应的arrch安装包,与x86不兼容)

目录

一、准备环境

二、安装JDK8

三、关闭Centos7的防火墙

四、三台机器之间的免密登录

4.1修改三台机器的主机名

4.2三台机器设置主机名映射

4.3使用命令生成密钥

4.4使用命令复制SSH密钥到目标主机,开启无密码SSH登录

4.5验证

五、安装Hadoop

5.1 下载安装包(arrch)

5.2安装


一、准备环境

        准备三台机器,本次是安装在linux上,操作系统为centos7,系统架构为arm

二、安装JDK8

#进入JDK所在目录
cd /usr/local/soft/java

#root用户解压
tar zxvf jdk-8u361-linux-x64.tar.gz

#root配置环境变量
vim /etc/profile
export JAVA_HOME=/usr/local/soft/java/jdk1.8.0_361
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
#使环境变量生效
source /etc/profile

#验证环境变量是否生效验证
[root@master java]# java -version
java version "1.8.0_361"
Java(TM) SE Runtime Environment (build 1.8.0_361-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.361-b09, mixed mode)

三、关闭Centos7的防火墙

第二步关闭centos7的防火墙(3台机器都需要执行)

#首先检测防火墙的状态 请注意第四行 Active: active (running) since 表示防火墙开启
[root@master java]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: active (running) since 四 2023-03-09 07:51:10 PST; 3s ago
     Docs: man:firewalld(1)
 Main PID: 20511 (firewalld)
    Tasks: 2
   CGroup: /system.slice/firewalld.service
           └─20511 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid

3月 09 07:51:10 master systemd[1]: Starting firewalld - dynamic firewall daemon...
3月 09 07:51:10 master systemd[1]: Started firewalld - dynamic firewall daemon.
3月 09 07:51:11 master firewalld[20511]: WARNING: AllowZoneDrifting is enabled. This is considered an insecure configuration ...it now.
Hint: Some lines were ellipsized, use -l to show in full.

#关闭防火墙
[root@master java]# systemctl stop firewalld.service

#再次查看状态 此时已经显示成了Active: inactive (dead) 表示防火墙已经关闭
[root@master java]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)

3月 09 07:51:10 master systemd[1]: Starting firewalld - dynamic firewall daemon...
3月 09 07:51:10 master systemd[1]: Started firewalld - dynamic firewall daemon.
3月 09 07:51:11 master firewalld[20511]: WARNING: AllowZoneDrifting is enabled. This is considered an insecure configuration ...it now.
3月 09 07:52:43 master systemd[1]: Stopping firewalld - dynamic firewall daemon...
3月 09 07:52:44 master systemd[1]: Stopped firewalld - dynamic firewall daemon.
Hint: Some lines were ellipsized, use -l to show in full.

四、三台机器之间的免密登录

4.1修改三台机器的主机名

  • 查看当前主机名:输入hostnamectl命令来查看当前系统的主机名。
  • 修改主机名:使用hostnamectl set-hostname 新主机名命令来永久修改主机名。修改完成后,可以通过hostname命令来验证主机名是否已成功修改

4.2三台机器设置主机名映射

[root@master ~]# vi /etc/hosts

添加如下内容

10.0.0.10 master

10.0.0.11 node1

10.0.0.12 node2

 效果如下图所示:

4.3使用命令生成密钥

[root@master ~]# ssh-keygen

三台机器都需要进行此操作

4.4使用命令复制SSH密钥到目标主机,开启无密码SSH登录

[root@master ~]# ssh-copy-id node1

[root@master ~]# ssh-copy-id node2

此操作第一次会让你输入yes 这样master节点就可以免密登陆其他节点,同样在其他节点也需要进行以上操作

4.5验证

[root@master ~]# ssh node1

[root@master ~]# ssh node2

五、安装Hadoop

5.1 下载安装包(arrch)

Index of /dist/hadoop/common/hadoop-3.3.5

5.2安装

#进入hadoop包存放的目录
[root@master ~]# cd /soft

#解压到当前目录
[root@master soft]# tar -zxvf hadoop-3.3.5.tar.gz

#修改hadoop配置文件hadoop-env.sh
[root@master soft]# cd /soft/hadoop-3.3.5/etc/hadoop
[root@master hadoop]# vim hadoop-env.sh
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
#这是JAVA的环境变量对应目录需要和上述java的对应
export JAVA_HOME=/usr/local/soft/java/jdk1.8.0_361

#设置HADOOP环境变量
[root@master hadoop]# vim /etc/profile
export HADOOP_HOME=/soft/hadoop-3.3.5
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
#环境变量生效
[root@master hadoop]#source /etc/profile

修改core-site.xml配置文件,此文件在/soft/hadoop-3.3.4/etc/hadoop下,初始状态如下:

<configuration>
</configuration>

加入如下内容

<configuration>
<!-- 设置默认使用的文件系统 Hadoop支持file、HDFS、GFS、ali|Amazon云等文件系统 -->
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://192.168.1.11:8020</value>
</property>
<property>
  <name>hadoop.http.filter.initializers</name>
  <value>org.apache.hadoop.security.AuthenticationFilterInitializer</value>
</property>
<property>
  <name>hadoop.http.authentication.type</name>
  <value>simple</value>
</property>
<property>
  <name>hadoop.http.authentication.token.validity</name>
  <value>3600</value>
</property>
<property>
  <name>hadoop.http.authentication.signature.secret.file</name>
  <value>/root/hadoop-http-auth-signature-secret</value>
  <!-- 可动态配置,主从同样配置,并 生成hadoop-http-auth-signature-secret 文件,放到对应位置,内部为允许访问的用户,用user.name=“”访问 -->
</property>
<property>
    <name>hadoop.http.authentication.simple.anonymous.allowed</name>
    <value>false</value>
  </property>
<property>
  <name>hadoop.http.authentication.cookie.domain</name>
  <value></value>
</property>
<!-- 设置Hadoop本地保存数据路径 -->
<property>
    <name>hadoop.tmp.dir</name>
    <value>/root/data/hadoop</value>
</property>

<!-- 设置HDFS web UI用户身份 -->
<property>
    <name>hadoop.http.staticuser.user</name>
    <value>root</value>
</property>

<!-- 整合hive 用户代理设置 -->
<property>
    <name>hadoop.proxyuser.root.hosts</name>
    <value>*</value>
</property>

<property>
    <name>hadoop.proxyuser.root.groups</name>
    <value>*</value>
</property>
<!-- 设置默认使用的文件系统 Hadoop支持file、HDFS、GFS、ali|Amazon云等文件系统 -->
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://192.168.1.11:8020</value>
</property>
<property>
  <name>hadoop.http.filter.initializers</name>
  <value>org.apache.hadoop.security.AuthenticationFilterInitializer</value>
</property>
<property>
  <name>hadoop.http.authentication.type</name>
  <value>simple</value>
</property>
<property>
  <name>hadoop.http.authentication.token.validity</name>
  <value>3600</value>
</property>
<property>
  <name>hadoop.http.authentication.signature.secret.file</name>
  <value>/root/hadoop-http-auth-signature-secret</value>
  <!-- 可动态配置,主从同样配置,并生成hadoop-http-auth-signature-secret 文件,放到对应位置,内部为允许访问的用户,用user.name=“”访问 -->
</property>
<property>
    <name>hadoop.http.authentication.simple.anonymous.allowed</name>
    <value>false</value>
  </property>
<property>
  <name>hadoop.http.authentication.cookie.domain</name>
  <value></value>
</property>
<!-- 设置Hadoop本地保存数据路径 -->
<property>
    <name>hadoop.tmp.dir</name>
    <value>/root/data/hadoop</value>
</property>
<!-- 设置HDFS web UI用户身份 -->
<property>
    <name>hadoop.http.staticuser.user</name>
    <value>root</value>
</property>
<!-- 整合hive 用户代理设置 -->
<property>
    <name>hadoop.proxyuser.root.hosts</name>
    <value>*</value>
</property>
<property>
    <name>hadoop.proxyuser.root.groups</name>
    <value>*</value>
</property>
</configuration>

在hadoop3中,需要加上hadoop.http.authentication.signature.secret.file此配置,不然安装会提示

org.apache.hadoop.security.authentication.server.AuthenticationFilter: Unable to initialize FileSignerSecretProvider, falling back to use random secrets. Reason: Could not read signature secret file: /root/hadoop/hadoop-http-auth-signature-secret

修改hdfs-site.xml配置文件(配置hdfs的web访问地址):

<configuration>
<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>192.168.1.12:9868</value>
</property>
</configuration>

修改mapred-site.xml文件(ip请根据自己的ip进行修改):

<configuration>
<!-- 设置MR程序默认运行模式: yarn集群模式 local本地模式 -->
<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>

<!-- MR程序历史服务地址 -->
<property>
  <name>mapreduce.jobhistory.address</name>
  <value>192.168.1.11:10020</value>
</property>

<!-- MR程序历史服务器web端地址 -->
<property>
  <name>mapreduce.jobhistory.webapp.address</name>
  <value>192.168.1.11:19888</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文件(请根据自己的ip进行修改):

 <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>192.168.1.11</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.vmem-check-enabled</name>
    <value>false</value>
</property>

<!-- 开启日志聚集 -->
<property>
  <name>yarn.log-aggregation-enable</name>
  <value>true</value>
</property>

<!-- 设置yarn历史服务器地址 -->
<property>
    <name>yarn.log.server.url</name>
    <value>http://192.168.1.11:19888/jobhistory/logs</value>
</property>

<!-- 历史日志保存的时间 7天 -->
<property>
  <name>yarn.log-aggregation.retain-seconds</name>
  <value>604800</value>
</property>

修改workers文件:

192.168.1.11
192.168.1.12
192.168.1.13

将修改好的hadoop文件夹拷贝到其余2个节点(三台机器之间需要实现ssh免密登录)

scp -r hadoop-3.3.4 root@node1:/soft
scp -r hadoop-3.3.4 root@node2:/soft

开始启动hadoop,在master上namenode的格式化

[root@master hadoop]# hdfs namenode -format
#出现如下信息就表示成
INFO common.Storage: Storage directory /root/data/hadoop/dfs/name has been successfully formatted

在master启动hdfs

[root@master hadoop]# start-dfs.sh
Starting namenodes on [master]
上一次登录:四 3月  9 08:17:03 PST 2023pts/0 上
Starting datanodes
上一次登录:四 3月  9 08:17:59 PST 2023pts/0 上
Starting secondary namenodes [node1]
上一次登录:四 3月  9 08:18:01 PST 2023pts/0 上
#检查是否正常启动
[root@master hadoop]# jps
57266 NameNode
57940 Jps
57503 DataNode

在node1、node2上进行检查看是否启动

[root@node1 ~]# jps
55539 DataNode
55703 SecondaryNameNode
56874 Jps
[root@node2 ~]# jps
55318 DataNode
56893 Jps

成功启动后,启动yarn集群(也是在master上执行)

[root@master hadoop]# start-yarn.sh
Starting resourcemanager
上一次登录:四 3月  9 08:18:04 PST 2023pts/0 上
Starting nodemanagers
上一次登录:四 3月  9 08:20:02 PST 2023pts/0 上
#验证是否成功
[root@master hadoop]# jps
57266 NameNode
61202 Jps
60500 ResourceManager
60711 NodeManager
57503 DataNode

#node1上验证下
[root@node1 ~]# jps
55539 DataNode
58419 NodeManager
59749 Jps
55703 SecondaryNameNode
#node2上验证下
[root@node2 ~]# jps
59216 Jps
58133 NodeManager
55318 DataNode

都成功启动了。

每次这样启动都比较费劲,可以采用如下命令一次性启动或者一次性关闭

#一次性全部启动
[root@master hadoop]# start-all.sh
#一次性全部关闭
[root@master hadoop]# stop-all.sh
  • 16
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值