低配置搭建hadoop3.0集群

机器一台6年前的旧笔记本,舍不得扔,让它发挥余热^_^

低配置搭建hadoop3.0集群_第1张图片


软件安装

在ubuntu software里安装virtual box


在virtual box安装虚拟机

由于笔记本内存较小,所以安装非桌面版本的linux,我安装的是centos 7,有兴趣的同学可以试试ubuntu的server版本。如果你的机器配置较好,就适当调大虚拟内存和硬盘,最好每台虚拟机2G内存以上。


创建虚拟机

低配置搭建hadoop3.0集群_第2张图片

选择虚拟硬盘


硬盘大小20G

低配置搭建hadoop3.0集群_第3张图片


挂载centos7的iso安装文件

低配置搭建hadoop3.0集群_第4张图片


网络选择桥接,关于virtual box的四种网络连接方式,请自行google、百度

低配置搭建hadoop3.0集群_第5张图片


之后点击start,就进入centos安装了,注意三台机器都创建一个相同的用户名,这里为hugotan,安装完毕,重启系统


网络设置

低配置搭建hadoop3.0集群_第6张图片

低配置搭建hadoop3.0集群_第7张图片

esc 冒号,wq保存,重启网络service network restart,如果是ubuntu系统,用gedit打开/etc/network/interfaces文件进行设置再重启网卡,测试是否可以上网及ping通主机


ps:如果主机不能解析域名但ping的通ip,是dns的问题

sudo vi /etc/resolv.conf 

在末尾添加nameserver 8.8.8.8


配置时钟同步

由于hadoop集群对时间同步要求较高,需配置时钟同步,在从机器调整时区cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime,同步标准时间sudo ntpdate us.pool.ntp.org,如果报错the NTP socket is existing 执行service ntpd stop,如果没装ntpdate,yum install -y ntpdate(如果安装centos时已选好时区和时间,此步忽略)。


关闭防火墙

由于hadoop需要很多监听端口,在防火墙配置太麻烦,直接先关闭防火墙

systemctl stop firewalld.service #停止firewall

systemctl disable firewalld.service #禁止firewall开机启动


在ubuntu里的命令为sudo ufw disable


安装jdk

下载rpm安装包,执行

rpm -ivh jdk-8u161-linux-x64.rpm

sudo vi /etc/profile

在末尾添加

JAVA_HOME=/usr/java/jdk1.8.0_161

CLASSPATH=%JAVA_HOME%/lib:%JAVA_HOME%/jre/lib

PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin

export PATH CLASSPATH JAVA_HOME

保存退出,重新载入source /etc/profile

检查是否安装成功java -version

到此,把slave1节点机器复制一份,名为slave2,修改下IP地址和机器名,并修改hosts映射。


ps:

重命名机器名命令:vi /etc/hostname

修改hosts映射:vi /etc/hosts


集群间配置ssh免密登录

在三台机器的hugotan用户下都执行ssh-keygen -t rsa来生成rsa秘钥。


按顺序做如下操作:

如在master上将公钥放到authorized_keys里sudo cat id_rsa.pub >> authorized_keys,再把公钥传给slave1的~/.ssh目录下sudo scp authorized_keys hugotan@slave1:~/.ssh,然后把slave1 的公钥追加到authorized_keys,再传到slave2的~/.ssh目录下,又把slave2 的公钥追加到authorized_keys,最后返回每台机器复制一份authorized_keys。目的为了保证都加入了每台机器的公钥,而不落下。如果再更多台机器以此类推。


记得将authorized_key授权,执行chmod 600 authorized_key,不然会出现添加两台机器时可以互相访问,到第三台就有的可以访问有的不能访问。


期间碰到问题,在服务器添加完公钥后报错sign_and_send_pubkey: signing failed: agent refused operation这个时候只要执行如下语句就可以了

eval "$(ssh-agent -s)"

ssh-add


ps:注意查看系统安全日志命令:

sudo tail /var/log/secure -n 20


安装hadoop


从官网下载最新的版本,解压安装到当前用户的工作目录中

tar -xzvf hadoop-3.0.0.tar.gz -C ~/


为运行hadoop创建工作目录,每个节点都创建相同的目录:

mkdir ~/dfs

mkdir ~/dfs/tmp

mkdir ~/dfs/data

mkdir ~/dfs/name

这些文件目录,等一下在配置文件里就知道它们的用途了。


设置hadoop环境变量

gedit ~/.bashrc 或这vi ~/.bashrc

在末尾添加如下内容以下内容:

export JAVA_HOME=/usr/java/jdk1.8.0_161

export HADOOP_HOME=/home/hugotan/hadoop-3.0.0
export PATH=$PATH:$HADOOP_HOME/bin


hadoop配置

进入hadoop-3.0.0,添加从节点信息

vi etc/hadoop/workers

在workers文件添加

slave1

slave2


core-site.xml添加配置


    fs.defaultFS
    hdfs://master:9000


    io.file.buffer.size
    130172


    hadoop.tmp.dir
    /home/hugotan/dfs/tmp


hdfs-site.xml添加配置



    dfs.replication
    2


    dfs.namenode.name.dir
    /home/hugotan/dfs/name


    dfs.namenode.data.dir
    /home/hugotan/dfs/data


mapred-site.xml添加配置项


    mapreduce.framework.name
    yarn

    mapreduce.admin.user.env

 HADOOP_MAPRED_HOME=$HADOOP_COMMON_HOME

    yarn.app.mapreduce.am.env

 HADOOP_MAPRED_HOME=$HADOOP_COMMON_HOME


yarn-site.xml添加配置项


    yarn.resourcemanager.hostname
    master


    yarn.nodemanager.aux-services
    mapreduce_shuffle



同步节点

接下来将master节点上配置好的Hadoop文档,同步到其他节点

scp -r /home/hugotan/hadoop-3.0.0/ hugotan@slave1:/home/hugotan/
scp -r /home/hugotan/hadoop-3.0.0/ hugotan@slave2:/home/hugotan/


启动集群

格式化文件系统,在主节点上执行命令:hdfs namenode -format进入sbin文件夹,启动hdfs执行:./start-dfs.sh ,启动yarn执行./start-yarn.sh。


在浏览器输入地址http://master:9870、http://master:8088,会出现如下界面。


低配置搭建hadoop3.0集群_第8张图片


低配置搭建hadoop3.0集群_第9张图片


要查看mapreduce的jobhistory,在~/hadoop-3.0.0/bin$目录,输入mapred historyserver,在浏览器输入http://master:19888可见如下页面:

低配置搭建hadoop3.0集群_第10张图片


终于,基本的集群环境算是搭建完成了,后续跑一跑demo来感受下hadoop吧!


ps:由于virtualbox没安装增强功能,命令窗口显示太小,可以在主机使用ssh工具登录来操作。

欢迎关注微信公众号:大数据学习实践


参考资料:

《大数据技术基础--基于Hadoop与Spark》罗富强 李瑶 陈虹君 编著

http://hadoop.apache.org/

https://www.jianshu.com/p/1d99be0d2544

……

你可能感兴趣的:(大数据)