CentOS 7下Hadoop2.7.4伪分布搭建

来源:互联网 发布:网络控制器没有驱动 编辑:程序博客网 时间:2024/06/05 06:13

一、软件准备:

下载hadoop2.7.4版本:https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.7.4/hadoop-2.7.4.tar.gz(国内服务器下载比较快)

将下载好的包进行解压:tar zxvf hadoop-2.7.4.tar.gz (我将hadoop存放在/usr/local/目录下)

校验各节点主机是否安装java环境:java -version如果正常输出版本号说明已安装,如未安装请自行在各节点进行安装,此处省略。。。

我测试机java安装目录为:/usr/java/,将Java以及hadoop配制到环境变量 vim /etc/profile :(具体路径根据各自的安装目录进行配制)

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

export JRE_HOME=/usr/java/jdk1.8.0_144/jre

export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native
export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/native"

export CLASS_PATH=.:${JAVA_HOME}/lib:$CLASS_PATH
export PATH=.:$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

使配制生效 ,命令:source /etc/profile

将修改好的/etc/profile发送到其它各节点,并使之生效;

二、关闭防火墙:

(1) 查看防火墙运行状态,[root@Clouder3 ~]# systemctl status firewalld.service


(2) 关闭防火墙,[root@Clouder3 ~]# systemctl stop firewalld.service


(3) 关闭防火墙开机启动,[root@Clouder3 ~]# systemctl disable firewalld.service


防火墙各节点均需要关闭,分别在各节点执行以上命令;

(4) 配制各主机与IP映射关系(集群中的节点均需配制):

vim /etc/hosts

在该文件中添加如下信息

192.168.1.21    Clouder3
192.168.1.20    Clouder2
192.168.1.19    Clouder1

分别在各节点设置配制映射关系或者将配制好的一个直接远程复制覆盖均可,我使的后者: scp /etc/hosts Clouder2:/etc/   scp /etc/hosts Clouder1:/etc/

三、设置ssh免密码登陆:

  在Clouder3上执行命令: (1)ssh-keygen -t rsa   生成密钥  (一路回车就可以了)
                                        (2)cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
                                       ssh-copy-id -i  Clouder1        //将公钥copy至node2
                                       ssh-copy-id -i  Clouder2        //将公钥copy至node3
四、修改hadoop配制文件:
1、修改hadoop-env.sh , vim hadoop.env.sh  配制JAVA_HOME , (根据自己java安装位置配制):
export JAVA_HOME=/usr/java/jdk1.8.0_144/

2、修改core-site.xml , vim core-site.xml 在configuration中添加如下配制:
<property>
  <name>fs.defaultFS</name>
  <value>hdfs://clouder3:9000</value>
</property>

<property>
  <name>hadoop.tmp.dir</name>
  <value>/usr/local/hadoop2.7.4/tmp</value>
</property>

<property>
  <name>fs.trash.interval</name>
  <value>1440</value>
</property>

3、修改hdfs-site.xml , vim hdfs-site.xml 在configuration中添加如下配制:
<!-- 设置副本 -->
<property>
    <name>dfs.replication</name>
    <value>2</value>
</property>


<property>
    <name>dfs.permissions</name>
    <value>false</value>
</property>

4、修改mapred-site.xml , cp mapred-site.xml.template mapred-site.xml 或mv mapred-site.xml.template mapred-site.xml , vim mapred-site.xml 在configuration中添加如下配制:
<property>
   <name>mapreduce.framework.name</name>
   <value>yarn</value>
</property>

5、修改slaves , vim slaves 添加节点:
Clouder1
Clouder2
Clouder3

6、修改yarn-env.sh,vim yarn-env.sh修改JAVA_HOME:
export JAVA_HOME=/usr/java/jdk1.8.0_144

7、修改yarn-site.xml,vim yarn-site.xml在configuration中添加如下配制:
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
<property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
    </property>
<property>
   <description>The hostname of the RM.</description>
   <name>yarn.resourcemanager.hostname</name>
   <value>192.168.1.21</value>
</property>

五、格式化NameNode,启动集群

将配制完成后的hadoop文件夹分别发送到其它两个节点, scp -r hadoop2.7.4 Clouder2:/usr/local/  ,  scp -r hadoop2.7.4 Clouder1:/usr/local/ 

集群配制完成第一次启动前需要先格式化集群,执行 bin/hdfs namenode -format

注 :为什么要格式化namenode?  格式化是对HDFS这个分布式文件系统中的Datanode进行分块,统计所有分块后的初始元数据,然后存储在Namenode中,格式化后,查看core-site.xml配置文件中hadoop.tmp.dir指定的目录下是否有dfs目录,如果有,说明格式化成功 ;

启动集群:在主节点执行 sbin/start-all.sh

集群启动完成后查看主节点进程:jps

主节点:

5585 SecondaryNameNode
5762 ResourceManager
5859 NodeManager
5429 DataNode
5338 NameNode
6318 Jps

从节点1:jps

3168 NodeManager
3321 Jps
3070 DataNode

从节点2:jps

5801 Jps
4939 DataNode
5052 NodeManager


注意:在hadoop集群搭建过程中要确保修改的 /usr/local/hadoop2.7.4/etc/hadoop/中相关配制文件参数与本机实际配制相对应(比如slaves中的主机应当与/etc/hosts文件中的一致),此外namenode只能格式化一次,因为在namenode格式化时会在 /usr/local/hadoop2.7.4/tmp目录中生成当前hdfs的version信息,每次格式化时该version信息都不一致这有可能导致NameNode或DataNode无法启动,如果必需要多次格式化时需要将各节点core-site.xml 中配制生成的数据目录及文件删除(本文中删除文件tmp, 依次在各节点执行 rm -rf  /usr/local/hadoop2.7.4/tmp)  执行格式化时需要加上-force 即:bin/hdfs namenode -format -force 。


六、Hadoop相关UI链接(此处均使用主节点IP):

(1) hdfs文件系统页面:

http://192.168.1.21:50070 

(2) mapreduce job信息页面:

http://192.168.1.21:8088

其它端口在此不列出,可自行查阅。

原创粉丝点击