目标:
只用一台机器来构建Hadoop环境。
预计完成时间:2小时。
内容:
1. 设置SSH无密码登录;
2.下载&安装Hadoop 2.5.0;
3.Hadoop配置文件的配置;
4.创建HDFS目录并格式化;
5.启动&验证
前置条件:
1.已安装VirtualBox虚拟机,本案例VirtualBox版本是5.1.30;
2.已安装CentOS 7.4系统,本案例是CentOS 7.4 的minimal安装;
3.已安装JAVA JDK 1.8,因为Hadoop是以Java开发的,所以必须安装Java环境;
使用echo $JAVA_HOME来查看JAVA安装在哪个目录。
以上三部分将会在另一篇章详细介绍安装的过程。
执行步骤:
Step 1. 设置SSH无密码登录:
Hadoop是由多台服务器组成,多台服务器之间的通信系统会要求输入密码,为了不需手动输入密码,我们使用SSH设置无秘登录。
1.1安装SSH: 执行脚本‘yum install ssh’
1.2 安装rsync:执行脚本‘yum install rsync’
1.3 生成SSH Key:执行脚本‘ssh-keygen -t dsa -P ' ' -f ~/.ssh/id_dsa’
1.4 查看秘钥:ll ~/.ssh
1.5 将生成的秘钥放到许可文件中,为了能最终无密码登录本机,我们必须将产生的公钥加入到许可文件中。执行脚本:cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
Step 2:下载&安装Hadoop 2.5.0
2.1 确定下载的URL地址:http://archive.apache.org/dist/hadoop/common/hadoop-2.5.0/hadoop-2.5.0.tar.gz
一般在下面这两个地址下载:
http://archive.apache.org/dist/
http://archive.cloudera.com/cdh5/
2.2 下载,有两种方式:
第一种,在centos环境下直接执行下载命令:Wget http://archive.apache.org/dist/hadoop/common/hadoop-2.5.0/hadoop-2.5.0.tar.gz 。但是这种方式下载速度特别慢。
第二种,使用迅雷下载,然后使用filezilla上传到centos环境上。
2.3 解压缩hadoop 2.5.0,执行脚本:tar -zxf /root/hadoop-2.5.0.tar.gz -C /usr/local
2.4 瘦身,把一些不需要的文件删除掉,我的256G的SSD不够用啊。
首先到share目录下,,删除掉doc目录下所有文件:
cd /usr/local/hadoop-2.5.0/share
rm -rf ./doc/
然后删除全部在windows下运行的cmd文件:
cd /usr/local/hadoop-2.5.0/etc/hadoop
rm -rf ./*.cmd
Step3:Hadoop配置文件的配置:
需配置编辑一下文件:hadoop-env.sh、core-site.xml、yarn-site.xml、mapred-site.xml、hdfs-site.xml。
注:为了提高文件的编辑效率,这里我使用Notepad++的插件NppFTP来连接到CentOS上的文件直接进行修改,设置见下图,插件安装请自行百度。
3.1编辑hadoop-env.sh,文件路径/usr/local/hadoop-2.5.0/etc/hadoop
3.2 编辑core-site.xml,文件路径/usr/local/hadoop-2.5.0/etc/hadoop
3.3 编辑yarn-site.xml,文件路径/usr/local/hadoop-2.5.0/etc/hadoop
3.4 编辑mapred-site.xml,用于设置监控Map和Reduce程序的JobTracker任务的分配和运行情况
复制模板文件:执行下面脚本:cp /usr/local/hadoop-2.5.0/etc/hadoop/mapred-site.xml.template /usr/local/hadoop-2.5.0/etc/hadoop/mapred-site.xml
编辑mapred-site.xml,增加如下内容:
3.5 设置hdfs-site.xml,用于设置HDFS分布式文件系统
Step4.创建HDFS目录并格式化;
4.1 创建上面hdfs-site.xml配置文件中所需要的目录:
mkdir -p /usr/local/hadoop-2.5.0/hadoop_data/hdfs/namenode
mkdir -p /usr/local/hadoop-2.5.0/hadoop_data/hdfs/datanode
4.2 设置hadoop的环境变量
vi /etc/profile,进行环境变量配置,在文件最下面增加内容如下:
HADOOP_HOME=/usr/local/hadoop-2.5.0/
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
见下图:
vi ~/.bashrc ,进行环境变量配置,在文件最下面增加内容如下:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64/jre
export HADOOP_HOME=/usr/local/hadoop-2.5.0/
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH
保存完之后,执行source ~/.bashrc ,让修改生效。
4.3 将HDFS进行格式化,格式化namenode:
cd /usr/local/hadoop-2.5.0/bin
hadoop namenode -format
Step 5.启动 & 验证
5.1 首先需要关闭firewall:
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
5.2 启动
start-all.sh
5.3验证结果
用浏览器访问:http://192.168.56.101(你的主机名或者IP):8088
因为我在centos和windows的hosts分别设置了主机名映射,所以可以通过主机名访问,如果你们没有设置主机名,直接使用IP访问。
到此单机版的配置就完成啦。