搭建全分布式集群总结

全局分布式集群搭建


注: 如果之前搭建过伪分布式集群,则必须删除就hadoop的jar包,重新解压,因为之前配的文件有可能会冲突。
  接下来是搭建集群的详细配置步骤 ~~
  搭建集群之前的一些设置之前有配置过,就不在详细讲了,全局集群的搭建主要与单机集群的搭建配置文件有些不同,其他都差不多一样,详细步骤 **点击查看** [伪分布式集群搭建](https://blog.csdn.net/qq_43412289/article/details/89045895)

以上的设置都配置成功以后接下来修改配置文件
在修改配置文件之前给大家推荐一个工具 Notepad ++,这个工具在登录以后直接可以点击文件,修改配置文件,方便很多。 需要的进去官网下载 ,点击进入Notepad++这里有详细的操作步骤及安装包。接下来开始设置配置文件了 …

  1. 配置文件 hadoop-env.sh
export JAVA_HOME=/root/Downloads/jdk1.7.0_79
 export HADOOP_HOME=/root/Downloads/hadoop-2.6.5

搭建全分布式集群总结

  1. 配置文件 core-site.xml
    搭建全分布式集群总结
    /hadoop.tmpdir : 产生namenode中fsimage 和edits文件合并元数据
<configuration>	
		<property>		
			<name>fs.defaultFS</name>
			<value>hdfs://hadoop:9000</value>
		</property>
		<property>
			<name>hadoop.tmp.dir</name>
			<value>/hadoop/tmpdir</value>
		</property>
	</configuration>

  1. 配置文件 hdfs-site.xml
    搭建全分布式集群总结
<configuration>
<property>
	<name>dfs.namenode.name.dir</name>
	<!-- 放置的是namenode 中的fsimage-->
	<value>/hadoop/tmpdir/name</value>
</property>
<property>
	<name>dfs.namenode.http-address</name>
	<!-- namenode的访问地址-->
	<value>hadoop:50070</value>
</property>
<property>
        <name>dfs.namenode.edits.dir</name>
        <value>/hadoop/tmpdir/nameedits</value>
         <!-- namenode的edits日志文件地址-->

</property>
<property>
	<name>dfs.namenode.checkpoint.dir</name>
	<!-- snn的fsimage地址-->
	<value>/hadoop/tmpdir/secondary</value>
</property>
<property>
	<name>dfs.namenode.checkpoint.edits.dir</name>
	<!-- snn的edits日志文件的地址-->
	<value>/hadoop/tmpdir/secondary</value>
</property>
</configuration>
  1. 配置文件 yarn-site.xml
    shuffle是一个程序分发的理解意思
    ResourceManager:----->ApplicationManager(服务) appmaster (RM-container)—>RM
    Scheduler: 专注于:AM–>RM(注册分配资源)
    搭建全分布式集群总结
<configuration>
<property>
	<name>yarn.resourcemanager.hostname</name>
	<value>hadoop</value>
</property>
<!-- rm的启动地址 -->
<property>	
	<name>yarn.nodemanager.aux-services</name>
	<!-- 是否需要shuffle  可以切换本地模式和集群模式 -->
	<value>mapreduce_shuffle</value>
</property>
<property>	
	<name>yarn.resourcemanager.address</name>
	<!--resourcemanager分配的端口地址  -->
	<value>hadoop:8032</value>
</property>
<property>	
	<name>yarn.resourcemanager.scheduler.address</name>
	<!-- PRC的地址,并且用于分配资源的端口 -->
	<value>hadoop:8030</value>
</property>
<property>	
	<name>yarn.resourcemanager.resource-tracker.address</name>
	<!-- 对nodemanager暴露的地址 (资源追踪器) 心跳机制端口 -->
	<value>hadoop:8031</value>
</property>
<property>	
	<name>yarn.resourcemanager.admin.address</name>
	<!-- resourcemanager 的admin模块的通讯地址 -->
	<value>hadoop:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<!--web服务器的端口 -->
<value>hadoop:8088</value>
</property>
 <property>  
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
		<!--开启日志聚合 -->
</property>
 <property>  
        <name>yarn.nodemanager.remote-app-log-dir</name>
        <value>/hadoop/logs</value>
		<!--日志聚合到一个文件夹中 -->
</property>
</configuration>

  1. 配置文件 mapred-site.xml
    在配置这个文件的时候得注意一点 就是刚开始的时候 mapred-site.xml 这个文件时空的,则需要把 mapred-site.xml.template 修改成 mapred-site.xml
    如果没有修改这个在之后的访问YARN web浏览器的时候是没有application的
    linux命令为 :
    mv mapred-site.xml.template mapred-site.xml搭建全分布式集群总结
<configuration>
<property>
	<name>mapreduce.framework.name</name>
	<value>yarn</value>
	<final>true</final>
</property>

<property>
	<name>mapreduce.jobhistory.address</name>
	<!-- 启动历史服务器-->
	<value>hadoop:10020</value>
</property>

<property>
	<name>mapreduce.jobhistory.webapp.address</name>
	<!-- 历史服务器web访问地址-->
	<value>hadoop:19888</value>
</property>
</configuration>
  1. 配置文件 slaves (从节点指定)
    主机名
    从节点配置三台
    搭建全分布式集群总结

  2. 分发 /etc/hadoop路径下 配置文件到其他两台机器

    • 删除其他两台机器jar包  命令 rm -rf hadoop-2.6.5
    • 重新解压 在tar -zxvf hadoop压缩包
    • etc 下目录下 scp -r hadoop/ [email protected]其他机器主机名:/root/Downloads/hadoop-2.6.5/etc/hadoop/
    • 注意之间的空格
  3. 把集群进行格式化 format 生成fismage镜像和edits  命令 hdfs namenode -format

  4. 免密设置:ssh-****** -t rsa ----->.ssh(报错删除)

  • 配置 主机1—>主机2 ssh-copy-id 主机 1—2 1—3 2—1 2—3 3—1 3—2
  • ssh-copy-id 自己的主机名 本机的主机免密也需要配置
  1. 启动集群
    机器:start-all.sh 启动所有机器
       stop-all.sh 关闭集群
  2. Hadoop启动方式
    1.无脑启动 --不常用
    Start-all.sh/Stop-all.sh
    2.安装大模块启动 —常用
    Start-dfs.sh
    Start-yarn.sh
  3. web上查看进程
    在访问集群之前 先找到window C盘\ windows\system32\etc hosts 修改主机名,如果修改没成功,进入查看解决问题 修改c盘文件
    主机名:50070访问hdfs
    搭建全分布式集群总结
    主机名:8088 访问yarn
    搭建全分布式集群总结
    1. wordcount 程序 wordcount详解

cd /
vim wordcount.txt
ls
hdfs dfs -mkdir /ww
hdfs dfs -put wordcount.txt /ww
运行程序 cd ~ ls 找到jar包 $HADOOP_HOME cd share cd hadoop
ls cd mapreduce
ls
hadoop jar hadoop-mapreduce-examples-2.6.5.jar wordcount /qq/wordcount.txt /wordcount
运行成功之后 访问hdfs 查看是否有文件

  1. 搭建中遇到的问题
    注意事项 :
    今天在搭建全局集群的过程中很多的问题,之后找到了相应的解决方法,把这些方法分享给大家 ,以防遇到类似的问题!!!
    1.在配置免密之前一直没有成功,明明配了免密还要一直提示输入密码,这个问题是因为我在之前配置文件主机名映射的问题
      1.首先cd ~ 到家目录 ls -la查看是否有.ssh配置文件
      2.如果有rm -rf .ssh 删除配置文件重新生成
      3.ssh-****** -t rsa 生成** 然后一直回车
      4.ssh-copy-id 主机名
    例如:ssh-copy-id hadoop ssh-copy-id hadoop1 (注意的是需要连接n台就得配置n台,配置包括本机)
    2.启动之后一直不显示进程或进程缺少
      1.首先查看配置文件是否正确或者cd $HADOOP_HOME 下的logs 日志 可以查看日志的末尾报错所在的位置 tail -200f 日志文件
      2.在配置文件没有书写问题时,cd / 到根目录 删除之前生成的文件 我的是hadoop 切记 其他虚拟机文件也得删除
      3.删除之后重新 格式化 hdfs namenode -format
      4.成功以后启动集群 start-all.ssh