本文是我学习Hadoop搭建过程中的各种笔记,内容来自于各种公开的教程,起点非常低,从Linux基础开始,直至在PC上搭建Hadoop成功,是真正的从零开始。
感谢过程中帮助我的各位认识的和不认识的老师。
36、克隆服务器:
克隆hadoop1,克隆成hadoop3
修改网卡信息 vi /etc/udev/rules.d/70-persistent-net.rules
删掉:PCI device 0x8086:0x100f (e100)上面的两行
在最后,改成 eth0
修改主机名 vi /etc/sysconfig/network
修改成:hadoop03
修改IP信息 vi /etc/sysconfig/network-scripts/ifcfg-eth0
改三处:UUID(改成16进制)、IPADDR(最后三个数在255之内,三个Hadoop要用一个网段,为下面集群,不在同一个网段无法相互通信)、HWADDR(hadoop虚拟机设置,网络适配器,高级)
修改映射 vi /etc/hosts
O键 :换行
输入:192.168.216.112.hadoop02 www.hadoop02.com
使用hadoop02相当对应着192.168.216.112.这台主机, 相当一个路由,一个映射。
再输入:192.168.216.113.hadoop03 www.hadoop03.com
此时共有三个:
192.168.216.111.hadoop01 www.hadoop01.com
192.168.216.112.hadoop02 www.hadoop02.com
192.168.216.113.hadoop03 www.hadoop03.com
从新启动网卡:service network restart
查看现在的IP:ifconfig
要到达的效果:在windows能ping上服务端
C:\Users\lyd\ping 192.168.216.113 能通
通过XShell建立连接
Name:hadoop03
Host:192.168.216.113
公司一般共私钥登录,这里用密码(Password)登录
从新启动hadoop01 02 03
从新启动:reboot
看三台机子是否能够相互通信:
在hadoop01输入:ping 192.168.216.112 能够到达02机子
在hadoop01输入:ping 192.168.216.113 能够到达03机子
同样的在02也可到达01和03,03也可到达01和02
37、Hadoop的集群配置01:
Hadoop环境的搭建,也就是Hadoop集群的搭建,或是Hadoop分布式环境的部署
Hadoop环境分为三种:
http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/SingleCluster.html
Local(Standalone) Mode 本地环境的搭建
Pseudo-Distributted Mode 伪分布式
Fully-Distributted Mode 全分布式
Hadoop集群的安装:
http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/ClusterSetup.html
Prerequisites (准备工作)
Install Java. See the Hadoop Wiki for known good versions.
Download a stable version of Hadoop from Apache mirrors.
先安装Java,再安装和Java匹配的Hadoop版本,下载之后再安装
Hadoop全分布式环境搭建:
规划 ——哪些机子提供哪些服务
整个集群的架构
逻辑结构:
主机结构:
多台机子,每台机子起对应的服务,同样的服务起在多个机子上,提供相同的服务,一个机子死,不影响整体服务
Hadoop集群的配置步骤:
一、 规划:
主机名称 | IP地址 | 功能 |
hadoop01 | 192.168.216.111 | NameNode、DataNode、rescourcemanager、 nodemanage |
hadoop02 | 192.168.216.112 | DataNode、nodemanage |
hadoop03 | 192.168.216.113 | DataNode、nodemanage |
所以机子都需要配置(下面的1、2、3) | ||
1、JDK | 2、SSH 免登陆 | 3、Hadoop 集群 |
有DataNode【有数据】,就要在这台服务器上启动Nodemanager【分配资源,随时计算】
Hadoop集群配置
集群需要安装哪些包,配置哪些环境变量
安装Ssh,先不安装,看效果是怎样的;
which Hadoop 出来的结果显示已经安装过,是一个单机版,在单机版的基础上来修改;
which java 每台机子上都有Java,不再按装。
二、配置Hadoop的相关配置文件(共6个相关配置文件):
配置Hadoop集群(配置hadoop01):
官网:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/ClusterSetup.html
四个核心配置文档:
进安装目录:cd $HADOOP_HOME
第一个配置文件: vi ./ect/hadoop/hadoop-env.sh
这个前面已经配置:是告诉我们Hadoop,Java的安装目录在哪,因为Hadoop是Java写的,它需要jdk,已配好。
第二个配置文件: vi ./ect/hadoop/core-site.xml
<configuration>
【<configuration>:空的标签,在里面可以写键值对】
<!--配置hdfs文件系统的命名空间--> (←注释)
<property> (<property>开始)
<name>fs.defaultFS</name>
<value>hdfs//hadoop01:9000</value>
【NameNode在哪台服务器启动,写哪台服务器的主机名】
【端口:8020或9000都行】
</property > (</property>终止)
<!--配置操作hdfs的缓冲大小-->
< property >
<name>io.file.buffer.size</name>
<value>4096</value>
</property>
<!--配置临时数据存储目录-->
【临时目录:运行hadoop产生的一些临时的数据,它所存在的位置】
<property>
<name>hadoop.tmp.dir</name>
<value>/home/bigdata/tmp</value>
</property>
第三个配置文件:vi ./ect/hadoop/hdfs-site.xml 【配置hdfs相关的模块信息】
< configuration >
<!--配置副本数 -->
<property>
<name>dfs.replication </name>
<value>3</value>
</property >
<!--块大小-->
< property >
<name>dfs.block.size</name>
<value>134217728</value> (134217728默认的kb)
</property>
<!—hadfs元数据存储的位置-->
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoopdata/dfs/name</value>
【同上面一样:<value>file:///home/hadoopdata/dfs/name</value>】
【file:///指:文件协议。/ home/hadoopdata/dfs/name这个目录下面全是元数据信息】
</property>
<!--hadfs数据存储的位置--> 【正真数据储存的位置】
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoopdata/dfs/data</value>
【上面是name,尽量放在不同的目录里】
</property>
<!--hdfs的检测目录-->
<property>
<name>fs.checkpoint.dir</name>
<value>/home/hadoopdata/checkpoint/dfs/cname</value>
</property>
<!-- -->
<property>
<name>fs.checkpoint.edits.dir</name>
<value>file:///home/hadoopdata/checkpoint/dfs/cname</value>
</property> 这里不要了,想配置,注释一下就行了
<!--hadfs的namenode的web ui地址> 【搭起来后,在web网址能看到】
<property>
<name>dfs.http.address </name> 【http:外部ui监控】
<value>hadoop01:50070</value> 【namenode装在哪台服务器上,哪台服务器就是主机】
</property>
<!--hadfs的snn的web ui地址>【hdfs外部监控地址】
<property>
<name>dfs.secondary.http.address</name>
<value>hadoop01:50090</value>
</property>
<!--是否开启web操作dfs >
<property>
<name>dfs.webhdfs.enabled </name>
<value>false</value>
</property>
<!--是否开用hdfs的权限(acl)--> 【acl控制列表,Linux中的九位】
<property>
<name>dfs.permissions</name>
<value>false</value> 【默认false,不在对权限做启用了】
</property>
</configuration >