HAOOP完全分布式

一、 Hadoop介绍

** HDFS:分布式存储文件 //用来存数据

角色:NameNode和DataNode

** YARN:分布式资源调度框架(Hadoop2.x以上才引用) //调用计算机资源来进行操作

角色:ResourceManager和NodeManager

** MapReduce:分布式数据处理框架 //用来对数据分析

** 解压Hadoop

tar -zxf xxx.tar.gz -C xxxx

** Hadoop完全分布式配置

** 准备部署的环境:

linux01 linux02 linux03

namenode resourcemanager

datanode datanode datanode

nodemanager nodemanager nodemanager

** 进入到hadoop的etc/hadoop目录下

删除windows脚本:

$ rm -rf *.cmd

** 重命名文件:

$ mv mapred-site.xml.template mapred-site.xml

配置文件:

evn文件:只需要修改JAVA_HOME,我的机器:/home/admin/modules/jdk1.8.0_181

//查看java_home的路径 echo $JAVA_HOME

hadoop-env.sh

yarn-env.sh

mapred-env.sh

site文件:

core-site.xml

fs.defaultFS

hdfs://node1:9000

hadoop.tmp.dir

/export/server/hadoop-2.7.4/data/temp

 

hdfs-site.xml

dfs.replication

3

dfs.permissions.enable

false

 

dfs.namenode.secondary.http-address

node2:50090

 

dfs.namenode.http-address

node1:50070

 

dfs.webhdfs.enabled

true

 

 

** yarn-site.xml

yarn.nodemanager.aux-services

mapreduce_shuffle

 

yarn.resourcemanager.hostname

node1

 

yarn.log-aggregation-enable

true

 

yarn.log-aggregation.retain-seconds

86400

 

yarn.log.server.url

http://node1:19888/jobhistory/logs/

 

** mapred-site.xml

mapreduce.framework.name

yarn

mapreduce.jobhistory.address

node1:10020

 

mapreduce.jobhistory.webapp.address

node1:19888

 

slaves文件:从节点

node1

node2

node3

 

 

/export/server/hadoop-2.7.4

** 分发安装配置完成的hadoop到linux02以及linux03

$ scp -r hadoop-2.7.4/ node2:/export/server

$ scp -r hadoop-2.7.4/ node3:/export/server

scp -r /etc/profile node2:/etc/profile

** 格式化namenode(尖叫提示:在hadoop的根目录下执行)

$ bin/hdfs namenode -format

** 启动服务

HDFS:

$ sbin/start-dfs.sh

YARN:(尖叫提示:一定要在ResourceManager所在机器启动 linux02)

$ sbin/start-yarn.sh

JobHistoryServer:

$ sbin/mr-jobhistory-daemon.sh start historyserver

三、常用工具脚本

** 概念梳理

** 系统变量与用户变量

** 使用CRT开启一个远程会话的时候,计算机默认加载:

/etc/profile //系统变量

/home/admin/.bash_profile //用户变量

/home/admin/.bashrc //用户变量

** 使用SSH访问另一台机器的时候,不加载系统变量

** 操作

** 将系统变量追加到用户变量中(3台机器都要操作)

$ cat /etc/profile >> .bashrc //两个大于号是追加的意思

 

** 编写脚本

#!/bin/bash

for i in admin@linux01 admin@linux02 admin@linux03

do

echo "==================$i==================="

ssh $i 'jps'

done

你可能感兴趣的:(大数据)