分享

Hadoop集群搭建

 昵称70680357 2020-07-02

一、搭建前准备

1、为各个主机设置主机名

2、为各个主机配置SSH免密登录

3、为各个主机安装JDK

4、假设有三台主机:master(主节点)、slave1(从节点)、slave2(从节点)。

二、安装hadoop集群

1、注意

Hadoop如果是2.7.X,对应的jdk选择1.8或者1.7都可以, 推荐使用1.8,如果Hadoop是2.6.X,对应的jdk就选择1.7

2、将hadoop安装包拷到主节点主机的某个文件夹下并解压

[root@cmaster hadoop]# tar -zxvf hadoop-2.7.3.tar.gz

3、在Hadoop目录下,创建 tmp,logs,hdfs,hdfs/data(存 取的文件),hdfs/name(存放子节点名称) 文件夹

[root@cmaster hadoop-2.7.3]# mkdir tmp

[root@cmaster hadoop-2.7.3]# mkdir logs

[root@cmaster hadoop-2.7.3]# mkdir -p hdfs/data

[root@cmaster hadoop-2.7.3]# mkdir -p hdfs/name

4、修改hadoop的配置文件

语言 方法
7556 NA3le50Kvb
zZAeZ 8个稳赚的女性创业项目
8601 2007/08/24 22:43:50

(1)hadoop-env.sh

增加:
export JAVA_HOME=/opt/softWare/java/jdk1.8.0_141

(2)yarn-env.sh

增加:
export JAVA_HOME=/opt/softWare/java/jdk1.8.0_141

(3)slaves

#增加从节点
slave1
slave2

(4)core-site.xml

<configuration>
<property>
<name>fs.defaultFS</name>
<!--定义HadoopMaster的URI和端口-->
<value>hdfs://cmaster:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<!--hadoop中其他目录的临时存储目录-->
<value>file:/opt/softWare/hadoop/hadoop-2.7.3/tmp</value>
</property>
<property>
<name>io.file.buffer.size</name>
<!--用作序列化文件处理时读写buffer的大小-->
<value>131702</value>
</property>
<property>
      <name>hadoop.proxyuser.root.groups</name>
      <value>*</value>
  </property>
  <property>
      <name>hadoop.proxyuser.root.hosts</name>
      <value>*</value>
  </property>
</configuration>

(5)hdfs-site.xml

<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<!--namenode节点数据存储目录-->
<value>file:/opt/softWare/hadoop/hadoop-2.7.3/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<!--datanode数据存储目录-->
<value>file:/opt/softWare/hadoop/hadoop-2.7.3/hdfs/data</value>
</property>
<property>
<!--指定DataNode存储block的副本数量,不大于DataNode的个数就行-->
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<!--指定master的http地址-->
<name>dfs.namenode.secondary.http-address</name>
<value>cmaster:50090</value>
</property>
<property>
<!--指定master的https地址-->
<name>dfs.namenode.secondary.https-address</name>
<value>cmaster:50091</value>
</property>
<property>
<!--必须设置为true,否则就不能通过web访问hdfs上的文件信息-->
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
 <property>
    <name>dfs.permissions</name>
    <value>false</value>
  </property>
</configuration>

(6)yarn-site.xml

<configuration>
<property>
<!--NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MapReduce程序-->
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<!--ResourceManager 对ApplicationMaster暴露的访问地址。ApplicationMaster通过该地址向RM申请资源、释放资源等。-->
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<!--ResourceManager 对NodeManager暴露的地址.。NodeManager通过该地址向RM汇报心跳,领取任务等。-->
<name>yarn.resourcemanager.resourcetracker.address</name>
<value>master:8031</value>
</property>
<property>
<!--ResourceManager 对管理员暴露的访问地址。管理员通过该地址向RM发送管理命令等。-->
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property>
<!--用户可通过该地址在浏览器中查看集群各类信息。-->
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
<property>
<!--NodeManager总的可用物理内存。注意,该参数是不可修改的,一旦设置,整个运行过程中不 可动态修改。另外,该参数的默认值是8192MB,因此,这个值通过一 定要配置。不过,Apache已经正在尝试将该参数做成可动态修改的。-->
<name>yarn.nodemanager.resource.memory-mb</name>
<value>4096</value>
</property>
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>

(7)mapred-site.xml

<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>cmaster:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>cmaster:19888</value>
</property>
</configuration>

5、远程将master中/opt/softWare/下的hadoop和java拷贝到所有从节点

scp -r /opt/SoftWare/hadoop root@slave1:/opt/SoftWare
scp -r /opt/SoftWare/hadoop root@slave2:/opt/SoftWare
scp -r /opt/SoftWare/java root@slave1:/opt/SoftWare
scp -r /opt/SoftWare/java root@slave2:/opt/SoftWare

6、配置环境变量并远程将master中的配置文件拷贝到从节点

#hadoop
export HADOOP_HOME=/opt/softWare/hadoop/hadoop-2.7.3/bin
export PATH=$PATH:$HADOOP_HOME
scp -r /etc/profile root@slave1:/etc/ 
scp -r /etc/profile root@slave2:/etc/

在所有从节点执行source  /etc/profile

java -version 检查从节点是否安装成功jdk

7、同步系统时间

安装ntpdate工具 yum ‐y install ntp ntpd
设置与网络时间同步 ntpdate cn.pool.ntp.
系统时间写入硬件时间 hwclock ‐‐systohc

8、关闭防火墙

Centos7
关闭防火墙:systemctl stop firewalld.service
永久关闭防火墙:systemctl disable firewalld.service
查看防火墙状态:systemctl status firewalld.service

Centos6
关闭防火墙:service iptables stop
永久关闭防火墙:chkconfig iptables off
查看防火墙状态:service iptables status

9、格式化

在master主节点进入hadoop/bin,./hdfs namenode -format 进行格式化

10、启动、关闭集群

[root@cmaster ~]# cd /opt/softWare/hadoop/hadoop-2.7.3/sbin/
[root@cmaster sbin]# ./start-all.sh
[root@cmaster sbin]# ./stop-all.sh

11、网页版访问

http://ip:50070

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约