全网最详细的全分布式Hadoop环境搭建,亲测有效,搭不起来来打我

基础环境搭建

准备三台服务器,此处使用aliyun ECS 2核4G 三台

修改hostname,此处改为hadoop01,hadoop02,hadoop03,修改之后需要重新启动生效

vi /etc/hostname

修改etc文件

vi /etc/hosts
//将下边内容加入文件中
172.20.175.6 hadoop01
172.20.175.7 hadoop02
172.20.175.8 hadoop03
// 分别ping一下其他三台,验证是否生效
ping hadoop01
ping hadoop02
ping hadoop03

下载Hadoop和JDK

wget https://dlcdn.apache.org/hadoop/common/hadoop-2.10.2/hadoop-2.10.2.tar.gz --no-check-certificate
jdk官网自行下载

解压

tar -zxvf jdk-8u271-linux-x64.tar.gz
tar -zxvf hadoop-2.10.2.tar.gz

增加jdk和Hadoop环境变量

vi /etc/profile

追加如下内容:
HADOOP_HOME=/opt/hadoop-2.10.2
JAVA_HOME=/opt/jdk1.8.0_271
JRE_HOME=/opt/jdk1.8.0_271/jre
PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH

//使修改立即生效
source /etc/profile   
echo $JAVA_HOME
javac -version

配置免密登录,并将自己的授权文件分发给其他两台

ssh-keygen -t rsa   //连续按三次回车
ssh-copy-id -i ~/.ssh/id_rsa.pub root@服务器IP //复制到其他服务器

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys //将自己的授权文件给自己
chmod 0600 ~/.ssh/authorized_keys

Hadoop配置

  • 修改/opt/module/hadoop-2.7.2/etc/hadoop文件夹中的配置文件

    <configuration>
    	<property>
    		<name>fs.defaultFS</name>
            <value>hdfs://hadoop01:9000</value>
    	</property>
    	<!-- 指定hadoop运行时产生文件的存储目录 -->
    	<property>
    		<name>hadoop.tmp.dir</name>
    		<value>/opt/module/hadoop-2.7.2/data/tmp</value>
    	</property>
    </configuration>
    

    hdfs-site.xml

    <configuration>
            <property>
                    <name>dfs.replication</name>
                    <value>3</value>
            </property>
            <property>
            <name>dfs.namenode.secondary.http-address</name>
            <value>hadoop03:50090</value>
        </property>
    </configuration>
    

    slaves

    #删掉了localhost,加入以下内容
    hadoop01
    hadoop02
    hadoop03
    

    yarn-site.xml

    <!-- reducer获取数据的方式 -->
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>
    
    <!-- 指定YARN的ResourceManager的地址 -->
        <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>hadoop01</value>
        </property>
    

    mapred-site.xml

    <configuration>
    <!-- 指定mr运行在yarn上 -->
    	<property>
    		<name>mapreduce.framework.name</name>
    		<value>yarn</value>
    	</property>
    </configuration>
    
  • 可能找不到 JAVA_HOME

​ 修改hadoop-env.sh (我的hadoop安装在/opt/hadoop-2.10.2/etc/hadoop/hadoop-env.sh 目录下)

#export JAVA_HOME=${JAVA_HOME} //原来

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_121 //修改后

分发到其他两台

scp -r /opt/module/hadoop-2.7.2/etc/hadoop hadoop02:/opt/module/hadoop-2.7.2/etc/
scp -r /opt/module/hadoop-2.7.2/etc/hadoop hadoop03:/opt/module/hadoop-2.7.2/etc/

集群启动

首次启动集群,需要格式化namenode

hdfs namenode -format

在Hadoop01中启动HDFS

sbin/start-dfs.sh

在在Hadoop01中启动yarn

sbin/start-yarn.sh

jps查看进程

[root@hadoop01 hadoop-2.10.2]# jps
8305 NameNode //hdfs
8819 NodeManager
8713 ResourceManager
9163 Jps
8447 DataNode
[root@hadoop02 scala-2.13.8]# jps
3395 DataNode
3512 NodeManager
3660 Jps
[root@hadoop03 scala-2.13.8]# jps
4339 Jps
4186 NodeManager
3996 DataNode
4108 SecondaryNameNode

在阿里云ECS控制台中将Hadoop01服务器的安全组规则中开放50070端口h和8088

  • 在HDFS启动的时候,访问http://hadoop01's公网IP:50070
  • 在yarn启动的时候,访问`http://hadoop01’s公网IP:8088

其他命令:

sbin/start-dfs.sh
sbin/stop-dfs.sh

sbin/start-yarn.sh
sbin/stop-yarn.sh

start-all.sh
stop-all.sh

踩坑记录:

  1. 找不到JAVA_HOME

修改hadoop-env.sh (我的hadoop安装在/usr/local/ 目录下)

#export JAVA_HOME=${JAVA_HOME} //原来

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_121 //修改后
  1. 多次format导致dataNode启动失败
rm -rf /tmp/hadoop-root/*
hdfs namenode -format

参考:https://blog.csdn.net/u013247765/article/details/68487214

https://daisine.github.io/hadoops/

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林木森^~^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值