0


20241102-Windows 10上安装虚拟机VMware10.0.2、Hadoop3.3.6与jdk1.8.0

Windows 10 专业版上安装虚拟机 VMware10.0.2、Xshell8.0、Hadoop3.3.6 与 jdk1.8.0【命令式】

笔记笔记笔记笔记

1. 写在前面

好片: Hadoop 保姆级超详细安装教程_哔哩哔哩_bilibili ——文章的从虚拟机到 Hadoop 安装【主】
好文: Hadoop3.3.6 完全分布式集群【三个节点】的安装配置-CSDN 博客 ——文章的 Hadoop 安装的 Hadoop 文件配置等

Windows 10 端提前安装好必要的软件:VMware10.0.2Xshell8.0

Windows 10 端提前下载好必要的软件包:hadoop-3.3.6.tar.gzjdk-8u431-linux-x64.tar.gz

一个 master 与两个 si(s1、s2):主要操作在 master,无特殊说明均在 master

不知道文件夹内有哪些文件与文件夹可以使用

ls

/

ls -all

查看

2.VMware10.0.2(参考好片)

Ctrl+Alt

:显示鼠标

Ctrl+A+R

:重启虚拟机

用户名:

root

密码:

1111

——输密码时不显示,只管输就行

2.1 配置静态网络:

检查网络连接是否正常:

ping www.baidu.com

——>

Ctrl+c

停止

ping

命令
测试网络是否可用

打开网络连接:

service network restart

…… ->

ping ……

2.2 定位到网络文件配置的文件位置并将 ip 地址改为静态:

cd 目录:

cd /etc

注:有

/

是绝对路径,没有是相对路径

[

cd ..

——返回上一级目录

cd

后跟一个空格和波浪号 (~)[非必要],表示切换到当前用户的 home 目录]

su

命令?【需要学习】

cd sysconfig
cd network-[tab键——后面的文件夹唯一确定(scripts)——两下tab键显示目录]

展示当前文件夹内的文件:

ls

——

list show

注:看详细文件信息文件夹+文件:ll

编辑器打开文件:vi 文件名

vi ifcfg-ens33

-> 查 vi 操作的使用方法

i

键编辑文件

改:bootproto:static , onboot:yes
增:
    ip 地址:IPADDR = "192.168.子网 IP.自由填" 192.168.17.10/20/30
    子网掩码:netmask = "255.255.255.0"
    指定网关:GATEWAY = "192.168.子网 IP.2"
    连接外网需要配置-域名解析服务器: DNS1 = 180.76.76.76 、 DNS2 = 223.5.5.5

Esc

退出编辑、保存:

:wq

——保存并退出(: q 直接退出, : q! 强制退出)

ping www.baidu.com

2.3 关闭防火墙

1:查看防火状态

systemctl status firewalld

2:暂时关闭防火墙

systemctl stop firewalld

3:永久关闭防火墙

systemctl disable firewalld

4:重启防火墙

systemctl enable firewalld

5:再查看防火状态

systemctl status firewalld

2.4 配置主机名:

修改主机名:

hostnamectl set-hostname 机械名自拟

-> 重启:

reboot

/

exit

(快一些)

2.5 编辑hosts文件:master、s1、s2

vi /etc/hosts

i

进入编辑模式

增:【ip地址 机械名】
    192.168.17.10 master
    192.168.17.20 s1
    192.168.17.30 s2
——便于 ping 操作等
Esc

->

:wq

保存并退出

3. Xshell

ssh -> Secure Shell:(一类工具)向两个机子上搭建桥梁进行文件传输

Xshell: 新建 -> 输入名称和ip地址 -> 用户名root与密码1111

3.1 传文件:

rz

(receive Zmodem)/

sz

(send Zmodem) -> 安装:

yum install lrzsz -y

–出现安装错误是因为使用的 CentOS 7 仓库已经被归档,当前的镜像地址无法找到所需的文件。

解决方法参见该文:CentOS 7 yum无法使用…… - 愚生浅末 - 博客园

cd /etc/yum.repos.d
cp CentOS-Base.repo CentOS-Base.repo.backup
vi CentOS-Base.repo

修改后:(建议直接全删了,重写)

# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the 
# remarked out baseurl= line instead.
#
#

[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
#baseurl=http://vault.centos.org/7.9.2009/x86_64/os/
baseurl=http://vault.centos.org/7.9.2009/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#released updates 
[updates]
name=CentOS-$releasever - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
#baseurl=http://vault.centos.org/7.9.2009/x86_64/os/
baseurl=http://vault.centos.org/7.9.2009/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
#$baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
#baseurl=http://vault.centos.org/7.9.2009/x86_64/os/
baseurl=http://vault.centos.org/7.9.2009/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
#baseurl=http://vault.centos.org/7.9.2009/x86_64/os/
baseurl=http://vault.centos.org/7.9.2009/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

保存并退出

阿里云镜像源:

curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

执行:

sudo yum clean all

——清除索引缓存

sudo yum makecache

——重建 yum 缓存

cd /文件名

——文件传输的存储地址

cd

后跟一个空格和波浪号 (~)[非必要],表示切换到当前用户的 home 目录
传文件:

rz

--完毕–> 查看已经传好的文件:

ls

3.2 ssh免密登录:master 远程连接 s1 、 s2 (因为烦人的hadoop后期需要)

一般:

ssh s1

-> 退出:

exit

从 namenode 到本身及各 datanode 免密登录

在各机器上执行(在免密登录的用户下):

ssh-keygen -b 1024 -t rsa

(一路回车,master要把他的公钥传给s1、s2,s1与s2也要执行用以生成私钥传给master)

在~/.ssh/下生成:私钥id_rsa,公钥id_rsa.pub:【查看隐藏文件】 ls -all

cd .ssh

-> 看文件:

ls

(公私钥)

master 免密登录 s1、s2:master 发公钥给 s1、s2(放到 si 的 authorized_keys 文件里)

  1. master:
cd .ssh
ssh-copy-id s1

(机器节点)

ssh-copy-id s2
ssh-copy-id master

(不用输入自己的密码)

  1. s1:
cd .ssh
ssh-copy-id s1
  1. s2:操作同s1
cd .ssh
ssh-copy-id s2
  1. 验证是否成功:master 免密登录 s1、s2

先查看一下:

vi authorized_keys

登录:

ssh si

登出:

exit

3.2 设置权限:

cd .ssh
chmod 600 authorized_keys

–chmod(英文全拼:change mode)命令是控制用户对文件的权限的命令[600 可读可写]

Linux chmod 命令 | 菜鸟教程

3.3 设置集群时钟同步:解决请求超时问题

[超级用户操作:

su root

]

cd .ssh

自动定时同步(设置系统定时任务):

crontab -e 

vi

操作,

i

插入,

Esc

:wq

增:

0 1 * * * /user/sbin/ntpdata cn.pool.ntp.org

——每小时从网址上获取并更新时间

时间格式:

f1 f2 f3 f4 f5 program(命令 参数)
* * * * *
- - - - -
| | | | |
| | | | +----- 星期中星期几 (0 - 6) (星期天 为0)
| | | +---------- 月份 (1 - 12) 
| | +--------------- 一个月中的第几天 (1 - 31)
| +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)

查看时间:

clock

3.4 解压与安装:master、s1、s2

cd

先查看文件:

ls

tar -xzvf 待解压的文件名 -c 目标路径
tar -czvf 待压缩的文件名 文件或目录

解压在现文件夹:

tar -xzvf hadoop-3.3.6.tar.gz 
tar -xzvf jdk-8u431-linux-x64.tar.gz

删除文件:

rm 文件1 文件2 文件3
rm jdk-18.0.2.1_windows-x64_bin.exe 

删除文件夹及其内容:

rm -r 文件夹名

【-r 参数(递归删除)来确保连同子文件夹一起删除】

rm -rf 文件名

【-rf 强制删除】

查看:

ls

->

[anaconda-ks.cfg hadoop-3.3.6 hadoop-3.3.6.tar.gz jdk1.8.0_431 jdk-8u431-linux-x64.tar.gz]

创建文件夹:

mkdir 名称
vi

升级版

vim

的安装:

yum install vim -y

3.5 配置 jdk 环境变量:master、s1、s2 三个路径统一

查看文件:

ls -all

【.bash_profile】

修改配置文件:

vim .bash_profile
增:
    export JAVA_HOME=/root/jdk1.8.0_431
    export PATH=$JAVA_HOME/bin:$PATH
:

为分隔符
PATH的作用:便于程序执行时从系统目录找Java等文件

应用修改后的配置:

source .bash_profile

查看Java版本:

java -version

将 jdk 文件从 master 上复制到 s1、s2:

scp -r jdk1.8.0_431 root@s1:~/
scp -r jdk1.8.0_431 root@s2:~/

【命令:

scp [可选参数] file_source file_target


【命令:

scp -r local_folder remote_username@remote_ip:remote_folder

【删除文件夹及其内容:

rm -rf $HADOOP_HOME

分别对 s1、s2 配置 jdk 环境变量…… 【

vim .bash_profile ……

4. 修改 hadoop 默认值【官方文档 hadoop /Index of /docs】

解压 hadoop-3.3.6 在现文件夹:

tar -xzvf hadoop-3.3.6.tar.gz 

hadoop-3.3.6/etc/hadoop/

  • core-default.xml
  • hdfs-default.xml
  • hdfs-rbf-default.xml
  • mapred-default.xml
  • yarn-default.xml
  • kms-default.xml
  • httpfs-default.xml
cd hadoop-3.3.6
cd etc
cd hadoop

或一步到胃

cd hadoop-3.3.6/etc/hadoop/

4.1修改 core-site.xml 文件

vim core-site.xml

——该改的改,下同

<configuration>
    <!-- 设置默认使用的文件系统 Hadoop支持file、HDFS、GFS、ali|Amazon云等文件系统 -->
    <property>
      <name>fs.default.name</name>
      <value>hdfs://master:9000</value>     
    </property>  
    <!-- 指定Hadoop的临时文件的本地存放路径 -->
    <property>
      <name>hadoop.tmp.dir</name>
      <value>/root/hadoop-3.3.6/data/tmp</value>
    </property>
    <!-- 设置HDFS web UI用户身份 -->
    <property>
      <name>hadoop.http.staticuser.user</name>
      <value>root</value>
    </property>
    <!-- 配置该root(superUser)允许通过代理访问的主机节点 -->
    <property>
      <name>hadoop.proxyuser.root.hosts</name>
      <value>*</value>
    </property>
    <!-- 配置该root(superUser)允许通过代理用户所属组 -->
    <property>
       <name>hadoop.proxyuser.root.groups</name>
       <value>*</value>
    </property>
    <!-- 配置该root(superUser)允许通过代理的用户-->
    <property>
       <name>hadoop.proxyuser.root.groups</name>
       <value>*</value>
    </property>
</configuration>

4.2 修改 hadoop-env.sh 文件

vim hadoop-env.sh
<configuration>
    <!-- 指定HDFS的主节点的元数据文件的本地存放路径 -->
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/root/hadoop-3.3.6/data/namenode</value>
    </property>
    <!-- 指定HDFS的数据节点的数据文件的本地存放路径 -->
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/root/hadoop-3.3.6/data/datanode</value>
    </property>
    <!-- nn web端访问地址-->
    <property>
        <name>dfs.namenode.http-address</name>
        <value>master:9010</value>
    </property>
    <!-- 2nn web端访问地址   NameNode 和 SecondaryNameNode 尽量不要安装在同一台服务器-->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>master:9020</value>
    </property>
    <!-- 指定HDFS的数据分块的备份数量/虚拟机数量 -->
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
</configuration>

4.3 修改 mapred-site.xml 文件

vim mapred-site.xml
<configuration>
    <!-- 指定MapReduce所使用的外部管理框架,这里使用Hadoop 3.3.6自带的YARN资源管理器 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <!-- jobhistory properties -->
    <!-- 设置 mapreduce 的历史服务器地址和端口号 -->
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>master:9030</value>
    </property>
    <!-- mapreduce 历史服务器的 web 访问地址 -->
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>master:9040</value>
    </property>
</configuration>

4.4 修改 yarn-site.xml 文件

vim yarn-site.xml
<configuration>
    <!-- Site specific YARN configuration properties -->
    <!-- 指定ResourceManager -->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>    
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>${yarn.resourcemanager.hostname}:8032</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>${yarn.resourcemanager.hostname}:8030</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>${yarn.resourcemanager.hostname}:8088</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.https.address</name>
        <value>${yarn.resourcemanager.hostname}:8090</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>${yarn.resourcemanager.hostname}:8031</value>
    </property>
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>${yarn.resourcemanager.hostname}:8033</value>
    </property>
    <property>
        <name>yarn.nodemanager.local-dirs</name>
        <value>/root/hadoop-3.3.6/data/local</value>
    </property>
    <!-- 开启日志聚集功能 -->
    <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
    <property>
        <name>yarn.nodemanager.remote-app-log-dir</name>
        <value>/root/hadoop-3.3.6/data/tmp/logs</value>
    </property>
    <!-- 设置日志聚集服务器地址 -->
    <property> 
        <name>yarn.log.server.url</name> 
        <value>http://master:9040/jobhistory/logs/</value>
        <description>URL for job history server</description>
    </property>
    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    <property>
        <name>yarn.application.classpath</name>
        <value>
        $HADOOP_HOME/etc/hadoop:$HADOOP_HOME/share/hadoop/common/lib/*:$HADOOP_HOME/share/hadoop/common/*:$HADOOP_HOME/share/hadoop/hdfs:$HADOOP_HOME/share/hadoop/hdfs/lib/*:$HADOOP_HOME/share/hadoop/hdfs/*:$HADOOP_HOME/share/hadoop/mapreduce/lib/*:$HADOOP_HOME/share/hadoop/mapreduce/*:$HADOOP_HOME/share/hadoop/yarn:$HADOOP_HOME/share/hadoop/yarn/lib/*:$HADOOP_HOME/share/hadoop/yarn/*
          </value>
    </property>
    <!-- 关闭yarn对物理内存和虚拟内存的限制检查 -->
    <property>
        <name>yarn.nodemanager.pmem-check-enabled</name>
        <value>false</value>
    </property>
    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
    </property>
</configuration>

4.5 修改 yarn-env.sh 文件

在 yarn-env.sh 文件末尾加上:

vim yarn-env.sh
增:export JAVA_HOME=/root/jdk1.8.0_431

4.6 修改 workers 文件

修改 workers 【不能有空格和空行】 删除原有 localhost:

vim workers

增:

s1
s2

4.6 修改两个 dfs.sh 与 两个 yarn.sh 文件

cd
cd hadoop-3.3.6/sbin
vim start-dfs.sh
vim stop-dfs.sh
两个文件顶部添加:
    HDFS_DATANODE_USER=root
    HADOOP_SECURE_DN_USER=hdfs
    HDFS_NAMENODE_USER=root
    HDFS_SECONDARYNAMENODE_USER=root
vim start-yarn.sh
vim stop-yarn.sh
两个文件顶部添加:
    YARN_RESOURCEMANAGER_USER=root
    HADOOP_SECURE_DN_USER=yarn
    YARN_NODEMANAGER_USER=root

4.7 修改

hosts

文件

cd
cd hadoop-3.3.6/etc/
vim hosts
增:
    192.168.17.10 master master.centos.com 
    192.168.17.20 s1 s1.centos.com
    192.168.17.30 s2 s2.centos.com

4.8 修改

.bash_profile

文件

【在 s1、s2 上也要配置】

cd
vim .bash_profile
增:
    PATH=$PATH:$HOME/bin
    export JAVA_HOME=/root/jdk1.8.0_431
    export PATH=$JAVA_HOME/bin:$PATH
    export HADOOP_HOME=/root/hadoop-3.3.6
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source .bash_profile

4.9 修改

.bashrc

文件

【在 s1、s2 上也要配置】

cd
vim .bashrc
增:
    PATH=$PATH:$HOME/bin
    export JAVA_HOME=/root/jdk1.8.0_431
    export PATH=$JAVA_HOME/bin:$PATH
    export HADOOP_HOME=/root/hadoop-3.3.6
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source .bashrc

4.10 新建上述配置中要的文件夹:【有的会自动创建,非必要】

mkdir 名称
cd /root/hadoop-3.3.6
mkdir data
cd data
mkdir namenode
mkdir datanode
mkdir tmp
mkdir local
cd tmp
mkdir logs

4.11 将 hadoop 文件从 master 上复制到 s1、s2:【命令:

scp [可选参数] file_source file_target

scp -r hadoop-3.3.6 root@s1:~/
scp -r hadoop-3.3.6 root@s2:~/

分别对 s1、s2 配置 hadoop 环境变量…… 【

vim .bash_profile ……


【在 s1、s2 上配置 ——参上】

vim .bash_profile
source .bash_profile
vim .bashrc
source .bashrc

5. 启动 hadoop:

查看Java版本:

java -version

查看hadoop版本:

hadoop version

hadoop-3.3.6/bin

格式化 NameNode 【只需要一次格式化即可,后续启动无需格式化】:

hdfs namenode -format

/

hadoop namenode -format

(前面不行可试)

hadoop-3.3.6/sbin ——【sh文件不行,试试cmd文件】

开启 ResourceManager 和 NodeManager(——不关闭窗口),命令:

start-yarn.sh

开启 DataNode 和 NameNode(——不关闭窗口),命令:

start-dfs.sh

一步到位:

start-all.sh

/

start-all.cmd

(前面不行可试)

查看进程命令:

jps

2209 NameNode
2707 ResourceManager
2469 SecondaryNameNode
4046 Jps

在本地电脑添加映射:

地址: C:\Windows\System32\drivers\etc

增: ——我的本地没有 hosts,自己新建一个
    192.168.17.10 master
    192.168.17.20 s1
    192.168.17.30 s2

关闭进程命令:

stop-dfs.sh
stop-yarn.sh

一步到位:

stop-all.sh

/

stop-all.cmd

(前面不行可试)

标签: windows hadoop jdk

本文转载自: https://blog.csdn.net/qq_45913057/article/details/143458472
版权归原作者 陈晨辰熟稳重 所有, 如有侵权,请联系我们删除。

“20241102-Windows 10上安装虚拟机VMware10.0.2、Hadoop3.3.6与jdk1.8.0”的评论:

还没有评论