http://hadoop.apache.org/docs/r3.1.3/hadoop-project-dist/hadoop-common/ClusterSetup.html
概述:
利用多台Linux主机来进行部署Hadoop,对Linux机器集群进行规划,使得Hadoop各个模块分别部署在不同的多台机器上。
新建一个虚拟机hadoop1为主站,分别克隆名为hadoop2、hadoop3、hadoop4的从站。
centOS 7 安装 :https://blog.csdn.net/Henry_Lin_Wind/article/details/80876494
添加主机名与ip地址的映射关系,有两处:
更改 /etc/hosts
使用火绒-安全工具更改windows的hosts
Hostname IP
hadoop1 192.168.100.128
hadoop2 192.168.100.129
hadoop3 192.168.100.130
hadoop4 192.168.100.131
重启生效
服务器功能规划:分别在3台主机上安装不同的功能
hadoop1 hadoop2 hadoop3 hadoop4
NameNode ResourceManage
DataNode DataNode DataNode DataNode
NodeManager NodeManager NodeManager NodeManager
HistoryServer SecondaryNameNode
安装步骤:
1、安装虚拟机,设置网络
安装vmware-tools: yum install -y open-vm-tools
更改ip vim /etc/sysconfig/network-scripts/ifcfg-ens33
更改 BOOTPROTO=static
ONBOOT=yes
e.g. IPADDR=192.168.100.128
GATEWAY=192.168.100.2
NETMASK=255.255.255.0
DNS1=114.114.114.114
DNS2=8.8.8.8
重启网络服务 systemctl restart network.service
2、在主站上安装好java和hadoop,
3、关闭防火墙 systemctl stop firewalld
查看:systemctl status firewalld
禁止开机启动:systemctl disable firewalld
如果安装了iptables-service。 查看 service iptables status
关闭 service iptables stop
永久关闭SELinux vim /etc/selinux/confi
修改 SELINUX=disabled 重启生效
4、配置hadoop-env.sh、core-site.xml、hdfs-site.xml、workers
5、分别在三台主机上设置SSH无密码登录
6、分发主站的hadoop和java到两个从站上
7:启动集群,查看三台主机的进程。
完全分布式安装
1、设置虚拟机网络
新增NAT模式,修改子网IP为192.168.100.0
修改NAT设置
更改 /etc/hosts
使用火绒-安全工具更改windows的hosts
2、安装Linux系统 hadoop1,拍照并克隆。克隆后更改hostname
e.g. hostnamectl set-hostname hadoop2
3、在主站安装Java 和 Hadoop (主站配置好后,最后通过分发复制到其他从站)
e.g. scp -r hadoop hadoop2:/usr/local
3.安装和配置JDK、hadoop
修改/etc/profile
JAVA_HOME=/usr/local/jdk1.8.0_141
CLASSPATH=.:JAVA_HOME/bin:HADOOP_HOME/bin
export JAVA_HOME CLASSPATH PATH HADOOP_HOME
使用source profile
4、配置Hadoop JDK路径修改hadoop-env.sh、mapred-env.sh、yarn-env.sh文件中的JDK路径:
增加 export JAVA_HOME=/usr/local/jdk1.8.0_141
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root ;
5、配置core-site.xml
增加
fs.defaultFS为NameNode的地址。
hadoop.tmp.dir为hadoop临时目录的地址,默认情况下,NameNode和DataNode的数据文件都会存在这个目录下的对应子目录下。如需重新初始化,应先rm -rf data 删除,以防clusterID出现混乱,致使DataNode无法加载。
6、配置hdfs-site.xml
dfs.namenode.secondary.http-address是指定secondaryNameNode的http访问地址和端口号,因为在规划中,我们将hadoop2规划为SecondaryNameNode服务器。
7、配置workers
vim etc/hadoop/workers
hadoop2
hadoop3
hadoop4
(全分布式如上。伪分布式是只有hadoop1.)
10、设置SSH无密码登录
在hadoop1上生成公钥,不断回车即可。
ssh-keygen -t rsa
在hadoop1分发公钥,分别分发给三台主机。(如下,操作中需要回复yes确认以及登录密码)
ssh-copy-id hadoop1
ssh-copy-id hadoop2
ssh-copy-id hadoop3
同样的在hadoop2、hadoop3上生成公钥和私钥后,将公钥分发到三台机器上。
启动集群
1、在主站格式化NameNode
${HADOOP_HOME}/bin/hdfs namenode –format
注意:
如果需要重新格式化NameNode,需要先将原来NameNode和DataNode下的文件全部删除,不然会报错,NameNode和DataNode所在目录是在core-site.xml中hadoop.tmp.dir、dfs.namenode.name.dir、dfs.datanode.data.dir属性配置的。
2、在hadoop1上启动HDFS
${HADOOP_HOME}/sbin/start-dfs.sh
查看进程启动情况:jps
查看端口占用情况: ss -nal
关闭HDFS:/sbin/stop-dfs.sh
5、 查看HDFS Web页面
根据规划,我们部署在主站,所以访问路径为 //hadoop1:9870
测试
1、 创建测试用的Input文件
{HADOOP_HOME}/bin/hdfs dfs -put *.xml /temper
————————————————
版权声明:本文为CSDN博主「Henry_Lin_Wind」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Henry_Lin_Wind/article/details/89402422