CentOS 7搭建hadoop环境【详细+截图】
CentOS 7搭建hadoop环境寻找网上的博客教程,折腾了许久,出一篇自己成功搭建hadoop环境的文章,用来记录自己的探索,同时为大家伙少走弯路提供捷径一、在虚拟机中安装CentOS 7并克隆两台机子至此机器准备完成二、查看ip地址请查看:CentOS7 入赘虚拟机后,如何查看 ip 地址?三、修改静态ip地址在VM中菜单栏里,编辑->虚拟网络编辑器(用于查看子网ip以及子网掩码)进入
CentOS 7搭建hadoop环境
寻找网上的博客教程,折腾了许久,出一篇自己成功搭建hadoop环境的文章,用来记录自己的探索,同时为大家伙少走弯路提供捷径
一、在虚拟机中安装CentOS 7并克隆两台机子
至此机器准备完成
二、查看ip地址
请查看:CentOS7 入赘虚拟机后,如何查看 ip 地址?
三、修改静态ip地址
在VM中菜单栏里,编辑->虚拟网络编辑器(用于查看子网ip以及子网掩码)
进入虚拟机,输入命令
cd /etc/sysconfig/network-scripts
编辑网络配置
vi ifcfg-ens33
在VM虚拟机选项菜单栏,中找到编辑->虚拟网络编辑器,按下图操作
按esc键,输入:wq
,保存退出
记住:三台都需要设置
设置完成了之后可以相互ping一下ip
ping有什么作用? 可以验证两台机子之间是否可以通信
如下图所示:
我用第一台机子ping克隆的一台机子(192.168.112.137)
出现如下图所示就代表可以通信
如果不成功则会出现以下情形:
四、修改主机名
为什么要修改主机名,主机名可以代替ip地址,在我们进行计算机之间的通信的时候可以直接使用主机名,而不用去写ip
为每台机子设置主机名:hostnamectl set-hostname 你想设置的主机名称
在原来的机子上面修改配置文件:vi /etc/hosts
为每台机子都这样设置:
使用scp命令发送配置文件hosts到对应的机子上面:
scp /etc/hosts 目的机用户名@目的机名称:/etc/hosts
例如我的机子就该这样:
scp /etc/hosts root@chone1:/etc/hosts
对克隆的其他计算机都要发送hosts文件
完成之后,那么可以ping 计算机名称了
例如:
成功!
记住三台机子都互相测试一下哟
五、装java环境
有两种方式:自己从官网下载jdk,传到linux计算机,在进行解压安装等
那么我采用直接使用linux的yum命令安装,因为方便、快捷、省事儿
linux用yum命令下东西的时候速度非常慢,就是因为linux中centos7是默认国外源的,所以我们需要换成国内的源,这里推荐使用阿里源
以下是更换yum成阿里源的操作步骤:
-
第一次使用yum,输入命令:
yum list
,如果出现此界面,那么就要配置下国内的dns
配置dns如下,在/etc/resolv.conf中添加nameserver 114.114.114.114
按下esc , :wq
保存退出
直到输入yum list
出现类似于这样一个列表,就可以进行下面的操作啦
- 看看自己有没有安装wget
rpm -qa|grep "wget"
-
如果没有安装,现场安装:
yum -y install wget
-
备份镜像源(放置更换过程中出错):
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
-
从网络上下载yum源配置文件:
sudo wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
-
清理后生成缓存
yum clean all
yum makecache
到此成功更换yum的源为阿里云
从源中搜索可安装jdk
yum search jdk
安装jdk1.8.0
yum install java-1.8.0-openjdk.x86_64
当然也可以安装其他版本的,1.8比较稳定
安装好了之后环境变量也自动配置好了
可以使用java -version
来测试
到此成功安装jdk
六、配置SSH免密码登录
有什么作用?当用一台计算机用户登录另一台计算机时,每次登录都必须输入密码,在hadoop中,需要成千上万次登录,那么如果每次都需要输入密码的话,速度太慢了,而且折磨人
-
进入.ssh目录:
cd ~/.ssh
-
生成ssh秘钥:
ssh-keygen -t rsa
一直回车,只需要第一台计算机这样生成秘钥即可 -
到此生成了两个文件:
id_rsa和id_rsa.pub
在第一台计算机上执行:
cp id_rsa.pub authorized_keys
生成副本修改文件权限:
chmod 644 authorized_keys
-
测试一下本机无密码登录
sudo service sshd restart ssh master
以下情况则代表登录成功:
-
测试第一台计算机与其他计算机无密码登录
向其他计算机发送秘钥:
scp /root/.ssh/authorized_keys 目的机用户名@目的机名称:/root/.ssh
- 测试能否无密码登录其他计算机
ok,到此成功配置SSH免密码登录
七、安装hadoop
手动下载hadoop官方压缩包:http://hadoop.apache.org/releases.html
挑选一个版本,下载二进制文件
这儿我下载的2.9.2版本
使用一个Windows客户端软件,点击下载:WinSCP(可将Windows上的文件传输到linux)
上传后解压,将解压文件夹移动到/opt/hadoop
tar -zxvf hadoop-2.9.2.tar.gz
mv hadoop-2.9.2 /opt/hadoop
进入/opt/hadoop/hadoop2.9.2/etc/hadoop/目录
cd /opt/hadoop/hadoop2.7.4/etc/hadoop/
查看该目录下的文件
编辑hadoop-env.sh和yarn-env.sh
将JAVA_HOME配置好,如何查看yum命令安装的jdk路径?
配置一下hadoop环境变量
vi /etc/profile
在末尾添加
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
使配置文件生效
source /etc/profile
八、配置文件
进入到/opt/hadoop/hadoop2.9.4/etc/hadoop/目录
cd /opt/hadoop/hadoop2.7.4/etc/hadoop/
查看目录下所有文件:
注:mapred-site.xml原本是不存在的,由mapred-site.xml.template复制而来
往文件的标签内存放这些属性:
core-site.xml
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/tmp</value>
</property>
效果如下:
hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/opt/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/opt/hadoop/dfs/data</value>
</property>
mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>Master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>Master:19888</value>
</property>
yarn-site.xml
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
编辑slaves文件,在里面添加克隆计算机的名字
例如:
利用scp将配置好的hadoop发送到各个计算机
scp -r /opt/hadoop 目的机用户名@目的机名称:/opt/hadoop
若发现权限不够,可以先发送到计算机的其他位置,再移动到/opt/hadoop文件夹下
九、集群群起
在第一台计算机上初始化(如果已经初始化一次,那么以后就尽量不要初始化)
bin/hdfs namenode -format
关闭防火墙:
systemctl stop firewalld.service
群起:
sbin/start-all.sh
此时可用jps命令查看是否已经启动
十、检验
在Windows宿主机上,打开浏览器,输入
http://你的第一台计算机名或者ip:8088
比如我的可以输入:
http://192.168.112.136:8088
或者
http://master:8088
出现如下界面:
如果许久没有出现这个界面,检查一下第一台计算机的防火墙是不是没关
service firewalld status
在地址栏输入时,将端口号改成50070,出现:
hadoop环境搭建成功!
总结
- 准备虚拟机(至少三台)
- 查看ip
- 修改为静态ip
- 修改主机名
- 配置java环境
- 配置ssh免密登录
- 安装hadoop
- 配置hadoop环境变量
- 配置hadoop文件
- 群起
- 检验
更多推荐
所有评论(0)