虚拟机Linux环境安装配置
首先安装好虚拟机环境,这是我的安装环境
环境安装好后,修改虚拟机的主机名,vi /etc/hosts,在原来的信息后面添加—ip地址 主机名
192.169.202.110 RedHat110
还有关闭防火墙
systemctl stop firewalld.service 关闭防火墙,重启后又开启
systemctl disable firewalld.service 禁用防火墙
systemctl status firewalld.service 查看防火墙状态
上传安装JDK和Hadoop
使用ftp上传工具例如winscp,FileZilla把JDK和Hadoop2的安装介质上传到虚拟机上,然后用远程连接工具进入虚拟机的终端,查看下我上传的文件
使用以下命令解压压缩包
tar -zxvf 压缩包 -C 解压目录
配置JDK和Hadoop的环境变量,配置环境变量有两种一种系统级(/etc/profile)的一种用户级(~/.bash_profile),我这边是用root用户操作系统的所以我修改的是/root/.bash_profile文件,使用vi命令打开文件,在文件中添加以下内容,相应目录用自己的解压目录
#JDK配置
JAVA_HOME=/root/directory/jdk1.8.0_144
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
#hadoop配置
HADOOP_HOME=/root/directory/hadoop-2.7.3
export HADOOP_HOME
#bin下为操作命令如hdfs,sbin下为集群命令如启动、停止
PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export PATH
添加完后保存退出,并使用下列命令使环境变量立即生效可以使用
source /root/.bash_profile
如果出现不小心在环境变量中写错了一个东西导致原来的PATH损坏,以至于VI命令都不能用的情况,可以使用/bin/vi 命令来打开你的配置文件修改。
Hadoop启动配置
环境变量配置好后接下来配置Hadoop的安装配置,首先Hadoop有三种安装模式,单机模式standalone,伪分布模式,全分布模式。
单机模式:是Hadoop的默认模式即什么配置都没有,解压后直接启动既可以,单机模式没有HDFS功能,只有MapReduce的功能,操作的数据为本地数据
伪分布模式:只需要一台机子,DataNode和NameNode装在一台机子上。能使用Hadoop的所有操作只有一个数据节点,适合学习时使用。
全分布模式:模仿正式的分布式环境,配置多台数据节点,可以在本地搭建一套,做测试的时候使用。
配置其实很简单只要在相应的文件写入相应的内容即可完成配置,以如下这种形式将配置写入文件,配置文件在Hadoop安装目录的etc文件夹下
- hadoop-env.sh 修改JAVA_HOME的值
- dfs.replication 配置数据块的冗余度,伪分布是1,全分布小于等于数据节点个数,且一般不要超过三个
- dfs.permissions 是否开启HDFS的权限检查,做练习时关闭掉方便操作
- fs.defalutFS 配置NameNode地址,
- hadoop.tml.dir 配置数据在Linux上保存的位置,默认是/tmp但这个目录每次重启后会删掉数据,自己新建一个存放目录
- mapreduce.framework.name MR运行的框架 hadoop2以后可以使用yarn
- yarn.resouremanager.hostname yarn的主节点,本机的IP地址
- yarn.nodemanager.aux-services NodeManager运行MR程序方式
- slaves中配置的DataNode的地址, 即数据节点的主机名
*需注意 mapred-site.xml文件在配置文件夹下是没有的需要把 mapred-site.xml.template文件拷贝或重命名为 mapred-site.xml
启动并查看Hadoop
这里为了方便练习,我只安装了伪分布模式
- hdfs namenode -format初始化HDFS,如果初始化出现错误,基本为配置的问题,可好好检查一下配置信息。
- start-all.sh命令启动hadoop,这时因为没有配置免密登录,它会让你输入多次密码
- 全部启动后用JPS命令查看一下启动的进程,也可用浏览器查看下HDFS和MapReduce的状态,访问方式分别为HDFS:http://namenode地址:50070/ MapReduce:http://namenode地址:8088/
配置SSH免密登录
为了方便后续使用,这边要配置免密码登录,配置步骤如下:
- 用ssh-keygen -t rsa 产生一个秘钥对,会看到在~/.ssh下产生了两个文件id_rsa(私钥) id_rsa_put(公钥)
- 把公钥发送给你要登录的服务端:ssh-copy-id -i ~/.ssh/id_rsa.pub 用户名@主机名
接下来启动hadoop就不用一遍遍输入密码了