2021-10-21 基于virtual box虚拟机的Hadoop集群安装配置教程

本文记录参考 http://dblab.xmu.edu.cn/blog/2775-2/ 搭建hadoop分布式集群的过程

前置

  • 已在一台虚拟机配置好了伪分布式hadoop系统
  • 一台虚拟机作为master作为namenode,三台虚拟机data1、2、3(均安装了ubuntu系统)作为datanode

网络配置

  • 网卡1配置为NAT网络,这样虚拟机可以正常访问外部网络
    image

  • 网卡2配置为host-only,这样data虚拟机可以和master虚拟机通信
    image
    如果界面名称显示未指定,可以在virtualBox左上角菜单栏点击管理,主机网络管理器,点击创建,便可以指定界面名称
    image

  • 配置主机名称和网络
    sudo vim /etc/hostname
    image
    ping data1 -c 3 测试网络是否连通
    image

SSH无密码登录节点

  • 必须要让Master节点可以SSH无密码登录到各个Slave节点上。首先,生成Master节点的公匙,如果之前已经生成过公钥,必须要删除原来生成的公钥,重新生成一次,因为前面我们对主机名进行了修改。具体命令如下

    cd ~/.ssh              # 如果没有该目录,先执行一次ssh localhost
    rm ./id_rsa*           # 删除之前生成的公匙(如果已经存在)
    ssh-keygen -t rsa       # 执行该命令后,遇到提示信息,一直按回车就可以
    
  • 为了让Master节点能够无密码SSH登录本机,需要在Master节点上执行如下命令:
    cat ./id_rsa.pub >> ./authorized_keys

  • 接下来,在Master节点将上公匙传输到Slave1节点(具体文件夹视具体情况而定)
    scp ~/.ssh/id_rsa.pub hadoop@Slave1:/home/hadoop/

  • 在data1节点上,将SSH公匙加入授权:

    mkdir ~/.ssh       # 如果不存在该文件夹需先创建,若已存在,则忽略本命令
    cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
    rm ~/id_rsa.pub    # 用完以后就可以删掉
    
  • 如果有其他节点,一样配置

配置PATH变量

  • 在前面的伪分布式安装内容中,已经介绍过PATH变量的配置方法。可以按照同样的方法进行配置,这样就可以在任意目录中直接使用hadoop、hdfs等命令了。如果还没有配置PATH变量,那么需要在Master节点上进行配置。 首先执行命令“vim /.bashrc”,也就是使用vim编辑器打开“/.bashrc”文件,然后,在该文件最上面的位置加入下面一行内容:
    export PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin
    保存后执行命令“source ~/.bashrc”,使配置生效。

配置集群/分布式环境

  • 在配置集群/分布式模式时,需要修改“/usr/local/hadoop/etc/hadoop”目录下的配置文件,这里仅设置正常启动所必须的设置项,包括workers 、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml共5个文件,更多设置项可查看官方说明。文件在/usr/local/hadoop/etc/hadoop中

  • workers
    image

  • core-site.xml

    <configuration>
    		<property>
    				<name>fs.defaultFS</name>
    				<value>hdfs://Master: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>
    
  • hdfs-site.xml

    <configuration>
    		<property>
    				<name>dfs.namenode.secondary.http-address</name>
    				<value>Master:50090</value>
    		</property>
    		<property>
    				<name>dfs.replication</name>
    				<value>1</value>
    		</property>
    		<property>
    				<name>dfs.namenode.name.dir</name>
    				<value>file:/usr/local/hadoop/tmp/dfs/name</value>
    		</property>
    		<property>
    				<name>dfs.datanode.data.dir</name>
    				<value>file:/usr/local/hadoop/tmp/dfs/data</value>
    		</property>
    </configuration>
    
  • 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>
    		<property>
    				<name>yarn.app.mapreduce.am.env</name>
    				<value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
    		</property>
    		<property>
    				<name>mapreduce.map.env</name>
    				<value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
    		</property>
    		<property>
    				<name>mapreduce.reduce.env</name>
    				<value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
    		</property> 
    </configuration>
    
  • 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>
    </configuration>
    
  • 5个文件全部配置完成以后,需要把Master节点上的“/usr/local/hadoop”文件夹复制到各个节点上
    在master节点上:

    cd /usr/local
    sudo rm -r ./hadoop/tmp     # 删除 Hadoop 临时文件
    sudo rm -r ./hadoop/logs/*   # 删除日志文件
    tar -zcf ~/hadoop.master.tar.gz ./hadoop   # 先压缩再复制
    cd ~
    scp ./hadoop.master.tar.gz Slave1:/home/hadoop
    

    在data1节点上

    sudo rm -r /usr/local/hadoop    # 删掉旧的(如果存在)
    sudo tar -zxf ~/hadoop.master.tar.gz -C /usr/local
    sudo chown -R hadoop /usr/local/hadoop
    

启动

  • 首次执行,在master节点上格式化节点:

    hdfs namenode -format
    
  • 启动

    start-dfs.sh
    start-yarn.sh
    mr-jobhistory-daemon.sh start historyserver
    
  • 在master上jps查看
    image
    image

  • data1上查看
    image

关闭

  • 在master虚拟机上
    stop-yarn.sh
    stop-dfs.sh
    mr-jobhistory-daemon.sh stop historyserver
    

おすすめ

転載: blog.csdn.net/weixin_44080131/article/details/120890932