伪分布式安装部署
根据Linux安装结果
做一个做一个分布式集群资源管理安装Hadoop 、YARN。
第一步:上传文件hadoop-2.7.3.tar.gz到linux 中
Linux系统自带上传下载软件
$ sudo yum install -y lrzsz
其中
rz: 上传文件
sz: 表示下载
第二步:解压文件夹
a、给压缩包赋予可执行条件 $ sudo chmod u+x hadoop-2.7.3.tar.gz
b、解压到指定位置中: tar -zxf hadoop-2.7.3.tar.gz -C/opt/modules/
解压成功之后cd 到你解压的文件目录下进行下一步
第三步:配置
-a. 配置 *-env.sh 环境变量文件
这三个文件在你解压的文件夹中的etc/hadoop中
hadoop-env.sh yarn-env.sh mapred-env.sh
修改值:
export JAVA_HOME=/opt/modules/jdk1.8.0_91
配置:hadoop-env.sh 将JAVA_HOME路径换为你安装的jdk路径
$sudo vi hadoop-env.sh
同理:yarn-env.sh 和 mapred-env.sh
赋以执行权限:
$ sudo chmod u+x hadoop-env.sh yarn-env.sh mapred-env.sh
-b、据HADOOP三个模块来进行配置
- HDFS
存储数据
- YARN
管理资源
- MapReduce
分析数据
首先配置HDFS
1、- core-site.xml
<!-- 指定文件系统为HDFS及NameNode主节点运行的机器端口号和IP地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://bigdata-hpsk01.huadian.com:8020</value>
</property>
<!-- 指定HDFS文件系统的本地临时存储目录,默认值为当前系统/tmp -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/modules/hadoop-2.7.3/data/tmpData</value>
</property>
2、 创建对应文件夹:
$ cd /opt/modules/hadoop-2.7.3
$ mkdir -p data/tmpData
配置 - hdfs-site.xml 以下文件全在Hadoop目录下
<!-- 由于伪分布式安装部署, 仅有一台机器,所有block副本数没有必要设置为3,设置为1即可 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
- 配置slaves文件:指定DataNode运行在哪些机器上
主机名:bigdata-hpsk01.huadian.com
说明:
此文件中一行表示一个主机名称,会在此主机上运行DataNode
3、 启动HDFS服务
思考:对于文件系统来说,第一次使用,要做什么??
进行格式文件系统:ps :一台虚拟机只能格式化一次。
- 格式系统
$ cd /opt/modules/hadoop-2.7.3
$ bin/hdfs namenode -format
启动服务:
主节点:
$ sbin/hadoop-daemon.sh start namenod
从节点:
$ sbin/hadoop-daemon.sh start datanode
检测是否开启
方式一:查看进程
$ jps
方式二:通过WEB UI界面查看
http://bigdata-hpsk01.huadian.com:50070
开启成功
测试HDFS
- 帮助文档
$ bin/hdfs dfs
- 创建目录
$ bin/hdfs dfs -mkdir -p /datas/tmp
- 上传文件
$ bin/hdfs dfs -put etc/hadoop/core-site.xml /datas/tmp
- 列举目录文件
$ bin/hdfs dfs -ls /datas/tmp
- 查看文件的内容
$ bin/hdfs dfs -text /datas/tmp/core-site.xml
配置YARN集群
对于分布式资源管理和任务调度框架来说:
在YARN上面运行多种应用的程序
- MapReduce
并行数据处理框架
- Spark
基于内存分布式计算框架
- Storm/Flink
实时流式计算框架
- Tez
分析数据,速度MapReduce快
主节点:
ResourceManager
从节点:
NodeManagers
- 配置yarn-site.xml
<!-- ResourceManager 服务运行的主机名称 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>bigdata-hpsk02.linuxtest.com</value>
</property>
<!-- 告知YARN将MapReduce程序运行其上,支持 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
- 配置slaves文件
指定NodeManager运行的主机名称,由于NM与DN同属一台机器,前面已经配置完成。
启动YARN服务
RM 主节点:
$ sbin/yarn-daemon.sh start resourcemanager
NM 从节点:
$ sbin/yarn-daemon.sh start nodemanager
验证:
查看所有与Java相关的进程
$ ps -ef|grep java
通过WEB UI界面查看
主机名+端口号
5、. 运行MapReduce程序
并行计算框架(Hadoop 2.x)
思想:分而治之
核心:
Map: 分
并行处理数据,将数据分割,一部分一部分的处理
Reduce: 合
将Map处理的数据结果进行合并,包含一些业务逻辑在里面
大数据计算框架中经典案例:
词频统计(WordCount)
统计某个文件中单词的出现次数
配置MapReduce相关属性:
- 拷贝
$ cd etc/hadoop/
$ cp mapred-site.xml.template mapred-site.xml
- 修改
<!-- 指定MapReduce的程序运行在YARN上,默认的配置运行在本地Local -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
提交MapReduce程序,到YARN上运行
准备数据:
准备数据
$ bin/hdfs dfs -mkdir -p /user/huadian/mapreduce/wordcount/input
$bin/hdfs dfs -put /opt/datas/wc.input /user/huadian/mapreduce/wordcount/input
执行
$bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /user/huadian/mapreduce/wordcount/input /user/huadian/mapreduce/wordcount/output