共计 3090 个字符,预计需要花费 8 分钟才能阅读完成。
环境筹备
我这里筹备四个虚拟机,ip 别离为:
# bigdata01
192.168.11.100
# bigdata02
192.168.11.101
# bigdata03
192.168.11.102
# bigdata04
192.168.11.103
主机命批改
主机名批改为 bigdata01、bigdata02、bigdata03、bigdata04。
# 进入文件
vi /etc/hostname
# 批改文件,这里依据不同的服务器批改
bigdata01
新建账户
新建账户为 bigdata,并设置明码,设置权限,bigdata 的权限等同于 root
# 进入文件
vi /etc/sudoers
# 新增配置
bigdata ALL=(ALL) ALL
敞开防火墙 / 敞开 Selinux
# 敞开防火墙
systemctl disable firewalld
敞开 selinux
# 进入文件
vi /etc/selinux/config
# 批改配置
SELINUX=disabled
域名映射
# 进入文件
vi /etc/hosts
# 新增配置
192.168.11.100 bigdata01
192.168.11.101 bigdata02
192.168.11.102 bigdata03
192.168.11.103 bigdata04
置 SSH 免密登录
bigdata 用户登录,在每个虚拟机执行 ssh-keygen
命令,始终 enter 上来,直至 id_rsa.pub 和 id_rsa 两个文件生成。
生成后,每个虚拟机执行以下命令发送公钥文件:
ssh-copy-id bigdata01
ssh-copy-id bigdata02
ssh-copy-id bigdata03
ssh-copy-id bigdata04
发送后通过 ssh 验证,比方以后在 bigdata01 服务器,ssh bigdata02 看看能不能免密登录到 bigdata02 服务器,如果能够,就阐明设置胜利。
如果设置了还不行,就须要留神设置文件夹和文件的权限。因为 sshd 为了平安,对属主的目录和文件权限有所要求。如果权限不对,则 ssh 的免明码登陆不失效。
chmod 700 /home/bigdata
chmod 700 /home/bigdata/.ssh
chmod 600 /home/bigdata/.ssh/authorized_keys
编译
我这边装置的是 2.7.7 版本。
编译之前除了下载相应版本的源码包,还须要查看官网的 BUILDING.txt 文件,这个文件形容了以后版本的编译须要的依赖项,以及依赖项的装置、配置。
上面是官网的截图,比方 Unix 零碎,须要 JDK1.7+、Maven3.0 等。
以上软件都装置实现后,就能够通过 maven 对源码进行编译,编译后,咱们就能够在 target 生成一个 hadoop-2.7.7.tar.gz 文件,至此编译实现。
编译后把生成的文件解压到制订目录,比方我这里是 /home/bigdata/apps/hadoop-2.7.7。
配置文件
参考官网
配置之前,咱们的布局是这样的,4 个节点,3 个正本:
节点名称 | HDFS | YARN |
---|---|---|
bigdata01 | NameNode | NodeManager |
bigdata02 | DataNode + SecondaryNamenode | NodeManager |
bigdata03 | DataNode | NodeManager |
bigdata04 | DataNode | ResourceManager |
hadoop-env.sh
配置 Hadoop 守护过程环境,门路:etc/hadoop/hadoop-env.sh。
参数 | 形容 | 必选 |
---|---|---|
JAVA_HOME | JAVA_HOME 的门路 | 是 |
HADOOP_PID_DIR | HADOOP 的 PID 文件门路 | 否 |
HADOOP_LOG_DIR | HADOOP 的日志文件门路 | 否 |
HADOOP_HEAPSIZE | 应用的最大堆大小,以 MB 为单位,默认 1000M | 否 |
core-site.xml
门路:etc/hadoop/core-site.xml。这个是 xml 文件,配置在 configuration 节点上面。
参数 | 形容 | 参数值 |
---|---|---|
fs.defaultFS | NameNode 的 URL | hdfs://bigdata01:9000 |
io.file.buffer.size | equenceFiles 中应用的读 / 写缓冲区的大小。 | 131072 |
hadoop.tmp.dir | 集群相干的数据存储目录 | /home/bigdata/data/hadoopdata |
hdfs-site.xml
配置 NameNode 和 DataNode 信息,门路:etc/hadoop/hdfs-site.xml。这个是 xml 文件,配置在 configuration 节点上面。
参数 | 形容 | 参数值 |
---|---|---|
dfs.namenode.name.dir | 本地文件系统上的门路,NameNode 在其中长久化存储命名空间和事务日志,如果用逗号隔开,那每个目录都冗余存储 | /home/bigdata/data/hadoopdata/name |
dfs.blocksize | HDFS 块大小 | 比方 268435456,即 256MB |
dfs.datanode.data.dir | datanode 的数据存储目录,如果用逗号隔开,那每个目录都冗余存储 | /home/bigdata/data/hadoopdata/data |
dfs.replication | 正本个数 | 3 |
dfs.secondary.http.address | secondarynamenode 运行节点的信息 | bigdata02:50090 |
yarn-site.xml
配置 yarn 的 ResourceManager 和 NodeManager 信息。门路:etc/hadoop/yarn-site.xml。这个是 xml 文件,配置在 configuration 节点上面。
参数 | 形容 | 参数值 |
---|---|---|
yarn.resourcemanager.hostname | 主节点的地位 | bigdata04 |
yarn.nodemanager.aux-services | MapReduce 利用须要的 shuffle 服务 | mapreduce_shuffle |
/mapred-site.xml
配置 MapReduce 利用。门路:etc/hadoop/mapred-site.xml。这个是 xml 文件,配置在 configuration 节点上面。
参数 | 形容 | 参数值 |
---|---|---|
mapreduce.framework.name | 执行框架设置为 Hadoop YARN | yarn |
Slaves 文件
配置 slave 节点,门路:etc/hadoop/slaves。内容如下:
bigdata01
bigdata02
bigdata03
bigdata04
散发各环境
scp -r hadoop-2.7.7 bigdata02
scp -r hadoop-2.7.7 bigdata03
scp -r hadoop-2.7.7 bigdata04
环境变量
每个环境都执行以下命令
# 进入文件
vim ~/.bashrc
# 新增配置
export HADOOP_HOME=/home/bigdata/apps/hadoop-2.7.7 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
运行
集群初始化,执行以下命令,留神仅第一次的时候须要。
# 仅第一次
hadoop namenode -format
启动 HDFS 集群,能够在任意节点
# 能够在任意节点
start-dfs.sh
启动 YARN 集群,在 YARN 节点上执行
# 在 YARN 节点上执行
start-yarn.sh
启动胜利验证:
网址输出 http://bigdata01:50070,界面 …
输出 http://bigdata04:8088,界面如 …
集群装置实现。