何为伪分布式?
将一个任务分为几个任务去执行,只是这个任务都是运行在同一个机器上,只是模拟了分布式的过程。
伪分布式安装过程
2.7.6版本
安装过程
http://hadoop.apache.org/docs/r2.7.6/hadoop-project-dist/hadoop-common/SingleCluster.html#Pseudo-Distributed_Operation
-》将hadoop压缩包(一般是.tar.gz格式)上传至linux 后解压
-》看看hadoop目录结构
bin/*.cmd 删除*.cmd文件 *是通配符 .cmd文件是运行在windows上的
sbin/*.cmd
share/doc
-》修改3个模块的环境变量(*.env)
hadoop-env.sh、 yarn-env.sh、mapred-env.sh env代表的是environment(环境)
修改这些文件中的JAVA_HOME全局变量 mapred-env.sh中的JAVA_HOME语句是注释掉的
添加可执行权限
chmod u+x hadoop-env.sh yarn-env.sh mapred-env.sh 意思只授予这个文件的所属者执行的权限 而chmod +x somefile 和 chmod a+x somefile 是一样的
-》按照模块来进行配置
指明hdfs的主机位置
common模块设置
在core-site.xm文件设置以下
<!--指定文件系统为HDFS及主节点NameNode运行的机器和端口-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://bigdata-hpsk01.huadian.com:8020</value>
</property>
其中bigdata-hpsk01.huadian.com为linux的主机名 当然IP地址也是可以的
<!--指定文件系统的本地临时存储目录,默认是当前系统/tmp-->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/modules/hadoop-2.7.3/data/tmpData</value>
</property>
需要先创建临时文件夹之后在配置上面的这个! 如果不能创建的话 要注意权限问题哦
HDFS 引言:什么是分布式 分布式就是几个人同时在做一件事 把一件大事分为几件小事 很多个人都在做这件大事 只不过只是在做一部分 需要主从结构是因为要分工合作和对外联系 主节点负责分配工作以及对外联系 从节点负责向主节点汇报工作情况 主节点并根据从节点的情况合理分配资源 其次要体现这是一个分布式的文件系统 既然是分布式那么就会有主从结构 指明文件系统的主节点和从节点 并且开启服务 主节点(namenode)从节点(DataNode)
HDFS模块设置
1. hdfs-site.xml文件设置
<!--由于是伪分布式部署,仅有一台机器,所以block副本数没有必要设置为3,设置为1即可-->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
2. slaves文件:配置slaves文件,指定datanode运行在那些机器上
bigdata-hpsk01.huadian.com 一行一个主机名,
3. 启动HDFS:
第一次使用文件系统,需要格式化。
-》格式系统
cd /opt/modules/hadoop-2.7.3 进入hadoop的最高级目录
bin/hdfs namenode -format 如果不成功可能是之前环境配置出错
**-》启动**
主节点
sbin/hadoop-daemon.sh start namenode
从节点
sbin/hadoop-daemon.sh start datanode
**-》验证是否启动成功**
方式一:
jps,
ps -ef |grep java
方式二:
通过webUI 界面查看
bigdata-hpsk01.huadian.com:50070
**-》测试HDFS**
帮助文档:bin/hdfs dfs
注意:HDFS文件系统目录和Linux目录结构类似,命令也类似
创建目录:
bin/hdfs dfs -mkdir /datas
看目录:
bin/hdfs dfs -ls /datas
上传文件:
bin/hdfs dfs -put /opt/datas/input.data /datas/
查看文件内容:
bin/hdfs dfs -text /datas/input.data
bin/hdfs dfs -cat /datas/input.data
下载文件:
bin/hdfs dfs -get /datas/input.data ./
删除文件
bin/hdfs dfs -rm -r /datas/input.data
YARN模块配置
对于分布式资源管理和任务调度来说,哪些程序可以运行在YARN之上
MapReduce
并行数据处理框架
spark
基于内存分布式处理框架
storm/flink
实时流式处理框架
TeZ
分析数据,比MapReduce速度快
主节点
resourceManager
从节点
nodeManager
需要修改的配置
yarn-site.xml
<!--resourceManager服务运行的主机名称-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>bigdata-hpsk01.huadian.com</value>
</property>
<!--告知yarn ,mapreduce程序将在你这里运行-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
slaves文件:
前面已经修改了,不用增加了
启动:
主节点:resourceManager
sbin/yarn-daemon.sh start resourcemanager
从节点:nodeManager
sbin/yarn-daemon.sh start nodemanager
验证:
方式一:jps === ps -ef |grep java
方式二:bigdata-hpsk01.huadian.com:8088
MapReduce:
并行计算框架(2.X)
思想:分而治之
核心
Map
并行处理数据,将数据分割,一部分一部分的处理
Reduce
将Map的处理结果进行合并,
配置:
cd {Hadoop_home}/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上
通过经典程序案例,wordcount,
Hadoop提到测试案例,
/opt/modules/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar
-》准备数据,数据是放到hdfs上
-》提交运行
bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount
bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /datas/input.data /output1
配置历史服务器
查看监听已经运行完成的MapReduce任务的执行情况
配置mapred-site.xml
<!--配置历史服务器-->
<property>
<name>mapreduce.jobhistory.address</name>
<value>bigdata-hpsk01.huadian.com:10020</value>
</property>
启动
sbin/mr-jobhistory-daemon.sh start historyserver
注意:在启动historyServer服务之前运行的job相关信息已经没了,
只有后面运行的才有。
日志集聚功能
当MapReduce程序在YARN上运行完成之后,将产生日志文件上传到HDFS目录中,
以便后续查看。
yarn-site.xml
<!--日志集聚功能-->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!--日志存储的时间1周 60*60*24*7-->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
重启YARN和jobHistoryServer
——————快照,克隆————————–
日志信息
{Hadoop_home}/logs
组件名称-用户名-服务名称-主机名
hadoop-huadian-datanode-bigdata-hpsk01.huadian.com.log
根据后缀名:
.log
程序启动相关信息会在里面,
进程启动失败
.out
程序运行相关的输出
system.out.print
system.out.error
怎么看:
tail -100f name