Hadoop2.8.4环境安装(单机安装多版本hadoop和JDK)

一、环境信息

  1. Hadoop源码包下载
    http://mirror.bit.edu.cn/apache/hadoop/common

  2. 集群环境

IP主机名
192.168.205.60master
192.168.205.65slave1
192.168.205.66slave2

 
3. 注意事项
(1)一下步骤主要针对纯净机器安装hadoop和jdk
(2)如果要在机器上装多个版本的hadoop和jdk,需要新建多个用户,并用bashrc来区分环境变量。root在使用前source 指定用户的bashrc文件。并且一定要删掉/usr/bin/下面的hadoop和jdk,防止环境变量不能生效。

[root@master /]# cat /home/hadoop1/.bashrc
#set java environment
JAVA_HOME=/usr/local/jdk1.6.0_45
JRE_HOME=$JAVA_HOME/jre
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH  #$PATH要放在最后,否则不能正常切换jdk版本
export  JAVA_HOME JRE_HOME  PATH  CLASSPATH

#set hadoop environment
HADOOP_HOME=/usr/local/hadoop-1.2.1
export PATH=$HADOOP_HOME/bin:$PATH  #$PATH要放在最后,否则不能正常切换hadoop版本
[root@master /]# cat/home/hadoop2/.bashrc
#set java environment
JAVA_HOME=/usr/local/jdk1.8.0_171
JRE_HOME=$JAVA_HOME/jre
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH  #$PATH要放在最后,否则不能正常切换jdk版本
export  JAVA_HOME JRE_HOME  PATH  CLASSPATH

#set hadoop environment
HADOOP_HOME=/usr/local/hadoop-2.8.4
export PATH=$HADOOP_HOME/bin:$PATH  #$PATH要放在最后,否则不能正常切换hadoop版本

二、安装流程

  1. 下载安装包
#Master
wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.8.4/hadoop-2.8.4.tar.gz
tar zxvf hadoop-2.8.4.tar.gz
  1. 修改Hadoop配置文件
#Master
cd hadoop-2.8.4/etc/hadoop
vim hadoop-env.sh 
export JAVA_HOME=/usr/local/jdk1.8.0_171 #我这里确保变量能读取到,就没有改,使用自带的。
vim yarn-env.sh
export JAVA_HOME=/usr/local/jdk1.8.0_171 #我这里确保变量能读取到,就没有改,使用自带的。

vim slaves
slave1
slave2
#vim core-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://192.168.205.60:9000</value>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>file:/usr/local/hadoop-2.8.4/tmp</value>
        </property>
</configuration>
#vim hdfs-site.xml
<configuration>
        <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>master:9001</value>
        </property>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>file:/usr/local/hadoop-2.8.4/dfs/name</value>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>file:/usr/local/hadoop-2.8.4/dfs/data</value>
        </property>
        <property>
                <name>dfs.repliction</name>
                <value>3</value>
        </property>
</configuration>
#vim mapred-site.xml
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>
#vim yarn-site.xml
<configuration>
    <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.resourcemanager.address</name>
        <value>master:8032</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>master:8030</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>master:8035</value>
    </property>
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>master:8033</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>master:8088</value>
    </property>
</configuration>
  1. 配置环境变量
#Master、Slave1、Slave2
vim ~/.bashrc
HADOOP_HOME=/usr/local/hadoop-2.8.4
export PATH=$PATH:$HADOOP_HOME/bin
#刷新环境变量
1.root用户
source ~/.bashrc

2.如果存在多个hadoop环境,使用用户区分hadoop环境的就需要
source /home/hadoop1/.bashrc  #hadoop1是用户,在bashrc下定义的1版本的变量关系
source /home/hadoop2/.bashrc  #hadoop2是用户,在bashrc下定义的2版本的变量关系
  1. 拷贝安装包
#Master
 ansible Vmware -m synchronize -a 'src=/usr/local/hadoop-2.8.4 dest=/usr/local/'

#创建临时目录和文件目录
mkdir -p /usr/local/hadoop-2.8.4/tmp /usr/local/hadoop-2.8.4/dfs/name /usr/local/hadoop-2.8.4/dfs/data
ansible Vmware -m shell -a 'mkdir -p /usr/local/hadoop-2.8.4/tmp /usr/local/hadoop-2.8.4/dfs/name /usr/local/hadoop-2.8.4/dfs/data'

#部分报错的解决办法
setup 1.#/usr/bin/hadoop:行27: /usr/bin/../libexec/hadoop-config.sh: 没有那个文件或目录
ln -s /usr/local/hadoop-2.8.4/libexec/hadoop-config.sh  /usr/libexec/hadoop-config.sh
  1. 启动集群
#Master
#初始化Namenode
hadoop namenode -format  #ll命令查看是不是对应版本的hadoop,否则使用绝对路径

启动集群

/usr/local/hadoop-2.8.4/sbin/start-all.sh

  1. 集群状态
    jps
#Master
[root@master /]# jps
25587 ResourceManager
29301 Jps
28971 SecondaryNameNode
28765 NameNode

#Slave1
[root@slave1 /]# jps
16108 DataNode
16221 NodeManager
16333 Jps


#Slave2
[root@slave2 /]#
15560 DataNode
15673 NodeManager
15785 Jps
  1. 监控网页
    http://master:8088

  2. 操作命令
    和Hadoop1.0操作命令是一样的

  3. 关闭集群

/usr/local/hadoop-2.8.4/sbin/stop-all.sh

三、总结

  1. 如果遇到25587 – process information unavailable
    处理办法:通常是由于强行kill进程导致的,停止集群后删除/tmp下所有文件重新启动即可。
    参考链接:https://cloud.tencent.com/info/df7ae0097ee4f3c362df1ac399a37fc4.html

  2. 错误: 找不到或无法加载主类 org.apache.hadoop.util.PlatformName
    错误: 找不到或无法加载主类 org.apache.hadoop.fs.FsShell
    处理办法:我的原因是因为,从机忘记删掉/usr/bin/hadoop(默认指向1.2版本hadoop),导致无法加载到2.8.4版本的hadoop。删掉/usr/bin/hadoop就好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值