大数据集群(Hadoop生态)安装部署——Linux

大数据集群(Hadoop生态)安装部署——Linux

    • 简介
      • 前置要求
      • Hadoop集群角色
      • 角色和节点分配
    • 安装
      • 调整虚拟机内存
      • Hadoop集群部署
    • 验证Hadoop集群运行情况

简介

1)Hadoop是一个由Apache基金会所开发的分布式系统基础架构。
2)主要解决,海量数据的存储和海量数据的分析计算问题。

  • Hadoop HDFS 提供分布式海量数据存储能力
  • Hadoop YARN 提供分布式集群资源管理能力
  • Hadoop MapReduce 提供分布式海量数据计算能力

前置要求

  • 1、请确保完成了集群化环境前置准备
    • 即:JDKSSH免密关闭防火墙配置主机名映射等前置操作
  • 2、Zookeeper集群部署

Hadoop集群角色

Hadoop生态体系中总共会出现如下进程角色:

  1. Hadoop HDFS的管理角色:Namenode进程(仅需1个即可(管理者一个就够)
  2. Hadoop HDFS的工作角色Datanode进程(需要多个(工人,越多越好,一个机器启动一个)
  3. Hadoop YARN的管理角色:ResourceManager进程(仅需1个即可(管理者一个就够)
  4. Hadoop YARN的工作角色NodeManager进程(需要多个(工人,越多越好,一个机器启动一个)
  5. Hadoop 历史记录服务器角色HistoryServer进程(仅需1个即可(功能进程无需太多1个足够))
  6. Hadoop 代理服务器角色:WebProxyServer进程(仅需1个即可(功能进程无需太多1个足够)
  7. Zookeeper的进程:QuorumPeerMain进程(仅需1个即可(Zookeeper的工作者,越多越好)

角色和节点分配

角色分配如下:

node1 Namenode、Datanode、ResourceManager、NodeManager、HistoryServer、WebProxyServer、QuorumPeerMain
node2 Datanode、NodeManager、QuorumPeerMain
node3 Datanode、NodeManager、QuorumPeerMain

大数据集群(Hadoop生态)安装部署——Linux_第1张图片

安装

调整虚拟机内存

如上图,可以看出node1承载了太多的压力。同时node2node3也同时运行了不少程序

  • 为了确保集群的稳定,需要对虚拟机进行内存设置

请在VMware中,对:

  1. node1设置4GB或以上内存
  2. node2node3设置2GB或以上内存

大数据的软件本身就是集群化(一堆服务器)一起运行的。
现在我们在一台电脑中以多台虚拟机来模拟集群,确实会有很大的内存压力哦。

Hadoop集群部署

1、下载Hadoop安装包、解压、配置软链接

# 1. 下载
wget http://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz

直接下载较慢,或者在我百度网盘, 提取码:155l

# 2. 解压
# 请确保目录/export/server存在
tar -zxvf hadoop-3.3.0.tar.gz -C /export/server/
# 3. 构建软链接
ln -s /export/server/hadoop-3.3.0 /export/server/hadoop

2、修改配置文件:hadoop-env.sh (Hadoop的配置文件要修改的地方很多,请细心!)

  • 进入到/export/server/hadoop/etc/hadoop,文件夹中,配置文件都在这里修改hadoop-env.sh文件
cd /export/server/hadoop/etc/hadoop
vim hadoop-env.sh

大数据集群(Hadoop生态)安装部署——Linux_第2张图片

此文件是配置一些Hadoop用到的环境变量
这些是临时变量,在Hadoop运行时有用
如果要永久生效,需要写到/etc/profile

在文件开头加入:

# 配置Java安装路径
export JAVA_HOME=/export/server/jdk
# 配置Hadoop安装路径
export HADOOP_HOME=/export/server/hadoop

# Hadoop hdfs配置文件路径
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
# Hadoop YARN配置文件路径
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
# Hadoop YARN 日志文件夹
export YARN_LOG_DIR=$HADOOP_HOME/logs/yarn
# Hadoop hdfs 日志文件夹
export HADOOP_LOG_DIR=$HADOOP_HOME/logs/hdfs

# 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
export YARN_PROXYSERVER_USER=root

大数据集群(Hadoop生态)安装部署——Linux_第3张图片

3、修改配置文件:core-site.xml 如下,清空文件填入如下内容

vim core-site.xml

清空文件: 先按d 再按 G,
再按i进入插入模式,复制粘贴如下内容:






	
		fs.defaultFS
		hdfs://node1:8020
		
	
	
	
		io.file.buffer.size
		131072
		
	

4、配置:hdfs-site.xml文件

vim hdfs-site.xml

清空文件: 先按d 再按 G,
再按i进入插入模式,复制粘贴如下内容:






	
		dfs.datanode.data.dir.perm
		700
	
	
	
		dfs.namenode.name.dir
		/data/nn
		Path on the local filesystem where the NameNode stores the namespace and transactions logs persistently 
	
	
	
		dfs.namenode.hosts
		node1,node2,node3
		List of permitted DataNodes.
		
	
	
	
		dfs.blocksize
		268435456
		
	
	
	
		dfs.namenode.handler.count
		100
		
	
	
	
		dfs.datanode.data.dir
		/data/dn
	

5、配置:mapred-env.sh文件

vim mapred-env.sh

Shift+ o, 在 文件的开头 加入如下环境变量设置:

export JAVA_HOME=/export/server/jdk
export HADOOP_JOB_HISTORYSERVER_HEAPSIZE=1000
export HADOOP_MAPRED_ROOT_LOGGER=INFO,RFA

大数据集群(Hadoop生态)安装部署——Linux_第4张图片

6、配置:mapred-site.xml文件

vim mapred-site.xml


**清空文件:**先按d 再按 G, 填入如下内容:







	
		mapreduce.framework.name
		yarn
		
	

	
		mapreduce.jobhistory.address
		node1:10020
		
	

	
		mapreduce.jobhistory.webapp.address
		node1:19888
		
	

	
		mapreduce.jobhistory.intermediate-donedir
		/data/mr-history/tmp
		
	
	
	
		mapreduce.jobhistory.done-dir
		/data/mr-history/done
		
	
	
	
		yarn.app.mapreduce.am.env
		HADOOP_MAPRED_HOME=$HADOOP_HOME
	
	
	
		mapreduce.map.env
		HADOOP_MAPRED_HOME=$HADOOP_HOME
	
	
	
		mapreduce.reduce.env
		HADOOP_MAPRED_HOME=$HADOOP_HOME
	

7、配置:yarn-env.sh文件

vim yarn-env.sh

Shift+ o, 在 文件的开头 加入如下环境变量设置:

export JAVA_HOME=/export/server/jdk
export HADOOP_HOME=/export/server/hadoop
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_LOG_DIR=$HADOOP_HOME/logs/yarn
export HADOOP_LOG_DIR=$HADOOP_HOME/logs/hdfs

8、配置:yarn-site.xml文件

vim yarn-site.xml

清空文件: 先按d 再按 G, 填入如下内容:




	
	
		yarn.log.server.url
		http://node1:19888/jobhistory/logs
		
	
	
	
		yarn.web-proxy.address
		node1:8089
		proxy server hostname and port
	
	
	
		yarn.log-aggregation-enable
		true
		Configuration to enable or disable log aggregation
	
	
	
		yarn.nodemanager.remote-app-logdir
		/tmp/logs
		Configuration to enable or disable log aggregation
	
	
	
	
		yarn.resourcemanager.hostname
		node1
		
	
	
	
		yarn.resourcemanager.scheduler.class
		org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler
		
	
	
	
		yarn.nodemanager.local-dirs
		/data/nm-local
		Comma-separated list of paths on the local filesystem where intermediate data is written.
	
	
	
		yarn.nodemanager.log-dirs
		/data/nm-log
		Comma-separated list of paths on the local filesystem where logs are written.
	
	
	
		yarn.nodemanager.log.retainseconds
		10800
		Default time (in seconds) to retain log files on the NodeManager Only applicable if log-aggregation is disabled.
	
	
	
		yarn.nodemanager.aux-services
		mapreduce_shuffle
		Shuffle service that needs to be set for Map Reduce applications.
	
	 
    
        The class to use as the resource scheduler.
        yarn.resourcemanager.scheduler.class
        org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler
    

9、修改workers文件

vim workers

全部内容如下:

node1
node2
node3

大数据集群(Hadoop生态)安装部署——Linux_第5张图片

10、【在node1执行】 分发hadoop到其它机器

cd /export/server
scp -r hadoop-3.3.0 node2:`pwd`/
scp -r hadoop-3.3.0 node3:`pwd`/

分发时间挺久的,耐心等待!

11、在node2node3执行

# 创建软链接
ln -s /export/server/hadoop-3.3.0 /export/server/hadoop

在这里插入图片描述

12、创建所需目录

  • node1执行:
mkdir -p /data/nn
mkdir -p /data/dn
mkdir -p /data/nm-log
mkdir -p /data/nm-local

大数据集群(Hadoop生态)安装部署——Linux_第6张图片

  • node2执行:
mkdir -p /data/dn
mkdir -p /data/nm-log
mkdir -p /data/nm-local

大数据集群(Hadoop生态)安装部署——Linux_第7张图片

  • node3执行:
mkdir -p /data/dn
mkdir -p /data/nm-log
mkdir -p /data/nm-local

大数据集群(Hadoop生态)安装部署——Linux_第8张图片

13、配置环境变量
node1node2node3修改/etc/profile

vim /etc/profile

在文件最下面添加:

export HADOOP_HOME=/export/server/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

大数据集群(Hadoop生态)安装部署——Linux_第9张图片

生效,执行:

source /etc/profile

14、格式化NameNode,在node1执行

hadoop namenode -format

hadoop这个命令来自于:$HADOOP_HOME/bin中的程序
由于配置了环境变量PATH,所以可以在任意位置执行hadoop命令哦

15、启动hadoophdfs集群,在node1执行即可

start-dfs.sh

大数据集群(Hadoop生态)安装部署——Linux_第10张图片

# 如需停止可以执行
stop-dfs.sh

start-dfs.sh这个命令来自于:$HADOOP_HOME/sbin中的程序
由于配置了环境变量PATH,所以可以在任意位置执行start-dfs.sh命令哦

16、启动hadoopyarn集群,在node1执行即可

start-yarn.sh


输入 jps,查看进程
大数据集群(Hadoop生态)安装部署——Linux_第11张图片

# 如需停止可以执行
stop-yarn.sh

17、启动历史服务器

mapred --daemon start historyserver
# 如需停止将start更换为stop

大数据集群(Hadoop生态)安装部署——Linux_第12张图片

18、启动web代理服务器

yarn-daemon.sh start proxyserver
# 如需停止将start更换为stop

验证Hadoop集群运行情况

  1. node1node2node3上通过 jps 验证进程是否都启动成功

大数据集群(Hadoop生态)安装部署——Linux_第13张图片

大数据集群(Hadoop生态)安装部署——Linux_第14张图片

  1. 验证HDFS,浏览器打开:http://node1:9870

大数据集群(Hadoop生态)安装部署——Linux_第15张图片
大数据集群(Hadoop生态)安装部署——Linux_第16张图片

创建文件test.txt,随意填入内容,

vim test.txt

在这里插入图片描述

hhh
hello
Linux

大数据集群(Hadoop生态)安装部署——Linux_第17张图片

并执行:

hadoop fs -put test.txt /test.txt
hadoop fs -cat /test.txt

大数据集群(Hadoop生态)安装部署——Linux_第18张图片

  1. 验证YARN,浏览器打开:http://node1:8088

执行:
大数据集群(Hadoop生态)安装部署——Linux_第19张图片

# 创建文件words.txt,填入如下内容
it itcast hadoop
it hadoop hadoop
it itcast
# 将文件上传到HDFS中
hadoop fs -put words.txt /words.txt
# 执行如下命令验证YARN是否正常
hadoop jar /export/server/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.0.jar wordcount -Dmapred.job.queue.name=root.root /words.txt /output


(附加)集群启动和关闭:
注意:启动集群前,一定要启动zookeeper

三台机器都要执行

/export/server/zookeeper/bin/zkServer.sh start

node1执行

start-dfs.sh
start-yarn.sh
mapred --daemon start historyserver

#如需停止将start更换为stop

node1执行

stop-yarn.sh
stop-dfs.sh

三台机器都要执行

/export/server/zookeeper/bin/zkServer.sh stop

上传到HDFS

hdfs dfs -mkdir -p /usr/hadoop/in
hdfs dfs -ls /usr/hadoop/
hdfs dfs -put data.txt /usr/hadoop/in/

运行

hadoop jar temperature_test-1.0-SNAPSHOT.jar cn.sky.hadoop.JobMain

你可能感兴趣的:(Linux,hadoop,大数据,linux)