Hadoop下载安装,并且配置集群启动

1、准备环境

jdk1.8.0_91

hadoop-3.2.0.tar.gz

centos7:(在虚拟机中创建三台centos7,可以先创建好一台配置好环境,然后克隆2台出来)

      spark-master

      spark-slave-1

      spark-slave-2

最终达到的效果如下图:

2、安装jdk

如果不会安装jdk,可以参考我以前写的Centos7通过yum安装JDK1.8

3、下载hadoop

官网下载hadoop太慢了,我下了7个小时,csdn上的资源太贵了,本来想传一个给大家用的,结果资源存在,不能上传,

没办法了,大家可以去官网自己下载

或者通过命令下载(也是慢的要死):wget http://archive.apache.org/dist/hadoop/core/hadoop-3.2.0/hadoop-3.2.0.tar.gz

4、安装hadoop

  1. 将文件下载下来以后,使用tar解压命令进行解压,我是在/usr/local文件夹下创建了一个hadoop文件夹,然后直接解压到/usr/local/hadoop下
    解压命令:tar -zxvf hadoop-3.2.0.tar.gz -C /usr/local/hadoop/
  2. 设置环境变量
    以编辑的方式打开profile文件:
    vi /etc/profile
    
    在文件底部增加下面语句:
    export HADOOP_HOME=/usr/local/hadoop/hadoop-3.2.0
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

  3. 刷新环境变量
    source /etc/profile

  4. 检查是否安装成功
    输入:hadoop version 发现出现如下图问题

    问题:查询hadoop版本报ERROR: JAVA_HOME is not set and could not be found.

    解决方法:配置hadoop-env.sh文件,修改JAVA_HOME,修改成jdk的安装路径
    输入命令:vi /usr/local/hadoop/hadoop-3.2.0/etc/hadoop/hadoop-env.sh

    在文件最后添加:export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.282.b08-1.el7_9.x86_64

    再次查询hadoop版本(成功):hadoop version

 

5、创建hdfs相关目录

在“/usr/local/hadoop/hadoop-3.2.0”目录下创建hdfs相关目录(目录随便在哪了,配置的时候不要错了就行,建议直接放在hadoop目录下)

在hdfs文件夹下创建dn,nn,tmp文件夹

dn: 指定DataNode存储目录

nn: 指定NameNode存储目录

tmp: 指定hadoop存储目录

6、配置hadoop

    配置文件存放在/opt/hadoop/etc/hadoop中,先进入到hadoop文件夹中

   输入命令:cd /usr/local/hadoop/hadoop-3.2.0/etc/hadoop/

  1. 修改hadoop-env.sh
    之前解决问题的时候已经修改过了,这里就不再赘述了。
  2. 修改core-site.xml
    输入命令:vi core-site.xml,修改内容如下:
    <configuration>
    
    <!--指定hadoop存储目录-->
        <property>
            <name>hadoop.tmp.dir</name>
            <value>file:/usr/local/hadoop/hadoop-3.2.0/hdfs/tmp</value>
            <description>A base for other temporary directories.</description>
        </property>
        <property>
            <name>io.file.buffer.size</name>
            <value>131072</value>
        </property>
            <!--指定NameNode地址-->
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://spark-master:9000</value>
        </property>
    
    </configuration>
    

     

  3. 修改hdfs-site.xml
    输入命令:vi hdfs-site.xml
    <configuration>
        <property>
            <name>dfs.namenode.name.dir</name>
            <value>file:/usr/local/hadoop/hadoop-3.2.0/hdfs/nn</value>
            <final>true</final>
        </property>
        <property>
            <name>dfs.datanode.data.dir</name>
            <value>file:/usr/local/hadoop/hadoop-3.2.0/hdfs/dn</value>
            <final>true</final>
        </property>
            <!--nn web访问地址-->
        <property>
            <name>dfs.namenode.http-address</name>
            <value>spark-master:9870</value>
        </property>
            <!--2nn web访问地址-->
        <property>
            <name>dfs.namenode.secondary.http-address</name>
            <value>spark-slave-2:9868</value>
        </property>
    
        <property>
            <name>dfs.webhdfs.enabled</name>
            <value>true</value>
        </property>
        <property>
            <name>dfs.permissions</name>
            <value>false</value>
        </property>
    </configuration>
    

     

  4. 修改mapred-site.xml
    输入命令:vi mapred-site.xml
    <configuration>
    <!--指定mapreduce运行在yarn上-->
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
    </configuration>

     

  5. 修改yarn-site.xml
    输入命令:vi yarn-site.xml
    <!--指定ResourcesManager地址-->
        <property>
            <name>yarn.resourcemanager.address</name>
            <value>spark-slave-1:18040</value>
        </property>
        <property>
            <name>yarn.resourcemanager.scheduler.address</name>
            <value>spark-slave-1:18030</value>
        </property>
        <property>
            <name>yarn.resourcemanager.webapp.address</name>
            <value>spark-slave-1:8088</value>
        </property>
        <property>
            <name>yarn.resourcemanager.resource-tracker.address</name>
            <value>spark-slave-1:18025</value>
        </property>
        <property>
            <name>yarn.resourcemanager.admin.address</name>
            <value>spark-slave-1:18141</value>
        </property>
    <!--指定MR走shuffle-->
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>
        <property>
            <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
            <value>org.apache.hadoop.mapred.ShuffleHandler</value>
        </property>
    
    </configuration>
    

     

6、格式化HDFS集群

输入命令:hdfs namenode -format

7、xsync分发脚本

到这里你可以选择克隆另外2个服务器出来,或者使用xsync脚本将创建好的hadoop文件进行分发。

如果你要用xsync脚本进行分发需要先创建ssh免密码登录,可以参考我的centos7创建ssh免密登录

创建xsync文件可以参考我之前写的创建xsync文件博客进行创建,也可以直接下载我创建好的文件

分发脚本命令:xsync hadoop-3.2.0/

这样就可以将hadoop-3.2.0文件分发到其他服务器对应的位置上了

8、启动hadoop

进入到/usr/local/hadoop/hadoop-3.2.0/sbin目录下 执行 ./start-dfs.sh 命令

发现出现以下问题:

在/hadoop/sbin路径下:
将start-dfs.sh,stop-dfs.sh两个文件顶部添加以下参数

HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

还有,start-yarn.sh,stop-yarn.sh顶部也需添加以下:

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

先启动spark-master服务器上启动HDFS和YARN

启动hdfs 输入命令:./start-dfs.sh

启动yarn 输入命令:./start-yarn.sh 

这是查看三个服务器的进程

文章最上面的的预期结果表格对比发现

缺少了ResourcesManager进程

ResourcesManager需要在spark-slave-1中进行启动

输入命令:./start-yarn.sh

查看结果:

至此hadoop集群搭建完毕

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值