天道不一定酬所有勤
但是,天道只酬勤

大数据集群搭建

环境:centos 7.9 ,java1.8

  1. zookeeper集群
  2. hadoop集群
  3. spark集群

1.zookeeper集群

2.hadoop集群

1.伪分布式安装

1.关闭防火墙

systemctl stop firewalld.service (参考:Linux(CentOS7) 关闭防火墙、放开端口

2.配置主机名。需要注意的是Hadoop的集群中的主机名不能有_。如果存在_会导致Hadoop集群无法找到这群主机,从而无法启动!

(1.编辑network文件:vim /etc/sysconfig/network

(2.将HOSTNAME属性改为指定的主机名,例如:HOSTNAME=hadoop01

建议再补上:Linux修改主机名

(3.让network文件重新生效:source /etc/sysconfig/network

3.配置hosts文件,将主机名和ip地址进行映射

  • 编辑hosts文件:vim /etc/hosts
  • 将主机名和ip地址对应,例如:192.168.234.190 hadoop01

4.配置ssh进行免密互通

生成自己的公钥和私钥,生成的公私钥将自动存放在/root/.ssh目录下:ssh-keygen

把生成的公钥拷贝到远程机器上,格式为:ssh-copy-id [user]@host,例如:ssh-copy-id root@hadoop01

5.重启Linux让主机名的修改生效:reboot

6.安装JDK

7.上传或者下载Hadoop安装包到Linux中

8.解压安装包:tar -xvf hadoop-2.7.1_64bit.tar.gz

9.进入Hadoop的安装目录的子目录etc/hadoop,配置Hadoop:cd hadoop2.7.1/etc/hadoop

10.配置hadoop-env.sh

  1. 编辑hadoop-env.sh:vim hadoop-env.sh
  2. 修改JAVA_HOME的路径,修改成具体的路径。例如:export JAVA_HOME=/home/software/jdk1.8
  3. 修改HADOOP_CONF_DIR的路径,修改为具体的路径,例如:export HADOOP_CONF_DIR=/home/software/hadoop-2.7.1/etc/hadoop
  4. 保存退出文件
  5. 重新加载生效:source hadoop-env.sh

11.配置 core-site.xml

  1. 编辑core-site.xml:vim core-site.xml
  2. 添加如下内容:
<property>
    <!-- 指定HDFS中的主节点 - namenode -->
    <name>fs.defaultFS</name>               
    <value>hdfs://hadoop01:9000</value>
</property>
<property>
    <!-- 执行Hadoop运行时的数据存放目录 -->
    <name>hadoop.tmp.dir</name>
    <value>/home/software/hadoop-2.7.1/tmp</value>
</property>

保存退出。

12.配置 hdfs-site.xml

  • 编辑hdfs-site.xml:vim hdfs-site.xml
  • 添加如下配置:

<property>
    <!– 设置HDFS中的副本数量 –>
    <!– 在伪分布式下,值设置为1 –>
    <name>dfs.replication</name>
    <value>1</value>
</property>

保存退出。

13.配置 mapred-site.xml

  • 将mapred-site.xml.template复制为mapred-site.xml:cp mapred-site.xml.template mapred-site.xml
  • 编辑mapred-site.xml:vim mapred-site.xml
  • 添加如下配置:

<property>
    <!– 指定将MapReduce在Yarn上运行  –>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>

保存退出。

14.配置 yarn-site.xml

  1. 编辑yarn-site.xml:vim yarn-site.xml
  2. 添加如下内容:

!– 指定Yarn的主节点 – resourcemanager –>
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>hadoop01</value>
</property>
<!– NodeManager的数据获取方式 –>
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>

保存退出

15.配置slaves

  • 编辑slaves:vim slaves
  • 添加从节点信息,例如:hadoop01
  • 保存退出

16.配置hadoop的环境变量

  • 编辑profile文件:vim /etc/profile
  • 添加Hadoop的环境变量,例如:

export HADOOP_HOME=/home/software/hadoop-2.7.1
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

保存退出

重新生效:source /etc/profile

17.格式化namenode:hadoop namenode -format

18.启动hadoop:start-all.sh

二、注意事项

  1. 如果Hadoop的配置没有生效,那么需要重启Linux
  2. 在格式化的时候,会有这样的输出:Storage directory /tmp/hadoop-root/dfs/name has been successfully formatted。如果出现这句话,说明格式化成功
  3. Hadoop如果启动成功,会出现5个进程:Namenode,Datanode,Secondarynamenode,ResourceManager,NodeManager

4.Hadoop启动成功后,可以通过浏览器访问HDFS的页面,访问地址为:IP地址:50070

5.Hadoop启动成功后,可以通过浏览器访问Yarn的页面,访问地址为:http://IP地址:8088

 常见问题

  1. 执行Hadoop指令,比如格式化:hadoop namenode -format 出现:command找不到错误

解决方案:检查:/etc/profile的Hadoop配置

2.少HFDS相关进程,比如少namenode,datanode

解决方案:可以去Hadoop 安装目录下的logs目录,查看对应进程的启动日志文件。

方式一:①先停止HDFS相关的所有的进程(stop-all.sh 或 kill -9)②再启动HDFS(start-dfs.sh)

方式二:①先停止HDFS相关的所有的进程 ②删除元数据目录 ③重新格式化:hadoop namenode -format④启动Hadoop:start-all.sh

未经允许不得转载:java技术小栈 » 大数据集群搭建
分享到

评论 抢沙发