栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Hadoop3.2.2集群在两台Linux上搭建(一台Ubuntu18.04,CentOS7.x)

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

Hadoop3.2.2集群在两台Linux上搭建(一台Ubuntu18.04,CentOS7.x)

1. 环境需求:

Ubuntu18.01 192.168.31.9 host-gpu namenode + secondarynamenode
Centos7 192.168.31.10 host-cpu resourcemanager
注意:一般centos装系统之后是:localhost,一定要修改过来,不然后面需要免密ssh的时候就会有大坑

需求集群需求列表,一般都是3台机器,但是由于我目前只有两台机器,所以就把把secondarynamenode与namenode放在一起了

环境安装都是在root目录下

2. JDK与Hadoop安装 2.1.安装jdk 1.8

我下载的是:jdk-8u261-linux-x64.tar.gz,修改文件夹的名字为:hadoop, 然后放在了/opt/下
ubuntu18.04安装在加目录下: vim ~/.bashrc下面的

export JAVA_HOME=/opt/jdk
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

source ~/.bashrc
测试 java -version,如果有反应,则搭建成功

centos安装在/etc/profile.d/my_env.sh, 这个是自己创建的
环境变量与上面一样;然后执行

source /etc/profile
2.2.安装hadoop 3.2.2

下载地址:https://mirror.tuna.tsinghua.edu.cn/apache/hadoop/core/

安装的环境变量为:两台机器都是一样,以下不再重复,变量文件与jdk一致

export HADOOP_DIR=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

ubuntu:

source ~/.bashrc

centos:

source /etc/profile

测试是否安装成功:

hadoop version

每次更改完环境变量都要执行,而且需要在新的terminal下才会生效,下面不再重复。

注意:很多教程是没有export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop,这个必须要添加,不然后面没法用,负责出现错误如下:

ARNING: log4j.properties is not found. HADOOP_CONF_DIR may be incomplete.
Exception in thread "main" java.lang.RuntimeException: core-site.xml not found

注意不用手动创建:data等目录,启动之后会自动创建的。

3.两台机器需要ssh免密登录

参考我的另外一个链接:
https://blog.csdn.net/weixin_42294118/article/details/122243381?spm=1001.2014.3001.5501

4. 配置文件

在etc/hadoop下面需要修改:

core-site.xml:核心配置文件。
hdfs-site.xml:hdfs存储相关配置。
mapred-site.xml:MapReduce相关的配置。
yarn-site.xml:和yarn相关的一些配置。
workers(2.7.5 版本叫 slaves):用来指定从节点,文件中默认是localhost。
hadoop-env.sh:配置hadoop相关变量(3.2需要配置java_home和user,2.7.5只需要配置java_home)。
yarn-env.sh 
mapred-env.sh

sbin/下面需要修改:

start-dfs.sh
stop-dfs.sh
start-yarn.sh
stop-yarn.sh

修改core-site.xml:核心配置文件中指定默认文件系统和临时文件目录




    
    
        fs.defaultFS
        hdfs://host-gpu:9000
    

    
    
        hadoop.tmp.dir
        /opt/module/hadoop/data/tmp
    


修改hdfs-site.xml


        dfs.replication
        2


        dfs.namenode.secondary.http-address
        host-gpu:50090

yarn-site.xml


        yarn.nodemanager.aux-services
        mapreduce_shuffle


        yarn.resourcemanager.hostname
		host-cpu


        yarn.log-aggregation-enable
        true


        yarn.log-aggregation.retain-seconds
        604800


		yarn.nodemanager.env-whitelist
		JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME

mapred-site.xml

 
        mapreduce.framework.name
        yarn


        mapreduce.application.classpath
        
            /usr/local/software/hadoop/etc/hadoop,
            /usr/local/software/hadoop/share/hadoop/common/*,
            /usr/local/software/hadoop/share/hadoop/common/lib/*,
            /usr/local/software/hadoop/share/hadoop/hdfs/*,
            /usr/local/software/hadoop/share/hadoop/hdfs/lib/*,
            /usr/local/software/hadoop/share/hadoop/mapreduce/*,
            /usr/local/software/hadoop/share/hadoop/mapreduce/lib/*,
            /usr/local/software/hadoop/share/hadoop/yarn/*,
            /usr/local/software/hadoop/share/hadoop/yarn/lib/*
        
 

修改hadoop-env.sh

export JAVA_HOME=/opt/jdk  不要写成${JAVA_HOME}负责会报错,找不到JAVA_HOME

yarn配置文件 yarn-env.sh

添加:
export JAVA_HOME=/opt/jdk  不要写成${JAVA_HOME}负责会报错,找不到JAVA_HOME

mapreduce配置文件
mapred-env.sh

添加:
export JAVA_HOME=/opt/jdk  不要写成${JAVA_HOME}负责会报错,找不到JAVA_HOME

在start-dfs.sh /stop-dfs.sh在文件的一开始添加

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

在 /stat-yarn.sh /stop-yarn.sh在文件的一开始添加

YARN_RESOURCEMANAGER_USER=root
HDFS_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

如果最后四个文件不修改则会报错,ERROR: User defined in HDFS_DATANODE_SECURE_USER (yarn) does not exist. Aborting.
如链接所示:https://www.codeleading.com/article/8431866266/

5.配置测试

在ubuntu18.04输入:

hdfs namenode -format
sbin/start-dfs.sh
sbin/start-yarn.sh

浏览器查看:
http://host-gpu:9870
http://host-gpu:8088

6.遗留问题: 6.1 当sbin/stop-all.sh之后会出现:
NodeManager did not stop gracefully after 5 seconds: kil

解决方案:
http://blog.sina.com.cn/s/blog_ad795db30102w4a8.html

在hadoop目录下新建立一个tmp文件夹,好像后面就没事了

6.2 put: File /data/word.txt.COPYING could only be replicated to 0 nodes inste

解决方案:
https://blog.csdn.net/qq_28513801/article/details/89477620

直接重新

hdfs namenode -format
删除原来的data

参考:https://blog.csdn.net/qq_39314099/article/details/103681298

https://blog.csdn.net/zb199738/article/details/106684890?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2aggregatepagefirst_rank_ecpm_v1~rank_v31_ecpm-2-106684890.pc_agg_new_rank&utm_term=hadoop+%E4%B8%A4%E5%8F%B0%E6%9C%BA%E5%99%A8%E6%90%AD%E5%BB%BA%E9%9B%86%E7%BE%A4&spm=1000.2123.3001.4430

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/692747.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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