大数据科普系列(四) Hadoop集群搭建

2019年11月05日讲师:朱明虎浏览:1550次

通过前面的学习,我们知道了什么是大数据、分布式以及Hadoop。下面,我们就来亲自动手搭建一个Hadoop系统。集群规划我们计划搭建一个拥有3个节点的Hadoop分布式集群,具体规划如下:其中NameNode、SecondryNameNode和DataNode是HDFS集群中的进程,ResourceManager和NodeManager是YARN集群的进程。NameNode与ResourceManager是主节点,而DataNode与NodeManager是从节点。准备工作首先,我们得准备3台Linux主机,这里是使用VMwareWorkStation创建了3台CentOS6.7的虚拟机,对于虚拟机及Linux不懂的同学请自行问度娘,这里不再科普。接下来,我们要做的事情还有很多:1)配置普通用户sudoer权限(这里创建的普通用户叫做hadoop)a)在root账号下使用命令:vim /etc/sudoers b)找到 root ALL=(ALL) ALL 这一行c)然后在它下面添加一行:hadoop ALL=(ALL) ALL,保存退出2)修改主机名a)在root账号下用命令:vi /etc/sysconfig/network,如果Hadoop用户配置了sudo权限,也可以在 hadoop 登录情况下使用命令:sudo vi /etc/sysconfig/networkb)修改好新名字(hadoop1、hadoop2、hadoop3)后保存退出3)配置静态 IP(注意规划好3个节点各自的ip地址)a)查看网络信息:ifconfigb)编辑eth0网卡信息:sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0修改 BOOTPROTO 为 static添加 IPADDR=指定 IP添加 DNS1=指定域名解析添加 GATEWAY= 你的网关子网掩码 PREFIX=24 删除 HWADDR 和 UUID保存退出重启主机4)配置主机映射修改配置文件:sudo vi /etc/hosts,3台都要修改5)关闭防火墙查看防火墙状态:service iptables status关闭防火墙:service iptables stop关闭防火墙开机启动:chkconfig iptables off 6)同步服务器时间(分布式集群节点间时间相差太大的话会导致服务进程起不来)查看时间 date同步时间 ntpdate ntp1.aliyun.com7)配置ssh免密登录在hadoop账户下,输入命令ssh-keygen,连按3次回车,在/home/hadoop/.ssh 目录下就生成了一对密钥在hadoop1的hadoop用户家目录使用ssh-copy-id hadoop2,这条指令的意思是复制当前主机ssh公钥到hadoop2的 .ssh/authorized_keys文件里,即建立hadoop1到hadoop2的免密登录在hadoop2、hadoop3分别使用ssh-copy-id hadoop2将自己公钥复制到 hadoop2的authorized_keys文件里将hadoop2的authorized_keys发送给hadoop1、hadoop3 scp ~/.ssh/authorized_keys hadoop1:~/.ssh 注意,首次访问任然会要求输入账号和密码。8)安装JDK(Hadoop是用Java语言写的,需要Java运行环境,3台虚拟机都要安装)切换到root账号上传Java安装包如:jdk-8u181-linux-x64.tar.gz ,解压到指定目录下,比如:tar -zxvf jdk-8u181-linux-x64.tar.gz -C /usr/local 配置环境变量vi /etc/profile 在最后加入两行: export JAVA_HOME=/usr/local/jdk1.8.0_181 export PATH=$PATH:$JAVA_HOME/bin使修改的环境变量生效 :source /etc/profile 检测是否安装成功,输入命令:java –version自此,准备工作就完成了。集群搭建1)获取安装包并解压到指定目录:下载传送门2)解压到指定目录tar -zxvf hadoop-2.7.5.tar.gz -C ~/apps/注意:-C 的意思是指定解压路径,目标路径不存在则需要先创建:mkdir ~/apps3)修改配置文件hadoop的配置文件位于$HADOOP_HOME/etc/hadoop/文件夹中,需要修改的配置共有6个:hadoop-env.shvim $HADOOP_HOME/etc/hadoop/hadoop-env.sh#The java implementation to use.# 找到这一行,改为自己的jdk路径export JAVA_HOME=/usr/local/jdk1.8.0_181core-site.xmlvim $HADOOP_HOME/etc/hadoop/core-site.xml在中加入以下代码<!-- 指定 hdfs 的 namenode --><property><name>fs.defaultFS</name><value>hdfs://hadoop1:9000</value></property><!-- 指定hadoop工作目录 --><property><name>hadoop.tmp.dir</name><value>/home/hadoop/data/hadoopdata/</value></property>hdfs-site.xmlvim $HADOOP_HOME/etc/hadoop/hdfs-site.xml在中加入以下代码<!-- 指定 hdfs 的数据保存目录 --><property><name>dfs.namenode.name.dir</name><value>/home/hadoop/data/hadoopdata/name</value></property><property><name>dfs.datanode.data.dir</name><value>/home/hadoop/data/hadoopdata/data</value></property><!-- 指定 hdfs 的 备份副本数 默认是3 --><property><name>dfs.replication</name><value>3</value></property><!-- 指定 hdfs 的 seconarynamenode --><property><name>dfs.secondary.http.address</name><value>hadoop2:50090</value></property>mapred-site.xml复制mapred-site.xml.template文件,并命名为mapred-site.xmlcp $HADOOP_HOME/etc/hadoop/mapred-site.xml.template mapred-site.xmlvim $HADOOP_HOME/etc/hadoop/mapred-site.xml在中加入以下代码<!-- 指定 mapreduce 的运行模式 默认是local --><property><name>mapreduce.framework.name</name><value>yarn</value></property>yarn-site.xmlvim $HADOOP_HOME/etc/hadoop/yarn-site.xml在中加入以下代码<!-- 指定 yarn 的主节点 --><property><name>yarn.resourcemanager.hostname</name><value>hadoop3</value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property>slaves,指定从节点有哪些vim $HADOOP_HOME/etc/hadoop/slaveshadoop1hadoop2hadoop34)配置环境变量a)vim ~/.bashrc,在最后面加入以下语句:export HADOOP_HOME=/home/hadoop/apps/hadoop-2.7.5export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbinb)source ~/.bashrc5)将安装包和环境变量文件分发至另外2个节点,如scp –r ~/apps hadoop2:~/scp ~/.bashrc hadoop2:~/ 别忘了, source 一下环境变量文件6)初始化HDFS系统在 HDFS 主节点上执行命令 hdfs namenode –format 进行初始化7)启动集群启动HDFSstart-dfs.sh (在集群任意节点执行 )启动YARNstart-yarn.sh(只能在YARN的主节点启动,否则ResourceManager进程无法启动 )8)验证集群是否安装成功a)使用 jps 指令查看进程:查看规划的守护进程是否成功启动b)WebUIhttp://192.168.25.101:50070/http://192.168.25.103:8088/c)上传一个文件到HDFS:hadoop fs -put xxx /(前面 xxx 代表要上传的文件在本地的路径,/ 表示上传到 hdfs 的路径)d)执行一个MapReduce任务,运行hadoop自带求PI demo程序并观察执行过程:hadoop jar ~/apps/hadoop-2.7.5/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.5.jar pi 5 5 好了,至此,相信大家已经成功搭建了分布式的hadoop集群,我们下期再会!
分享 1

您已经赞过了!