IT评测·应用市场-qidao123.com技术社区

标题: 【大数据情况搭建步骤】 [打印本页]

作者: 曂沅仴駦    时间: 2025-4-18 21:08
标题: 【大数据情况搭建步骤】
大数据情况搭建步骤

一. 大数据安装包版本

名称版本号jdk1.8.0_131zookeeper3.5.7hadoop2.8.5hive3.1.2sparkspark-3.1.1-bin-hadoop2.7kylinapche-kylin-4.0.1-bin-spark3sqoopsqoop-1.4.7.bin_hadoop_2.6.0Centos8.8 二. 集群设置

服务器命名设置hadoop10116cpu 内存64GBhadoop10216cpu 内存64GBhadoop10316cpu 内存64GB 三. 集群规划

服务器名ZookeeperNameNodeDataNodeResourcenodeNodemanagerhadoop101√√√√√hadoop102√√√√√hadoop103√√√ 四. liunx 设置

1. 主机名设置

修改hostname

  1.    1)通过命令 hostname查看主机名
  2.    2)通过vim /etc/hostname来修改
复制代码
IP映射- 修改hosts

  1.    修改centos的hosts文件,命令:vim /etc/hosts
  2.    解释: 因为是云服务器,会有两个ip,一个是内网IP,一个是外网IP。
  3.    重启生效
复制代码
2. 防火墙设置

  1.    关闭服务器的防火墙
  2.    1) 查看防火墙状态:firewall-cmd --state
  3.    2) 如果防火墙开启,请关闭它:systemctl stop firewalld.service
  4.    3) 设置开机时关闭防火墙:systemctl disable firewalld.service
  5.    4) 再次查看防火墙状态:firewall-cmd --state,确保防已火墙关闭。
复制代码
3. 创建普通用户

创建新用户

sudo useradd newuser
设置暗码

sudo passwd newuser
大概将用户添加到wheel组(适用于使用su和sudo的系统)

sudo usermod -aG wheel newuser
4. 免密登录

  1. 切换用户 su user1
  2.     1)生成公钥和私钥:ssh-keygen -t rsa ,连续按3次Enter键,会在当前用户home目录下生成隐藏目录.ssh,里面包含私钥id_rsa和公钥id_rsa.pub
  3.    2) 将公钥复制到要免密登录的服务器上:ssh-copy-id 服务器名,会让你确认是否要连接,输入yes
  4.    3)验证免密效果,分别测试免密效果:ssh 想要登录的主机名
复制代码
5. 创建安装目录和软件包存放目录

留意:均使用user1用户来操作
1)创建文件夹 先创建两个文件夹: /opt/module 和/opt/softs,我所有软件都安装在/opt/module下,软件安装包均放在/opt/softs下,命令为:
  1.         sudo mkdir /opt/module
  2.         sudo mkdir /opt/softs
复制代码
2)修改文件所有者。上一步创建的2个文件夹属于root用户,将其所有者和所属组都改成hadoop:
  1.         sudo chown hadoop:hadoop /opt/module/
  2.         sudo chown hadoop:hadoop /opt/softs
复制代码
5. 分发脚步

编写分发脚本
1)在/home/user1下创建bin目录,,再在bin目录下编写分发步伐脚本:xsync.sh:
  1. cd /home/hadoop
  2. mkdir bin
  3. cd bin
  4. vim xsync.sh
复制代码
脚本内容:
  1. #!/bin/bash
  2. # 获取输入参数的数量,如果没有参数就直接退出
  3. pcount=$#
  4. if((pcount==0)); then
  5.         echo "没有参数";
  6. exit;
  7. fi
  8. #获取文件名称
  9. p1=$1
  10. fname=`basename $p1`
  11.         echo fname=$fname
  12. #获取上级目录到绝对路径
  13. pdir=`cd -P $(dirname $p1); pwd`
  14.         echo pdir=$pdir
  15. #获取当前用户名称
  16. user=`whoami`
  17. #循环,我在hadoop101上安装,所以需要将程序分发到hadoop102~105上
  18. for((host=102; host<106; host++)); do
  19.     echo --------------------- hadoop$host ----------------
  20.     rsync -rvl $pdir/$fname $user@hadoop$host:$pdir
  21. done
复制代码
2)权限修改
刚刚创建的脚本没有不可实行,所以必要修改,将其设定为可实行:chmod +x xsync.sh
3)测试脚本
为了确定脚本是否可以或许运行,先创建个文件来测试(目的主机的父目录必要已经创建,否则无法分发乐成)。在当前家目录下创建文件:vim xsy.txt,内容随便写,我写的是This is a test file!
a) 开始测试:xsync.sh /home/hadoop/xsy.txt,结果如下图
b) 发现hadoop105提示没有rsync,那么必要在hadoop105上安装该模块
五. jdk 安装

我使用的是jkd8
1)起首将jdk压缩文件上传到hadoop101的/opt/softs目录下,之后进入/opt/softs/目录:cd /opt/softs/
2)安装jdk:tar -zxvf jdk-8u291-linux-x64.tar.gz -C /opt/module/表示将jdk安装到/opt/module/
3) 设置系统情况变量:sudo vim /etc/profile,添加如下信息
export JAVA_HOME=/opt/module/jdk1.8.0_291
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:                                             J                            A                            V                                       A                               H                                      O                            M                            E                                  /                         l                         i                         b                         :                              {JAVA_HOME}/lib:                  JAVAH​OME/lib:{JRE_HOME}/lib
export PATH=                                             J                            A                            V                                       A                               H                                      O                            M                            E                                  /                         b                         i                         n                         :                              {JAVA_HOME}/bin:                  JAVAH​OME/binATH
1
2
3
4
4)使得设置的情况变量见效:source /etc/profile
5)将hadoop101安装好的jdk分发到hadoop102~105:xsync.sh /opt/module/jdk1.8.0_291
6)在各台主机上添加jdk系统变量并用source来革新,之后查看java版本,确认安装乐成:java -version

五. Zookeeper 安装

为保证集群高可用,Zookeeper 集群的节点数量最好是奇数,此处我选择了3台服务器。
export ZOOKEEPER_HOME=/opt/module/zookeeper-3.4.14
export PATH=                                   Z                         O                         O                         K                         E                         E                         P                         E                                   R                            H                                  O                         M                         E                         /                         b                         i                         n                         :                              ZOOKEEPER_HOME/bin:                  ZOOKEEPERH​OME/binATH
1
2
4)使得设置的情况变量见效:source /etc/profile
1)进入zookeeper的安装目录下的 conf目录 ,拷贝设置样本并进行修改:
cd /opt/module/zookeeper-3.4.14/conf
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg

server.1 这个1是服务器的标识,可以是恣意有用数字,标识这是第几个服务器节点,这个标识要写到dataDir目录下面myid文件里
2)修改dataDir,增加dataLogDir如下:
dataDir=/opt/module/zookeeper-3.4.14/zookeeper-cluster/data
dataLogDir=/opt/module/zookeeper-3.4.14/zookeeper-cluster/log

cd $ZOOKEEPER_HOME/bin
zkServer.sh start
zkServer.sh status
七. hadoop 安装

修改设置文件(core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml、slaves)
7.1 hadoop安装
1)起首将hadoop压缩文件上传到hadoop101的/opt/softs目录下,之后进入/opt/softs/目录:cd /opt/softs/
2)安装hadoop:tar -zxvf hadoop-2.7.2.tar.gz -C /opt/module/表示将hadoop安装到/opt/module/
3) 设置系统情况变量:sudo vim /etc/profile,添加如下信息
export HADOOP_HOME=/opt/module/hadoop-2.7.2
export PATH=                                   P                         A                         T                         H                         :                              PATH:                  PATH:{HADOOP_HOME}/bin
1
2
4)使得设置的情况变量见效:source /etc/profile
7.2 修改设置
进入 ${HADOOP_HOME}/etc/hadoop 目录下,修改几个设置文件。各个设置文件内容如下:
7.2.1 修改hadoop-env.sh
  1. export JAVA_HOME=/usr/java/jdk1.8.0_351-amd64
复制代码
7.2.2 修改core-site.xml
  1. <configuration>
  2.     <property>
  3.         <!-- 指定 namenode 的 hdfs 协议文件系统的通信地址 -->
  4.         <name>fs.defaultFS</name>
  5.         <value>hdfs://hadoop101:8020</value>
  6.     </property>
  7.     <property>
  8.         <!-- 指定 hadoop 集群存储临时文件的目录 -->
  9.         <name>hadoop.tmp.dir</name>
  10.         <value>/home/hadoop/tmp</value>
  11.     </property>
  12.     <property>
  13.         <!-- ZooKeeper 集群的地址 -->
  14.         <name>ha.zookeeper.quorum</name>
  15.         <value>hadoop101:2181,hadoop102:2181,hadoop103:2181,hadoop104:2181,hadoop105:2181</value>
  16.     </property>
  17.     <property>
  18.         <!-- ZKFC 连接到 ZooKeeper 超时时长 -->
  19.         <name>ha.zookeeper.session-timeout.ms</name>
  20.         <value>10000</value>
  21.     </property>
  22. </configuration>
复制代码
7.2.3 修改hdfs-site.xml
  1. <configuration>
  2.     <property>
  3.         <!-- 指定 HDFS 副本的数量 -->
  4.         <name>dfs.replication</name>
  5.         <value>3</value>
  6.     </property>
  7.     <property>
  8.         <!-- namenode 节点数据(即元数据)的存放位置,可以指定多个目录实现容错,多个目录用逗
  9. 号分隔 -->
  10.         <name>dfs.namenode.name.dir</name>
  11.         <value>/home/hadoop/namenode/data</value>
  12.     </property>
  13.     <property>
  14.         <!-- datanode 节点数据(即数据块)的存放位置 -->
  15.         <name>dfs.datanode.data.dir</name>
  16.         <value>/home/hadoop/datanode/data</value>
  17.     </property>
  18.     <property>
  19.         <!-- 集群服务的逻辑名称 -->
  20.                 <name>dfs.nameservices</name>
  21.         <value>mycluster</value>
  22.     </property>
  23.     <property>
  24.         <!-- NameNode ID 列表-->
  25.         <name>dfs.ha.namenodes.mycluster</name>
  26.         <value>nn1,nn2</value>
  27.     </property>
  28.     <property>
  29.         <!-- nn1 的 RPC 通信地址 -->
  30.         <name>dfs.namenode.rpc-address.mycluster.nn1</name>
  31.         <value>hadoop101:8020</value>
  32.     </property>
  33.     <property>
  34.         <!-- nn2 的 RPC 通信地址 -->
  35.         <name>dfs.namenode.rpc-address.mycluster.nn2</name>
  36.         <value>hadoop102:8020</value>
  37.     </property>
  38.     <property>
  39.         <!-- nn1 的 http 通信地址 -->
  40.         <name>dfs.namenode.http-address.mycluster.nn1</name>
  41.         <value>hadoop101:50070</value>
  42.     </property>
  43.     <property>
  44.         <!-- nn2 的 http 通信地址 -->
  45.         <name>dfs.namenode.http-address.mycluster.nn2</name>
  46.         <value>hadoop102:50070</value>
  47.     </property>
  48.     <property>
  49.         <!-- NameNode 元数据在 JournalNode 上的共享存储目录 -->
  50.         <name>dfs.namenode.shared.edits.dir</name>
  51.       
  52. <value>qjournal://hadoop101:8485;hadoop102:8485;hadoop103:8485;hadoop104:8485;hadoop105/mycluster</value>
  53.     </property>
  54.     <property>
  55.         <!-- Journal Edit Files 的存储目录 -->
  56.         <name>dfs.journalnode.edits.dir</name>
  57.         <value>/home/hadoop/journalnode/data</value>
  58.     </property>
  59.     <property>
  60.         <!-- 配置隔离机制,确保在任何给定时间只有一个 NameNode 处于活动状态 -->
  61.         <name>dfs.ha.fencing.methods</name>
  62.         <value>sshfence</value>
  63.     </property>
  64.     <property>
  65.         <!-- 使用 sshfence 机制时需要 ssh 免密登录 -->
  66.         <name>dfs.ha.fencing.ssh.private-key-files</name>
  67.         <value>/home/hadoop/.ssh/id_rsa</value>
  68.     </property>
  69.     <property>
  70.         <!-- SSH 超时时间 -->
  71.         <name>dfs.ha.fencing.ssh.connect-timeout</name>
  72.         <value>30000</value>
  73.     </property>
  74.     <property>
  75.         <!-- 访问代理类,用于确定当前处于 Active 状态的 NameNode -->
  76.         <name>dfs.client.failover.proxy.provider.mycluster</name>
  77.         <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
  78.     </property>
  79.     <property>
  80.         <!-- 开启故障自动转移 -->
  81.         <name>dfs.ha.automatic-failover.enabled</name>
  82.         <value>true</value>
  83.     </property>
  84. </configuration>
复制代码
7.2.4 修改yarn-site.xml
  1. <configuration>
  2.     <property>
  3.         <!--配置 NodeManager 上运行的附属服务。需要配置成 mapreduce_shuffle 后才可以在
  4. Yarn 上运行 MapReduce 程序。-->
  5.         <name>yarn.nodemanager.aux-services</name>
  6.         <value>mapreduce_shuffle</value>
  7.     </property>
  8.     <property>
  9.         <!-- 是否启用日志聚合 (可选) -->
  10.         <name>yarn.log-aggregation-enable</name>
  11.         <value>true</value>
  12.     </property>
  13.     <property>
  14.         <!-- 聚合日志的保存时间 (可选) -->
  15.         <name>yarn.log-aggregation.retain-seconds</name>
  16.         <value>86400</value>
  17.     </property>
  18.     <property>
  19.         <!-- 启用 RM HA -->
  20.         <name>yarn.resourcemanager.ha.enabled</name>
  21.         <value>true</value>
  22.     </property>
  23.     <property>
  24.         <!-- RM 集群标识 -->
  25.         <name>yarn.resourcemanager.cluster-id</name>
  26.         <value>my-yarn-cluster</value>
  27.     </property>
  28.     <property>
  29.         <!-- RM 的逻辑 ID 列表 -->
  30.         <name>yarn.resourcemanager.ha.rm-ids</name>
  31.         <value>rm1,rm2</value>
  32.     </property>
  33.     <property>
  34.         <!-- RM1 的服务地址 -->
  35.         <name>yarn.resourcemanager.hostname.rm1</name>
  36.         <value>hadoop101</value>
  37.     </property>
  38.     <property>
  39.         <!-- RM2 的服务地址 -->
  40.         <name>yarn.resourcemanager.hostname.rm2</name>
  41.         <value>hadoop104</value>
  42.     </property>
  43.     <property>
  44.         <!-- RM1 Web 应用程序的地址 -->
  45.                 <name>yarn.resourcemanager.webapp.address.rm1</name>
  46.         <value>hadoop101:8088</value>
  47.     </property>
  48.     <property>
  49.         <!-- RM2 Web 应用程序的地址 -->
  50.         <name>yarn.resourcemanager.webapp.address.rm2</name>
  51.         <value>hadoop104:8088</value>
  52.     </property>
  53.     <property>
  54.         <!-- ZooKeeper 集群的地址 -->
  55.         <name>yarn.resourcemanager.zk-address</name>
  56.         <value>hadoop101:2181,hadoop102:2181,hadoop103:2181,hadoop104:2181,hadoop105:2181</value>
  57.     </property>
  58.     <property>
  59.         <!-- 启用自动恢复 -->
  60.         <name>yarn.resourcemanager.recovery.enabled</name>
  61.         <value>true</value>
  62.     </property>
  63.     <property>
  64.         <!-- 用于进行持久化存储的类 -->
  65.         <name>yarn.resourcemanager.store.class</name>
  66.       
  67. <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
  68.     </property>
  69. </configuration>
复制代码
7.2.5 修改mapred-site.xml
生成mapred-site.xml:cp mapred-site.xml.template mapred-site.xml
  1. <configuration>
  2.     <property>
  3.         <!--指定 mapreduce 作业运行在 yarn 上-->
  4.         <name>mapreduce.framework.name</name>
  5.         <value>yarn</value>
  6.     </property>
  7. </configuration>
复制代码
7.2.6 修改slaves
设置所有节点的主机名或 IP 地址,每行一个,所有从属节点上的 DataNode 服务和
NodeManager 服务都会被启动。
  1. hadoop101
  2. hadoop102
  3. hadoop103
复制代码
修改yarn-env.sh 指定jdk 地址
jobhistory
7.3 步伐分发
1) 将hadoop101安装好的hadoop分发到hadoop102~105:xsync.sh /opt/module/hadoop-2.7.2
2)在各台主机上添加hadoop系统变量并用source来革新
7.4.1 启动HDFS
  1.     在namenode节点上初始化集群。进入到 hadoop101 的 ${HADOOP_HOME}/sbin 目录下,启动 HDFS。此时 hadoop101 和
复制代码
hadoop102 上的 NameNode 服务,和5台服务器上的 DataNode 服务都会被启动:命令为:./start-dfs.sh
7.4.2 启动YARN
  1.     1) 在namenode节点上初始化集群。进入到 hadoop101 的 ${HADOOP_HOME}/sbin 目录下,启动 YARN。此时 hadoop101 上的ResourceManager 服务和3台服务器上的 NodeManager 服务都会被启动:命令为:./start-yarn.sh
  2.     2) 此时 hadoop104 上的 ResourceManager 服务通常是没有启动的,需要手动启动, 首先进入hadoop104的 ${HADOOP_HOME}/sbin目录,再执行命令:./yarn-daemon.sh start resourcemanager
复制代码
7.5 查看集群
  1.     1)通过在每台机器上输入命令:jps查看集群各服务开启情况。
  2.     2)HDFS 和 YARN 的端口号分别为 50070 和 8080。打开浏览器,输入hadoop101:50070进入WEB UI界面,此时 hadoop101 上的 NameNode 处于可用状态:
  3.     3)同样输入hadoop102:50070进入WEB UI界面,此时 hadoop102 上的 NameNode 处于不可用状态::
  4.     4)HDFS 和 YARN 的端口号分别为 50070 和 8080。打开浏览器,输入hadoop101:8088进入WEB UI界面,此时 可在hadoop101 上的 查看YARN节点情况,可以看到有3台服务器节点:
复制代码
八. hive 安装

tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /opt/module/
echo “export HIVE_HOME=/opt/module/apache-hive-3.1.2-bin” | sudo tee -a /etc/profileecho “export PATH=                                   H                         I                         V                                   E                            H                                  O                         M                         E                         /                         b                         i                         n                         :                              HIVE_HOME/bin:                  HIVEH​OME/binATH” | sudo tee -a /etc/profilesource /etc/profile

1、启动命令
  1. #!/bin/bash
  2. nohup hive --service metastore >> $HIVE_HOME/logs/metasotre.log 2>&1 &
  3. nohup hive --service hiveserver2 >> $HIVE_HOME/logs/hiveserver.log 2>&1 &
  4.  
  5. 2、停止命令
  6. #!/bin/bash
  7. process="hive"
  8. PID=$(ps x | grep $process | grep '/bin/java' | grep -v grep | awk '{print $1}')
  9. ps -ef | grep $process | grep '/bin/java' | grep -v grep | awk '{print $2}' | xargs kill -9
复制代码
九. spark 安装

tar -zxvf spark-3.1.1-bin-hadoop2.7.tar.gz -C /opt/module/
bash
echo “export SPARK_HOME=/opt/module/spark-3.1.1-bin-hadoop2.7” | sudo tee -a /etc/profileecho “export PATH=                                   S                         P                         A                         R                                   K                            H                                  O                         M                         E                         /                         b                         i                         n                         :                              SPARK_HOME/bin:                  SPARKH​OME/binATH” | sudo tee -a /etc/profilesource /etc/profile
十. kylin 安装

十一.sqoop 安装

集群初始化

看到successfully表示初始化乐成。
实行初始化命令后,必要将 NameNode 元数据目录的内容复制到其他未格式化的 NameNode 上。元数据存储目录就是我们在 hdfs-site.xml 中使用 dfs.namenode.name.dir 属性指定的目录。这里我们必要将其复制到 hadoop102 上: scp -r /home/hadoop/namenode/data hadoop102:/home/hadoop/namenode/
启动集群

脚步一键启动或制止所有集群服务:
Zookeeper
Hadoop
Hive
Spark
Kylin

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/) Powered by Discuz! X3.4