伪分布式安装Hadoop
文档:http://hadoop.apache.org/docs/r2.7.6/hadoop-project-dist/hadoop-common/SingleCluster.html
1.上传解压
tar -zxvf hadoop-2.7.3.tar.gz -C /opt/modules/
2.了解目录结构,删除无用文件
3.修改配置:etc/hadoop/
(1)*-env.sh:3个模块的环境变量文件
hadoop-env.sh 、yarn-env.sh(23行)、mapred-env.sh
JAVA_HOME=/opt/modules/jdk1.8.0_91
(2)按模块配置,这个时候一般根据官方文档来配置
a、common模块:core-site.xml
-
<?xml version="1.0" encoding="UTF-8"?>
-
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
-
<!--修改后的文件-->
-
<configuration>
-
<!--指定文件系统HDFS的主机名称和端口号-->
-
<property>
-
<name>fs.defaultFS</name>
-
<value>hdfs://bigdata-training01.huadian.com:8020</value>
-
</property>
-
<!--指定文件系统本地临时存储目录,默认值是系统/tmp-->
-
<!--临时目录需要自己创建-->
-
<property>
-
<name>hadoop.tmp.dir</name>
-
<value>/opt/moduls/hadoop-2.7.3/etc/hadoop/data/tempData</value>
-
</property>
-
</configuration>
b、HDFS模块配置:hdfs-site.xml
-
<?xml version="1.0" encoding="UTF-8"?>
-
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
-
<configuration>
-
<!--由于是伪分布式,仅有一台机器,副本数量没有必要设置为3-->
-
<property>
-
<name>dfs.replication</name>
-
<value>1</value>
-
</property>
-
</configuration>
配置slaves:指定小弟DataNode运行在那台机器上,如果有多个小弟,一行一个
c、测试HDFS模块是否OK
-》格式化
当status为0的时候,为格式化成功。
-》启动
主节点
从节点
启动的这些服务相当于一个一个的Java进程,所以当执行启动命令之后,需要查看一下是否启动成功。
-》验证是否成功:
方式一:查看进程jps
方式二:
bigdata-hpsk01.huadian.com:50070
-》测试HDFS:
(1)怎么用
bin/hdfs dfs
(2)创建一个目录
bin/hdfs dfs -mkdir -p /datas
(3)查看
bin/hdfs dfs -ls /
(4)上传文件
bin/hdfs dfs -put /opt/datas/input.data /datas
(5)查看文件
bin/hdfs dfs -text /datas/input.data
(6)删除文件
bin/hdfs dfs -rm -r -f /datas/input.data
新写一个文件,上传到hdfs
d、YARN
对于分布式资源管理和任务调度框架来说,在YARN上可以运行多种应用程序
- MapReduce
- spark
- tez
(1) 配置:yarn-site.xml
-
<?xml version="1.0"?>
-
<configuration>
-
<!--resourcemanager服务运行的主机名名称-->
-
<property>
-
<name>yarn.resourcemanager.hostname</name>
-
<value>bigdata-training01.huadian.com</value>
-
</property>
-
<!--告知YARN,MapReduce程序将在 其上运行-->
-
<property>
-
<name>yarn.nodemanager.aux-services</name>
-
<value>mapreduce_shuffle</value>
-
</property>
-
</configuration>
(2)slaves
指定nodemanager运行的主机名名称,由于NameNode和 DataNode在同一台机器上,前面已经配置,所以不用再去配置。
e、启动YARN服务
-》启动:
主节点ResourceManager:
sbin/yarn-daemon.sh start resourcemanager
从节点NodeManager:
sbin/yarn-daemon.sh start nodemanager
-》验证启动:
方式一:jps
方式二:bigdata-training01.huadian.com:8088
f、MapReduce模块
并行计算的一个框架。
思想:分而治之
核心:map:分
并行处理数据,将数据分割,一部分一部分的处理
reduce:合
将Map处理数据的结果进行合并。
配置:
第一步:将模板重命名为xml文件
-
<?xml version="1.0"?>
-
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
-
<configuration>
-
<!--指定MapReduce的程序运行在YARN上-->
-
<property>
-
<name>mapreduce.framework.name</name>
-
<value>yarn</value>
-
</property>
-
</configuration>
g、测试MapReduce程序
案例:wordcount程序
Hadoop提供了一个程序,为我们统计。
准备数据:在/datas/input.data
将MapReduce应用提交到YARN上运行。
bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount
Usage: wordcount <in> [<in>...] <out>
<in>:表示MapReduce程序要处理的数据在哪里
<out>:表示MapReduce程序处理数据之后的结果,存储在哪里,这个目录不能存在。
bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /datas/input.data /datas/output/output001
额外配置:历史服务器
HistoryServer
mapred-site.xml 后面添加:
-
<property>
-
<name>mapreduce.jobhistory.address</name>
-
<value>bigdata-training01.huadian.com:10020</value>
-
</property>
-
<property>
-
<name>mapreduce.jobhistory.webapp.address</name>
-
<value>bigdata-training01.huadian.com:19888</value>
-
</property>
启动服务:sbin/mr-jobhistory-daemon.sh start historyserver
日志聚集功能
YARN提供日志中央化管理功能,他能将运行完成的任务 日志 上传到HDFS指定目录下。
以便后期监控查看
配置:yarn-site.xml
-
<!--启动日志聚集功能-->
-
<property>
-
<name>yarn.log-aggregation-enable</name>
-
<value>true</value>
-
</property>
-
<!--设置日志保存的时间,1周-->
-
<property>
-
<name>yarn.log-aggregation.retain-seconds</name>
-
<value>604800</value>
-
</property>
注意:重启YARN和JobHistoryServer服务,
修改了配置文件,需要重新读取
如果格式化、启动某个进程失败,怎么办????
看日志文件。。。。就是IDEA控制台的输出
logs/XX.log
hadoop-huadian-datanode-bigdata-hpsk01.huadian.com.log
模块 root 进程名字 主机名
后缀名:
日志分类:标准输出、错误输出
.log:程序启动相关信息 ==========
.out:程序运行的相关输出
system.out.println(),system.error.println
使用tail -100f xxx.log
找Exception,case by