网站建设流程方案,通州网站建设公司,南昌网站建设公司市场,北京排名前10的公关公司需要JDK、SSH
对于伪分布式#xff0c;Hadoop会采取与集群相同的处理方式#xff1a;按次序启动文件conf/slaves中记载的主机上的进程#xff0c;只不过在伪分布式中Slave为localhost#xff08;自身#xff09;。 Hadoop从三个角度将主机划分为两种角色#xff1a;
最…
需要JDK、SSH
对于伪分布式Hadoop会采取与集群相同的处理方式按次序启动文件conf/slaves中记载的主机上的进程只不过在伪分布式中Slave为localhost自身。 Hadoop从三个角度将主机划分为两种角色
最基本Master和Slave
HDFS角度NameNode和DataNode
MapReduce角度JobTracker和TaskTracker 三种运行方式
单机模式无需配置Hadoop被认为是一个单独的Java进程用于调试
伪分布式fs.default.namehdfs://localhost:9000 dfs.replication1
分布式 格式化HDFS系统hadoop namenode -format
HDFS web端口50070 网络拓扑
通常来说一个Hadoop集群体系结构由两层网络拓扑组成 Switch Switch1 Node1 Node2 Node3 Switch2 Node4 Node5 Node5 实际应用中每个机架会有30-40台机器这些机器共享一个1GB带宽的网络交换机
在所有机架之上还有一个核心交换机或路由器通常来说其网络交换能力为1GB或更高。
同一机架中机器节点之间的带宽资源肯定比不同机架中机器节点丰富这也是Hadoop随后设计数据读写分发策略要考虑的一个重要因素。 在实际应用中为了使Hadoop集群获得更高的性能需要配置集群使Hadoop能够感知其所在的网络拓扑结构——使Hadoop清晰的知道每台机器所在的机架。
在处理MapReduce任务时优先选择在机架内部做数据传输以充分利用网络带宽资源。
HDFS可以更加智能地部署数据副本并在性能和可靠性间找到最优的平衡。 网络的拓扑结构、机器节点及机架的网络位置定位都是通过树结构来描述的。
通过树结构来确定节点间的距离这个距离是Hadoop做决策判断时的参考因素。
在配置Hadoop时Hadoop会确定节点地址和其网络位置的映射此映射在代码中通过Java接口DNSToSwitchMapping实现代码如下
public interface DNSToSwitchMapping{
public Liststring resolve(ListString names);
}
在topology.node.switch.mapping.impl中的配置参数定义了一个DNSToSwitchMapping接口的实现NameNode通过它确定完成任务的机器节点所在的网络位置。
系统有一个默认的接口实现ScriptBasedMapping可以运行用户自定义的一个脚本去完成映射。如果没有定义映射则将所有的机器节点映射到一个单独的网络位置中默认的机架上如果定义了映射则脚本位置由topology.script.file.name指定。
脚本获得一批IP生成一个标准的网络位置。 Hadoop集群配置
Hadoop通过org.apache.hadoop.conf.configuration来读取配置文件
Hadoop运行定义最终参数final parameter——不能在进程中改变
允许参数传递即定义了一个参数后进行引用 ${basedir}
hadop-env.sh 为Hadoop守护进程设置环境变量
java路径
core-site.xml
fs.default.name
hdfs-site.xml
dfs.name.dir
dfs.data.dir
mapred-site.xml
yarn-site.xml
mapred-queues.xml
设置MapReduce系统的队列顺序例如把用户分组赋予不同级别优先级高的job先执行
queue的有效性依赖于mapreduce.jobtracker.taskscheduler设置的调度规则scheduler
一些调度算法可能只需一个queue复杂调度算法需要设置多个queue。
对queue的大部分修改无需重启系统。 通过logs目录下的日志文件对过往进行分析。
例如NameNode和DataNode的namespaceID不一致
这个问题是由于两次或两次以上格式化NameNode造成的
两种解决办法
1、删除DataNode所有资料
2、修改每个DataNode的namespaceID 位于dfs/data/current/VERSION文件中
或NameNode的namespaceID 位于dfs/name/current/VERSION文件中 实际应用场景
重启坏掉的DataNode或JobTracker
动态加入DataNode或TaskTracker
hadoop-daemon.sh --config ./conf start datanode
hadoop-daemon.sh --config ./conf start tasktracker