Hadoop集群
的部署分为分布式集群
和伪分布式集群
的部署。这篇文章中,我会对伪分布集群的安装和部署做说明。为什么先进行伪分布式集群部署呢,这是因为它只需要一台虚拟机(因为在自己的电脑上进行部署,使用的就是虚拟机),而分布式集群的部署一般需要三台及以上的虚拟机(一台为主节点,)。
并且,在实际操作的时候,分布式和伪分布式基本是没有区别的,在考虑电脑启动多个虚拟机可能会卡,所以先对伪分布集群进行说明。
伪分布集群的部署
虚拟机准备
首先准备一台虚拟机,我这里使用的是Centos6.x
,如果使用其他版本的linux,后面的部分命令会有所不同,自己在实验时需要注意。
配置静态ip和主机名
配置ip
终端输入:
vim /etc/sysconfig/network-scripts/ifcfg-eth0
配置文件:
BOOTPROTO=static
IPADDR=192.168.19.0
GATEWAY=192.168.19.2
NETMASK=255.255.255.0
DNS1=114.114.114.114
这里需要注意的是,ip地址要对应自己的虚拟机的地址。我这里网络连接使用的是NAT模式。
设置主机名
终端输入:
vim /etc/sysconfig/network
修改HOSTNAME:
设置ip和主机名的绑定映射
终端输入:
vim /etc/hosts
修改hosts
文件:
关闭防火墙
方式1:
service iptables stop
方式二:
chkconfig iptables off
设置ssh免密码登录
ssh hadoop100
这时会提示输入密码。我们要做的就是实现输入上面的命令的时候,直接连接主机,不用输入密码。
注意:如果上面没有将ip和主机名绑定的话,ssh是不能解析主机的
ssh -keygen -t rsa
后面一路回车就行。这个命令会生成一个公钥和私钥。
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
这步会向本机复制一个公钥。
这样免密就搞定了。
安装jdk
这里首先需要将jdk
的安装包传到虚拟机里。可以共享文件,或使用远程连接工具进行上传。这里就不做演示了。
首先先解压,重命名文件为jdk1.8(为了方便):
然后配置环境变量:
vim /etc/profile
export JAVA_HOME=/opt/jdk1.8
export PATH=.:$JAVA_HOME/bin:$PATH
Hadoop的安装
同样,先上传Hadoop
的安装包。
https://archive.apache.org/dist/hadoop/common/
可以在这里找到想要下的所有历史版本。
然后就需要对Hadoop里面的一些配置做修改了。
1.hadoop-env.sh
先进入Hadoop的配置文件目录:
cd /opt/hadoop-3.2.1/etc/hadoop
修改hadoop-env.sh
文件:
vim hadoop-env.sh
export JAVA_HOME=/opt/jdk1.8
export HADOOP_LOG_DIR=/data/hadoop_repo/logs/hadoop
这里注意,如果没有
data
目录,需要现在根目录下创建一个。
2.core-site.xml
vim core-site.xml
fs.defaultFS
hdfs://hadoop100:9000
hadoop.tmp.dir
/data/hadoop_repo
注意:自己的主机名是不是hadoop100
,如果不是,修改为自己的。下面的目录hadoop会自己创建,只需要保证有/data
目录即可。
3.hdfs-site.xml
vim hdfs-site.xml
dfs.replication
1
注意:这个配置表示副本数量,我们这里是伪分布集群,只有一台机器,只允许一个副本。
4.mapred-site.xml
vim mapred-site.xml
mapreduce.framework.name
yarn
他表示mapreduce
在yarn
这个引擎里去执行。
5.yarn-site.xml
vim yarn-site.xml
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.nodemanager.env-whitelist
JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CL
ASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME
他表示yarn
里面运行mapreduce
这个计算引擎,下面的执行环境的一些白名单。
这样一些基本的配置就修改完成。
对hdfs进行格式化
我们先回退到hadoop的根目录下:
bin/hdfs namenode -format
注意:格式化只能执行一次,如果因为某些原因格式化失败,建议先进入/data
目录下,删掉hadoop_repo
,再进行格式化。
修改hadoop启动项
1.start-dfs.sh
vim sbin/start-dfs.sh
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
2.stop-dfs.sh
vim sbin/stop-dfs.sh
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
3.start-yarn.sh
vim sbin/start-yarn.sh
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
4.stop-yarn.sh
vim sbin/stop-yarn.sh
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
启动集群
sbin/start-all.sh
输入jps
,如果进程除了JPS外还有5个,说明启动成功。