大数据分析赛应用创新赛样题详解

1、在Linux下安装Java并搭建完全分布式Hadoop集群。

(1)在master节点下,执行命令安装JDK1.8。对安装进度100%的结果进行截图。

rpm -ivh /data/jdk-8u281-linux-x64.rpm # 安装并在安装过程中显示正在安装的文件信息及安装进度

(2)编辑“/etc/profile”文件,添加Java的环境变量,并且使配置生效。对添加至“/etc/profile”文件的内容进行截图。

vim /etc/profile

# Java env
export JAVA_HOME=/usr/java/jdk1.8.0_281-amd64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin

# 生效变量
source /etc/profile

# 查看JDK版本
java -version

(3)将JDK安装包发送至slave1与slave2节点,在slave1与slave2节点下安装JDK并且配置Java的环境变量并使配置生效。对slave1与slave2节点下添加至“/etc/profile”文件的内容进行截图。

# master 主机中
scp -r /data/jdk-8u281-linux-x64.rpm root@slave1:~
scp -r /data/jdk-8u281-linux-x64.rpm root@slave2:~

scp /etc/profile root@slave1:/etc/
scp /etc/profile root@slave2:/etc/

# slave1 slave2主机中
rpm -ivh jdk-8u281-linux-x64.rpm

source /etc/profile

报错:warning: jdk-8u281-linux-x64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY 不用管,继续做,设置完环境变量执行java -version看看是否正确

(4)在master、slave1和slave2三个节点分别执行“java -version”,验证JDK安装成功并对master、slave1和slave2三个节点的输出结果进行截图。

(5)在master节点下,解压Hadoop安装包至“/usr/local”目录。解压后使用命令“ll /usr/local/”并对命令运行结果进行截图。

tar -zxf /data/hadoop-3.1.4.tar.gz -C /usr/local/

(6)在master节点下,进入“/usr/local/hadoop-3.1.4/etc/hadoop/”路径,修改Hadoop配置文件“core-site.xml”,设置HDFS的默认地址与端口(fs.defaultFS),设置HDFS的临时路径(hadoop.tmp.dir),对配置完成后的“core-site.xml”文件内容进行截图。

先创建临时存储目录(三个节点都创建)

cd /usr/local/hadoop-3.1.4
mkdir tmp
<configuration>
    <!--用于配置NameNode地址master(改),端口9000(改) -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
    
    <!--配置Hadoop的临时存储目录(注意) -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/usr/local/hadoop-3.1.4/tmp</value> 
    </property>

</configuration>

文件中的<value>/usr/local/hadoop/tmp</value>,注意路径是否存在

(7)在master节点下,修改Hadoop运行环境配置文件“hadoop-env.sh”以及YARN框架运行环境配置文件“yarn-env.sh”,添加Java的环境变量,并设置使用HDFS以及YARN框架的用户为root。分别对配置完成后的“hadoop-env.sh”和“yarn-env.sh”文件的内容进行截图。

hadoop-env.sh

# 直接添加Java环境变量
export JAVA_HOME=/usr/java/jdk1.8.0_281-amd64

# 告诉Hadoop各组件分别用哪个用户运行
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

yarn-env.sh

# 直接添加
export JAVA_HOME=/usr/java/jdk1.8.0_281-amd64

(8)在master节点下,修改HDFS配置文件“hdfs-site.xml”,设置Namenode数据存储的路径(dfs.namenode.name.dir)以及Datanode数据存储的路径(dfs.datanode.data.dir),设置HDFS文件块的副本数(dfs.replication)为2。对配置完成后的“hdfs-site.xml”文件内容进行截图。

先创建 HDFS 存储目录(三个节点都创建)

cd /usr/local/hadoop-3.1.4/tmp
mkdir dfs
cd dfs
mkdir name data

说明:
/usr/hadoop-3.1.4/dfs/name - 存储namenode文件

/usr/hadoop-3.1.4/dfs/data - 存储数据

/usr/hadoop-3.1.4/dfs/tmp - 存储临时文件

<configuration>
    <!--指定HDFS备份文本的数量 -->
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
	
	<!--NN存放元数据路径 可以指定多个目录实现容错,多个目录用逗号分隔(注意) -->
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/usr/local/hadoop-3.1.4/tmp/dfs/name</value>
    </property>
	
	<!--datanode 节点数据(即数据块)的存放位置(注意) -->
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/usr/local/hadoop-3.1.4/tmp/dfs/data</value>
    </property>

</configuration>

(9)在master节点下,修改MapReduce配置文件“mapred-site.xml”,设置执行MapReduce作业的框架(mapreduce.framework.name)为YARN,设置MR App Master的环境变量(yarn.app.mapreduce.am.env、mapreduce.map.env和mapreduce.reduce.env),以及设置MapReduce作业所需的类路径CLASSPATH(mapreduce.application.classpath)。对配置完成后的“mapred-site.xml”文件内容进行截图。

<configuration>

    <property>
    <!-- 指定mapreduce作业运行时框架 yarn -->
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>yarn.app.mapreduce.am.env</name>
        <value>HADOOP_MAPRED_HOME=/usr/local/hadoop-3.1.4</value>
    </property>
    <property>
        <name>mapreduce.map.env</name>
        <value>HADOOP_MAPRED_HOME=/usr/local/hadoop-3.1.4</value>
    </property>
    <property>
        <name>mapreduce.reduce.env</name>
        <value>HADOOP_MAPRED_HOME=/usr/local/hadoop-3.1.4</value>
    </property>
    
        <!-- 加载 jar和环境配置 -->
    <property>
    	<name>mapreduce.application.classpath</name>
   	<value>/usr/local/hadoop-3.1.4/share/hadoop/mapreduce/*, /usr/local/hadoop-3.1.4/share/hadoop/mapreduce/lib/*</value>
    </property>

</configuration>

    <property>
    	<name>mapreduce.application.classpath</name>
    	<!-- $HADOOP_MAPRED_HOME要换成 Hadoop 的安装路径 -->
   	<value>$HADOOP_MAPRED_HOME/hadoop-3.2.0/share/hadoop/mapreduce/*, $HADOOP_MAPRED_HOME/hadoop-3.2.0/share/hadoop/mapreduce/lib/*</value>
    </property>

	<property> 
		<name>mapreduce.application.classpath</name>   
		<value>$PWD/mr-framework/hadoop/share/hadoop/mapreduce/*:$PWD/mr-framework/hadoop/share/hadoop/mapreduce/lib/*:$PWD/mr-framework/hadoop/share/hadoop/common/*:$PWD/mr-framework/hadoop/share/hadoop/common/lib/*:$PWD/mr-framework/hadoop/share/hadoop/yarn/*:$PWD/mr-framework/hadoop/share/hadoop/yarn/lib/*:$PWD/mr-framework/hadoop/share/hadoop/hdfs/*:$PWD/mr-framework/hadoop/share/hadoop/hdfs/lib/*:/etc/hadoop/conf/secure</value>
	</property>

(10)在master节点下,获取已完整配置的“yarn-site.xml”,复制到Hadoop对应的配置文件目录并替换。替换完成后打开“yarn-site.xml”对文件内容进行截图。

cp /data/yarn-site.xml /usr/local/hadoop-3.1.4/etc/hadoop/

(11)在master节点下,修改workers文件,设置为slave1与slave2。对workers的文件内容进行截图。

#tip:将文件中的localhost删除,添加主节点和子节点的主机名称
#tip:如主节点master,子节点slave1和slave2
vim workers 
master
slave1
slave2

(12)发送master中的Hadoop至slave1与slave2节点。发送成功后分别在slave1与slave2节点上执行“ll /usr/local/”,并对命令的运行结果进行截图。

scp -r /usr/local/hadoop-3.1.4 root@slave1:/usr/local
scp -r /usr/local/hadoop-3.1.4 root@slave2:/usr/local

(13)在三个节点的“/etc/profile”添加Hadoop路径(HADOOP_HOME),并且使配置生效。对master、slave1、slave2三个节点添加至“/etc/profile”的内容进行截图。

# 打开配置文件
vim /etc/profile

# 末尾追加
# hadoop env
export HADOOP_HOME=/usr/local/hadoop-3.1.4
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

# 生效变量
source /etc/profile/
# 分发到slave1 slave2
scp /etc/profile slave1:/etc/
scp /etc/profile slave2:/etc/
# 返回slave1和slave2节点执行下面命令
source /etc/profile

(14)格式化NameNode并启动Hadoop集群(包括HDFS、YARN和historyserver)。对格式化NameNode的结果进行截图(即显示“successfully formatted”字样),并且对启动Hadoop集群的命令执行结果进行截图。

# 格式化(在 master 上进行即可)
hdfs namenode -format

==注意:==出现下图结果即为格式化成功
![[格式化结果.png]]

注意,如果需要重新格式化 NameNode ,需要先将原来 NameNode 和 DataNode 下的文件全部删除
rm -rf $HADOOP_HOME/tmp/dfs/data/*

rm -rf $HADOOP_HOME/tmp/dfs/name/*

启动

# 启动全部
start-all.sh


# 启动 HDFS 集群
start-dfs.sh

# 启动 YARN 集群
start-yarn.sh

# historyserver
mr-jobhistory-daemon.sh start historyserver
mapred --daemon start

报错:启动hadoop集群时还有可能可能会报如下错误
![[启动报错.png]]

方案一:

vim /etc/profile

# 在环境变量中添加以下内容
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

# 生效
source /etc/profile

方案二:
hadoop-env.sh 中添加

# 告诉Hadoop各组件分别用哪个用户运行
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

此方法未测试过

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值