Hadoop环境配置教程总结
前⾔
记录⼀下学习搭建Hadoop环境时看的⼀些⽂章
正⽂
1,单机模式
:这个⽂章是Hadoop1.2.1的配置⽅法,但⽤在2.x系列上也好⽤。这个博客⾥的相关Hadoop的⽂章都可以看看,写的很清楚,就是版本⽼了点。
:2.6版本的Hadoop的配置⽂章
Macos 上安装 Hadoop
1. 把 hadoop 包放到某个⽬录下后,要修改⽬录的权限
sudo chown -R you:yourgroup /usr/local/hadoop/
2. 其它⽂章
:可以参考这个⽂章来安装。
:这个⽂章有个运⾏ hadoop mapreduce 的例⼦。
2,伪分布式
:2.6版本的Hadoop的配置⽂章
:版本是Hadoop1.2.1,可以参考⼀下。但JobTracker和TaskTracker相关的可以不看,因为在Hadoop2.x以后,JobTracker和TaskTracker都变成了ResourceManager和NodeManager。
:这个教程版本是2.6.0,还没有看,但博客观看体验⾮常好,有需要的可以看看。
3,完全分布式安装与配置
基本配置:
:2.3版本的Hadoop的配置⽂章
:版本是Hadoop1.2.1,可以参考⼀下。但JobTracker和TaskTracker相关的可以不看,因为在Hadoop2.x以后,JobTracker和TaskTracker都变成了ResourceManager和NodeManager。
:这个⽂章把SecondaryNamenode的每个配置项的作⽤都解释的很好,推荐
:这是关于配置SecondaryNameNode的⽂章
:这个教程版本是2.6.0,还没有看,但博客观看体验⾮常好,有需要的可以看看。
:官⽅的教程,还没有看过,有时间看看
hadoop分布式集搭建CUP和内存配置:
:如果在⼩内存和CPU的机器上配置环境的话,要看这个⽂章。因为如果配置不好的话,Yarn⽆法给Mapreduce分配资源,从⽽程序⽆法进⾏。
注意:
(1)在配置完全分布式时,原来以为Slave机器在配置l和l等⽂件时,可以少配置很多东西。但其实不是,也需要配置很多东西。就有⼀个篇解决Slave配置中问题的⽂章中写的⼀部分:
把Master中的l和l⽂件拷贝⼀份到slave机器。
这段说明可以看出,Master机器和Slave机器在基础配置⾥还是有很多东西要⼀样的。
(2)如果想在本机⽤虚拟机进做环境的话,⼀定要设置好“内存”和“CPS”的参数。因为如果这个设置不好的话,会有下⾯的两种情况:
程序会⼀直停留有Pending的状态,不能进⼊到Running状态,因为没有资源能够分配。我刚才开始搭建环境的时候,给Master和Slave虚拟机只分配了1G的内存,⽽没有修改“内存”和“CPU”相关的相关配置(这些参数的默认值有很多就超过了1G)。
到了Running状态,启动log始终显⽰mapreduce.Job: map 0% reduce 0%。这是因为-mb 配置的最⼩值必须为4096,但我只设置了1024。把虚拟机的内存设置为5120(1024 x 5)后,再把内存的相关参数扩⼤后,就可以运⾏了。
关于map 0% reduce 0% 参考:
(3)Master和Slave上的⼏个conf配置⽂件不需要全部同步,如果确定都是通过Master去启动和关闭,那么Slave机器上的配置不需要去维护。但如果希望在任意⼀台机器都可以启动和关闭Hadoop,那么就需要全部保持⼀致了。
(4)Master和Slave机器上的/etc/hosts中必须把集中机器都配置上去,就算在各个配置⽂件中使⽤的
是IP。这个吃过不少苦头,原来以为如果配成IP就不需要去配置Host,结果发现在执⾏Reduce的时候总是卡住,在拷贝的时候就⽆法继续下去,不断重试。另外如果集中如果有两台机器的机器名如果重复也会出现问题。
(5)如果在新增了节点或者删除节点的时候出现了问题,⾸先就去删除Slave的p.dir,然后重新启动试试看,如果还是不⾏那就⼲脆把Master的p.dir删除(意味着dfs上的数据也会丢失),如果删除了Master的p.dir,那么就需要重新namenode –format。
上⾯的(3)~(5)参考:
4,测试搭建的环境:
(1)使⽤命令:jps
使⽤$HADOOP_HOME/sbin⽬录下的:start-dfs.sh和start-yarn.sh命令,启动hdfs和yarn后,在Master机器上,使⽤JPS命令后,能看到以下的进程:
ResourceManager
NameNode
在Slave机器上,使⽤JPS命令后,能看到以下的进程:
DataNode
SecondaryNameNode
nodemanager
因为我把SecondaryNamenode配置到了Slave机器上,所以显⽰在Slave上⾯。
(2)测试WEB服务
⽤下⾯的url查看Web服务是否启动:
通过web查看资源(ResourceManager)():查看任务执⾏情况
查看HDFS状态():HDFS的WEB管理画⾯
(3)运⾏程序
参考下⾯的⽂章来运⾏测试程序。下⾯⽂章最下⾯的部分,写了如何运⾏Hadoop⾃带的程序,来测试搭建的环境。
:
5,配置⽂件的中使⽤的设置的解释
<property>
<name&p.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop-master:9000</value>
</property>
<!-- secondarynamenode setting -->
<property>
<name>fs.checkpoint.period</name>
<value>3600</value>
</property>
<property>
<name>fs.checkpoint.size</name>
<value>67108864</value>
</property>
fs.defaultFS:定义NameNode的URI和端⼝
fs.checkpoint.period:表⽰多长时间记录⼀次hdfs的镜像。默认是1⼩时
fs.checkpoint.size:定义了edits⽇志⽂件的最⼤值,⼀旦超过这个值会导致强制执⾏备份(即使没到检查点的最⼤时间间隔)。默认值是64MB
<property>
<name&plication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/hdfs/data</value>
</property>
<!-- secondary namenode setting -->
<property>
<name>dfs.http.address</name>
<value>hadoop-master:50070</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop-slave-1:50090</value>
</property>
dfs.namenode.name.dir:NameNode 持久存储命名空间及事务⽇志的本地⽂件系统路径。
dfs.datanode.data.dir:DataNode存放块数据的本地⽂件系统路径,逗号分割的列表。
dfs.http.address:NameNode节点开放的HTTP服务,是由Secondary 节点获取fsimage ,edits ⽂件的通道
dfs.namenode.secondary.http-address:Secondary 节点开放的HTTP服务,是由NameNode节点获取新的fsimage ⽂件的通道
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
mapreduce.framework.name:新框架⽀持第三⽅ MapReduce 开发框架以⽀持如 SmartTalk/DGSG 等⾮ Yarn 架构,注意通常情况下这个配置的值都设置为 Yarn,如果没有配置这项,那么提交的 Yarn job 只会运⾏在 locale 模式,⽽不是分布式模式。
<property>
<name&sourcemanager.hostname</name>
<value>hadoop-master</value>
</property>
<property>
<name&demanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
6,hadoop 环境变量作⽤
1. HADOOP_CONF_DIR
当 spark 想要使⽤本地 hadoop 配置的时候(l、l 等),在spark-env.sh⾥设置 HADOOP_CONF_DIR。
HADOOP_CONF_DIR 指向 hadoop 配置⽬录。
例如:export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
2. HADOOP_OPTS
Hadoop启动时的JVM参数,默认是以server模式启动,可以加⼊-X或-XX之类的参数
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论