栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

ubuntu20-hadoop环境安装-从零开始

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ubuntu20-hadoop环境安装-从零开始

文章目录
  • 1. VMWare安装模板机
  • 2. 克隆模板机
  • 3. JDK安装
  • 4. hadoop安装
  • 5. hadoop单机模式运行
  • 6. 伪分布式搭建
  • 7. 完全分布式的搭建
    • 7.1 在hadoop2主机上安装jdk和hadoop
    • 7.2 在hadoop1上实现SSH无密码登录
    • 7.3 修改5个文件
    • 7.4 启动
    • 7.5 执行分布式实例
    • 7.6 关闭

1. VMWare安装模板机

安装好ubutun20系统:

修改网络配置:

1. 修改VMWare的网络配置
编辑->虚拟网络配置->选择VMnet8

保证子网和NAT网关网段一致

2. 修改Windows网络配置

找到VMnet8, 右键属性,修改如下(ip地址不要和前面设置的网关ip一致)

3. 打开虚拟机进行配置
sudo gedit /etc/netplan/01-network-manager-all.yaml 修改成如下内容,其中dhcp为no表示不使用动态ip分配,address为192.168.10.101(不要和刚刚在window系统中配置的ip 192.168.10.3地址一样)

network:
  version: 2
  ethernets:
    ens33:
      addresses: [192.168.10.101/24]
      dhcp4: no
      dhcp6: no
      gateway4: 192.168.10.2
      nameservers:
        addresses: [192.168.10.2]

修改机器名称:gedit /etc/hostname(切记切换到root用户)

机器名称和ip绑定:gedit /etc/hosts
hadoop2 hadoop3是后面要克隆出来的主机, ip是前面手动设置的ip

重启: reboot

完成以上步骤,在ubutu20中查看一下ip,可以看出ip地址和前面手动设置的一致

在window下ping测试:

之后用XSHELL进行连接,如果连接失败,将window系统中的host文件复制一份到桌面,进行以下检查:

  1. 虚拟机是否安装ssh ssh服务是否打开

  2. 虚拟机是否关闭防火墙

  3. 虚拟机的设置是否是NAT模式

  4. 在windows中的VMnet8中配置的ip地址不要和虚拟机的ip地址一样,也不要和网关地址一样

连接成功情形:

2. 克隆模板机
  1. 关闭模板机器
  2. 右键模板机->管理->克隆(选择从现有快照克隆,因此要先对模板机打一个快照)->创建完整克隆

克隆完成截图:

然后按前面的步骤修改hadoop2和hadoop3中的主机名和ip, 注意不要重复并且在root用户下修改,修改完以后reboot重启

修改完成后,用XSHELL连接3台虚拟机:

3. JDK安装

通过XFTP将Linux版本的jdk1.8压缩包传到hadoop1

  1. 解压: sudo tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/ 安装在opt目录下

  2. sudo vi ~/.bashrc , 在后面添加java路径:

export JAVA_HOME=/opt/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin

添加完保存再source, 查看是否设置成功

4. hadoop安装
  1. 解压hadoop到/opt目录下: sudo tar -zxvf hadoop-3.1.3.tar.gz -C /opt
  2. 在opt目录下添加权限:chown -R 用户名 ./hadoop-3.1.3
  3. 修改~/bashrc文件,sudo vi ~/.bashrc , 在后面添加java路径:
export HADOOP_HOME=/opt/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

  1. 添加完之后source ~/.bashrc, 输入hadoop命令查看是否配置成功:
5. hadoop单机模式运行

数据存储在linux本地

  1. 在hadoop安装目录下创建一个文件夹wcinput, 在该目录下创建一个文件,比如word.txt, 文件里面随意输入一些内容
  2. 执行以下命令
    bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount wcinput/ ./wcoutput

执行完成后进入wcoutput文件夹下查看:

结果显示了刚刚创建的word.txt中的各个单词的数量

注意点:在执行bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount wcinput/ ./wcoutput命令时要保证wcoutput文件夹不存在,如果想要再次执行该命令,需要删除wcoutput文件夹

6. 伪分布式搭建

数据存储在hdfs
以下文件在haoop安装目录中的/etc/hadoop/文件夹下

  1. 修改core.site.xml

    
        hadoop.tmp.dir
        file:/opt/hadoop-3.1.3/tmp
        Abase for other temporary directories.
    
    
        fs.defaultFS
        hdfs://localhost:9000
    

  1. 修改 hdfs-site.xml:

    
        dfs.replication
        1
    
    
        dfs.namenode.name.dir
        file:/opt/hadoop-3.1.3/tmp/dfs/name
    
    
        dfs.datanode.data.dir
        file:/opt/hadoop-3.1.3/tmp/dfs/data
    

  1. namenode格式化
cd /usr/local/hadoop
./bin/hdfs namenode -format
//如果提示JAVA_HOME is not set 修改etc/hadoop/hadoop-env.sh 中的export JAVA_HOME=  等号后面填写具体的jdk安装路径

格式化完成后输入jps命令,如果格式化成功会显示NameNode”、”DataNode” 和“SecondaryNameNode”

  1. 启动

  2. 准备数据

  3. 执行

hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep input output 'dfs[a-z.]+'
  1. 查看结果

  2. 关闭

7. 完全分布式的搭建

数据存储在多台服务器

7.1 在hadoop2主机上安装jdk和hadoop

用XSHELL连接hadoop1,使用scp命令将jdk hadoop复制到hadoop2 (当然也可以使用xftp进行文件上传)

scp -r /opt/jdk1.8.0_212/ pengfeigui@hadoop2:/home/pengfeigui
scp -r /opt/hadoop-3.1.3/ pengfeigui@hadoop2:/home/pengfeigui
scp -r /opt/jdk1.8.0_212/ pengfeigui@hadoop3:/home/pengfeigui
scp -r /opt/hadoop-3.1.3/ pengfeigui@hadoop3:/home/pengfeigui

在hadoop2上也要修改bashrc环境变量

7.2 在hadoop1上实现SSH无密码登录

进入hadoop1主机:

cd ~/.ssh  (如果提示没有ssh目录,先使用ssh localhost有秘密登录然后再退出)
rm ./id_rsa*
ssh-keygen -t rsa
cat ./id_rsa.pub >> ./authorized_keys
scp ~/.ssh/id_rsa.pub pengfeigui@hadoop2:/home/pengfeigui/

接着进入hadoop2主机:

mkdir ~/.ssh
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
rm ~/id_rsa.pub 
7.3 修改5个文件

5个文件所在目录:/opt/hadoop-3.1.3/etc/hadoop
1. core-site.xml


        
                fs.defaultFS
                hdfs://hadoop1:9000
        
        
                hadoop.tmp.dir
                file:/opt/hadoop-3.1.3/tmp
                Abase for other temporary directories.
        

hadoop1主机只当作NameNode节点使用
file:/opt/hadoop-3.1.3/tmp 中选择自己的hadoop安装路径

2. hdfs-site.xml


        
                dfs.namenode.secondary.http-address
                hadoop1:50090
        
        
                dfs.replication
                1
        
        
                dfs.namenode.name.dir
                file:/opt/hadoop-3.1.3/tmp/dfs/name
        
        
                dfs.datanode.data.dir
                file:/opt/hadoop-3.1.3/tmp/dfs/data
        

3. mapred-site.xml


        
                mapreduce.framework.name
                yarn
        
        
                mapreduce.jobhistory.address
                hadoop1:10020
        
        
                mapreduce.jobhistory.webapp.address
                hadoop1:19888
        
        
  					yarn.app.mapreduce.am.env
  					HADOOP_MAPRED_HOME=${HADOOP_HOME}
			
			
  				mapreduce.map.env
  			HADOOP_MAPRED_HOME=${HADOOP_HOME}
		
		
  			mapreduce.reduce.env
  			HADOOP_MAPRED_HOME=${HADOOP_HOME}
		

4. yarn-site.xml




        
                yarn.resourcemanager.hostname
                hadoop1
        
        
                yarn.nodemanager.aux-services
                mapreduce_shuffle
        

5. workers

该文件中保存作为datanode的主机,这里搭建hadoop1作为namenode,hadoop2作为datanode,因此删除worker文件中原始的localhost,改为hadoop2

7.4 启动

在hadoop1(Master节点)中的sbin目录中执行命令:
hdfs namenode -format (首次运行时需要执行,后面不需要)
start-dfs.sh

start-yarn.sh

mr-jobhistory-daemon.sh start historyserver

输入命令:jps查看:

保证NameNode、ResourceManager、SecondrryNameNode、JobHistoryServer 进程都存在

再登录到hadoop2主机(Slave节点)上使用jps命令:

存在 DataNode 和 NodeManager 进程

在hadoop1主机上使用hdfs dfsadmin -report查看datanode是否正常启动:

7.5 执行分布式实例

在hadoop1主机上:

hdfs dfs -mkdir -p /user/pengfeigui
hdfs dfs -mkdir -p input
hdfs dfs -put /opt/hadoop-3.1.3/etc/hadoop/*.xml input
hadoop jar /opt/hadoop-3.1.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep input output 'dfs[a-z.]+'

下次再运行需要移除之前的output目录:/opt/hadoop-3.1.3/bin/hadoop fs -rm -r output

以下是运行成功的截图:


ps: 如果运行失败,可能是虚拟机内存分配过小,修改mapred-site.xml,添加以下内容:


  mapreduce.map.memory.mb
  1536


  mapreduce.map.java.opts
  -Xmx1024M


  mapreduce.reduce.memory.mb
  3072


  mapreduce.reduce.java.opts
  -Xmx2560M

7.6 关闭

在hadoop1(Master)主机上面的hadoop安装目录下的sbin文件夹下执行

stop-yarn.sh
stop-dfs.sh
mr-jobhistory-daemon.sh stop historyserver
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/860243.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号