如何使用Centos Mini版配置hadoop环境
基础准备
- 安装基础命令
yum intall ifconfig
根据提示安装yum install tool…
安装vim yum install vim - 配置静态ip
a) 进入到网卡配置目录 cd /etc/sysconfig/network-scripts/
b) 查看网卡信息和名称 ifconfig
c) 进入ifcfg-ens33,配置如下
TYPE=“Ethernet”
PROXY_METHOD=“none”
BROWSER_ONLY=“no”
BOOTPROTO=“static” #标注为静态
IPADDR=192.168.241.201 #ip地址
NETMASK=255.255.255.0
GATEWAY=192.168.241.2 #网关
DEFROUTE=“yes”
IPV4_FAILURE_FATAL=“no”
IPV6INIT=“yes”
IPV6_AUTOCONF=“yes”
IPV6_DEFROUTE=“yes”
IPV6_FAILURE_FATAL=“no”
IPV6_ADDR_GEN_MODE=“stable-privacy”
NAME=“ens33”
UUID=“41f55b52-3010-458a-92c6-f8f5341d754b”
DEVICE=“ens33”
ONBOOT=“yes”
IPV6_PRIVACY=“no”
d) 添加dns服务器 vim /etc/resolv.conf
添加如下信息
nameserver 114.114.114.114
nameserver 114.114.114.115 nameserver大家可以去百度的。阿里,腾讯,谷歌都有的。
e) 重启网卡服务 systemctl restart network
3. openssh-server 准备,openssh是为了方便x-shell连接虚拟机的。
4. 修改主机名 vim /etc/hostname ps:修改成有规律的,方便搭集群
5. 配置hosts文件,这里就是配置dns域名解析,将其他节点的ip地址映射成相应的别名
a) Vim /etc/hosts
6. 关闭防火墙 systemctl stop firewalld.service
禁止开机启动:systemctl disable firewalld.service
7. 关闭Selinux:vim /etc/selinux/config
8. ssh免密登陆
ssh-keygen -t rsa 一路回车
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
可用ssh localhost进行测试
9. ntp 时间同步准备
a) 安装ntp:yum intall –y ntp
b) 设置ntp开机自动启动
systemctl enable ntpd.service
**配置java环境**
- oracle官网下载jdk-8u202-linux-x64.tar.gz
- 在/opt下面新建java文件夹,mkdir java
- 利用winScp上传到centos的/opt/java
- 解压到当前目录 tar -zxvf jdk-8u202-linux-x64.tar.gz
- 重命名 mv jdk1.8.0_202/ jdk8
- 配置环境变量,vim /etc/profile,在文件末尾加上
JAVA_HOME= /opt/java/jdk8
export PATH=JAVA_HOME/bin
wq保存后,执行source /etc/profile
输入java命令测试是否配置成功
基础配置Hadoop
- 官网下载稳定版本Hadoop2.9
- 在/opt下mkdir hadoop
- 上传到/opt/hadoop
- 解压 tar -zxvf hadoop-2.9.2.tar.gz
- 重命名 mv hadoop-2.9.2 hadoop2.9
- cd hadoop2.9,进入到hadoop目录
vim etc/hadoop/hadoop-env.sh
在此处填上配置的java_home路径
保存退出 - ./bin/hadoop version测试是否配置成功
- 配置hadoop环境变量
vim /etc//profile
在末行添加如下信息:
export PATH=JAVA_HOME/bin
HADOOP_HOME=/opt/hadoop/hadoop2.9
export PATH=HADOOP_HOME/bin
export PATH=HADOOP_HOME/sbin
保存退出,source /etc/profile
测试是否配置成功
伪分布式hadoop
- 修改vim etc/hadoop/core-site.xml
hadoop.temp.dir
file:/opt/hadoop/hadoop2.9/tmp
Abase for other temporary directories.
fs.defaultFS
hdfs://hadoop201:9000
注意,这里的hadoop201是你自己的主机名,可以直接为localhost - 修改vim etc/hadoop/hdfs-site.xml
dfs.replication
1
dfs.namenode.name.dir
file:/opt/hadoop/hadoop2.9/tmp/dfs/name
dfs.datanode.data.dir
file:/opt/hadoop/hadoop2.9/tmp/dfs/data - 格式化namenode
hdfs namenode –format - 启动namenode
hadoop-daemon.sh start namenode - 查看进程
- 进入hadoop201:50070查看hadoop web界面
a) 这里需要配置windows域名解析
进入C:\Windows\System32\drivers\etc
编辑hosts文件
在末尾加入 192.168.241.201 hadoop201,配置成功
完全分布式hadoop
删除$HADOOP_HOME目录下的logs、tmp文件,或者也可以直接删除hadoop2.9,重新解压 - 这里准备三台客户机
克隆两台主机 - 由于是克隆的原先配置好jdk的主机,客机就不用配置jdk,直接配置hadoop集群
- 配置主机名,静态ip,不要重合,我分别配置的hadoop201、hadoop202、hadoop203,
静态ip和主机名一样结尾,配置主机名,hadoop201,hadoop202,hadoop203,由于上文已经说明如何配置,此处省略,配置dns映射
192.168.241.201 hadoop201
192.168.241.202 hadoop202
192.168.241.203 hadoop203
编写同步更新脚本
在~目录下创建bin文件夹
在~/bin下创建脚本文件 update
在里面编写如下
#!/bin/bash
pcount=$#
if [ $pcount = 0 ];
then
echo no args
exit
fi
#2 获取文件名称
p1=$1
fname=basename $p1
echo fname=$fname
#3 获取上机目录到决定路径
pdir=cd -P $(dirname $p1); pwd
echo pdir=KaTeX parse error: Expected 'EOF', got '#' at position 6: pdir #̲4 获取当前用户名称 user…host------------
rsync -rvl fname host:$pdir
done
修改文件权限 chmod 777 update - 配置环境变量
export PATH=$PATH:~/bin - 执行命令
- 按照如下进行配置
- Hadoop201中的hadoop-env.sh配置JAVA_HOME
- 在hadoop201配置core-site.xml
hadoop.temp.dir
file:/opt/hadoop/hadoop2.9/tmp
Abase for other temporary directories.
fs.defaultFS
hdfs://hadoop201:9000 - 配置hdfs-site.xml
dfs.namenode.secondary.http-address
hadoop203:50090 - YARN配置文件
配置yarn-env.sh
配置yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop202</value>
</property>
11. MapReduce配置文件 vim etc/hadoop/mapred-env.sh配置 ![在这里插入图片描述]() cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapre-site.xml vim etc/hadoop/mapre-site.xml 在文件中编辑,指定MR运行在yarn上 mapreduce.framework.name yarn 12. 在主机和客机中安装rsync命令 yum install rsync 13. 在集群中发布配置好的hadoop配置文件 update /etc/hosts update ../hadoop2.9 14. 删除每个客户端上和主机上的data/ logs/ rm –rf data/ logs/ 15. 在hadoop201上格式化namenode hdfs namenode –format 16. 设置ssh无密码登陆:由于之前对主机进行了无密码登陆操作,克隆的客机存在主机的公钥,可以进行无密码登陆; 如果不是按照上面的操作,可以在主机上生成公私钥,将公钥copy到其他客机和自己 ssh-copy-id hadoop20* 每个客机进行一次以上操作 17. 启动(可直接跳过) hadoop-daemon.sh start namenode hadoop-daemon.sh start datanode (在每个节点上都要启动) jps 查看是否启动成功 总结:这样麻烦 18. 群起集群: vim etc/hadoop/slaves 添加如下信息,不允许空格
update etc/hadoop/slaves
关闭之前17开启的进程
hadoop-daemon.sh stop namenode等等
在hadoop201上:start-dfs.sh,启动了所有节点的namenode、datanode、secondarynamenode
在hadoop202上启动ResourceManager:start-yarn.sh
19. 检查是否配置成功
在hadoop201上:
在hadoop202上:
在hadoop203上: