Hadoop集群的安装配置

Hadoop 集群的安装配置大致为如下流程:

  1. 选定一台机器作为 Master
  2. 在 Master 、slave节点上配置 hadoop 用户、安装 SSH server、安装 Java 环境
  3. 在Master、 Slave 节点上配置SSH免密码登录
  4. 在 Master 节点上安装 Hadoop,并完成配置
  5. 将 Master 节点上的 /usr/local/hadoop 目录(Hadoop安装目录)复制到其他 Slave 节点上
  6. 在 Master 节点上开启 Hadoop

修改服务器主机名、/etc/hosts文件

  1. 修改主机名
vi /etc/hostname #添加主机名
master
vi /etc/sysconfig/network #添加IP和hostname对应关系
10.10.5.1  master
reboot

如果是用 CentOS 6.x 系统,则修改 /etc/sysconfig/network 文件,改为 HOSTNAME=Master

  1. 修改集群中每台机器的host
vim /etc/hosts 
	10.10.5.1 master
	10.10.5.2 slave1
	10.10.5.3 slave2

创建hadoop用户

useradd -m hadoop
passwd hadoop

建立集群之间的SSH 免密码登录

  1. 切换到Hadoop用户下,生成dsa密钥。每台机器步骤如下
su hadoop
cd ~/.ssh
ssh-keygen -t dsa                 # 会有提示,都按回车就可以
cat id_dsa.pub >> authorized_keys   # 加入授权
chmod 600 ./authorized_keys       # 修改文件权限,如果不改,无法通过,原因好像是cent os的权限验证比较严格
  1. 集群主机之间SSH免密码登录(以master为例

    首先将master生成的公匙用scp命令传到所有的slaver上(以下命令是在master上执行

scp ~/.ssh/id_dsa.pub hadoop@slave1:/home/hadoop/.ssh/m_id_dsa.pub
scp ~/.ssh/id_dsa.pub hadoop@slave2:/home/hadoop/.ssh/m_id_dsa.pub
scp ~/.ssh/id_dsa.pub hadoop@slave3:/home/hadoop/.ssh/m_id_dsa.pub
  1. 使用hadoop用户登入slave1/2,将公匙加入到授权中(以下命令是在slave上执行
cat ~/.ssh/m_id_dsa.pub >> ~/.ssh/authorized_keys

同理, 对于slave1来说,必须可以ssh master,ssh slave2

scp ~/.ssh/id_dsa.pub hadoop@master:/home/hadoop/.ssh/s1_id_dsa.pub
scp ~/.ssh/id_dsa.pub hadoop@slave2:/home/hadoop/.ssh/s1_id_dsa.pub
#以下命令在master、slave2上执行
cat ~/.ssh/s1_id_dsa.pub >> ~/.ssh/authorized_keys

同理, 对于slave2来说,必须可以ssh master,ssh slave1

scp ~/.ssh/id_dsa.pub hadoop@master:/home/hadoop/.ssh/s2_id_dsa.pub
scp ~/.ssh/id_dsa.pub hadoop@slave1:/home/hadoop/.ssh/s2_id_dsa.pub
#以下命令在master、slave1上执行
cat ~/.ssh/s2_id_dsa.pub >> ~/.ssh/authorized_keys

检查确保集群中的所有节点都可以互相SSH无密码登录

Hadoop 添加环境变量

vi /etc/profile
export HADOOP_HOME=/opt/hadoop-3.3.0
export PATH=$HADOOP_HOME/bin:$PATH
source /etc/profile           #环境生效
hadoop version                #查看版本

修改hadoop 中的5个配置文件

更多设置项可点击查看官方说明,这里仅设置了正常启动所必须的设置项: slaves、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml

hadoop-env.sh

vi hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_171   #JAVA_HOME写上自己jdk 的安装路径

core-site.xml

vi core-site.xml
<!-- 指定Hadoop所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 -->
<property>
	<name>fs.defaultFS</name>
	<value>hdfs://node-1:9000</value>
</property>
<!-- 指定Hadoop运行是产生文件的存储目录。默认 -->
<property>
	<name>hadoop.tmp.dir</name>
	<value>/usr/local/hadoop/tmp</value>
</property>

hdfs-site.xml

vim hdfs-site.xml
<!-- 指定HDFS副本的数量,不修改默认为3个 -->
<property>
	<name>dfs.replication</name>
	<value>2</value>
</property>
<!-- dfs的SecondaryNameNode在哪台主机上 -->
<property>
	<name>dfs.namenode.secondary.http-address</name>
	<value>slave1:50090</value>
</property>

mapred-site.xml

mv mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
<!-- 指定MapReduce运行是框架,这里指定在yarn上,默认是local -->
<property>
	<name>mapreduce.framework.name</name>
	<value>yarn</value>
</property>

yarn-site.xml

vim yarn-site.xml
<!-- 指定yarn的老大ResourceManager的地址 -->
<property>
	<name>yarn.resourcemanager.hostname</name>
	<value>slave1</value>
</property>
<!-- NodeManager上运行的附属服务。需要配置成mapreduce_shuffle,才可以运行MapReduce程序默认值 -->
<property>
	<name>yarn.nodemanager.aux-services</name>
	<value>mapreduce_shuffle</value>
</property>

slaves 文件,里面写上从节点所在的主机名字

该文件在hadoop 3.0后改为workers

vim workers
slave1
slave2

将 Master 上的 Hadoop 文件夹复制到各个节点上

tar -zcf ~/hadoop.master.tar.gz ./hadoop   # 先压缩再复制
cd ~/
scp ./hadoop.master.tar.gz root@slave1:/opt/hadoop  #传输数据
# 解压(在slave1、slave2上执行)
tar -zxvf hadoop.master.tar.gz

配置好的环境变量也要远程发送给各个节点

scp -r /etc/profile root@slave1:/etc/
scp -r /etc/profile root@slave2:/etc/
然后试所有的计算机环境变量生效(在slave1、slave2上执行)
source /etc/profile

启动

首次启动需要在Master节点执行NameNode格式化:hdfs namenode -format

  1. 在启动集群之前需要关闭centos 的防火墙:
service iptables stop   # 关闭防火墙服务
chkconfig iptables off  # 禁止防火墙开机自启,就不用手动关闭了
  1. 在master节点上启动 hadoop
cd /usr/local/hadoop
sbin/start-all.sh

mr-jobhistory-daemon.sh start historyserver #启动jobhistoryserver来实现web查看作业的历史运行情况

另外还需要在 Master 节点上通过命令 hdfs dfsadmin -report查看 DataNode 是否正常启动,如果 Live datanodes 不为 0 ,则说明集群启动成功。
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值