【大数据情况搭建步骤】
大数据情况搭建步骤一. 大数据安装包版本
名称版本号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)通过命令 hostname查看主机名
2)通过vim /etc/hostname来修改
IP映射- 修改hosts
修改centos的hosts文件,命令:vim /etc/hosts
解释: 因为是云服务器,会有两个ip,一个是内网IP,一个是外网IP。
重启生效
2. 防火墙设置
关闭服务器的防火墙
1) 查看防火墙状态:firewall-cmd --state
2) 如果防火墙开启,请关闭它:systemctl stop firewalld.service
3) 设置开机时关闭防火墙:systemctl disable firewalld.service
4) 再次查看防火墙状态:firewall-cmd --state,确保防已火墙关闭。
3. 创建普通用户
创建新用户
sudo useradd newuser
设置暗码
sudo passwd newuser
大概将用户添加到wheel组(适用于使用su和sudo的系统)
sudo usermod -aG wheel newuser
4. 免密登录
切换用户 su user1
1)生成公钥和私钥:ssh-keygen -t rsa ,连续按3次Enter键,会在当前用户home目录下生成隐藏目录.ssh,里面包含私钥id_rsa和公钥id_rsa.pub
2) 将公钥复制到要免密登录的服务器上:ssh-copy-id 服务器名,会让你确认是否要连接,输入yes
3)验证免密效果,分别测试免密效果:ssh 想要登录的主机名
5. 创建安装目录和软件包存放目录
留意:均使用user1用户来操作
1)创建文件夹 先创建两个文件夹: /opt/module 和/opt/softs,我所有软件都安装在/opt/module下,软件安装包均放在/opt/softs下,命令为:
sudo mkdir /opt/module
sudo mkdir /opt/softs
2)修改文件所有者。上一步创建的2个文件夹属于root用户,将其所有者和所属组都改成hadoop:
sudo chown hadoop:hadoop /opt/module/
sudo chown hadoop:hadoop /opt/softs
5. 分发脚步
编写分发脚本
1)在/home/user1下创建bin目录,,再在bin目录下编写分发步伐脚本:xsync.sh:
cd /home/hadoop
mkdir bin
cd bin
vim xsync.sh
脚本内容:
#!/bin/bash
# 获取输入参数的数量,如果没有参数就直接退出
pcount=$#
if((pcount==0)); then
echo "没有参数";
exit;
fi
#获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname
#获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
#获取当前用户名称
user=`whoami`
#循环,我在hadoop101上安装,所以需要将程序分发到hadoop102~105上
for((host=102; host<106; host++)); do
echo --------------------- hadoop$host ----------------
rsync -rvl $pdir/$fname $user@hadoop$host:$pdir
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: JAVAHOME/lib:{JRE_HOME}/lib
export PATH= J A V A H O M E / b i n : {JAVA_HOME}/bin: JAVAHOME/bin:PATH
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台服务器。
[*]安装Zookeeper
1)起首将Zookeeper压缩文件上传到hadoop101的/opt/softs目录下,之后进入/opt/softs/目录:cd /opt/softs/
2)安装Zookeeper:tar -zxvf zookeeper-3.4.14.tar.gz -C /opt/module/表示将zookeeper安装到/opt/module/
3) 设置系统情况变量:sudo vim /etc/profile,添加如下信息
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: ZOOKEEPERHOME/bin:PATH
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=hadoop101:2287:3387
server.2=hadoop102:2287:3387
server.3=hadoop103:2287:3387
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
[*] 步伐分发
1) 将hadoop101安装好的zookeeper分发到hadoop102~105:xsync.sh /opt/module/zookeeper-3.4.14
2)在各台主机上添加zookeeper系统变量并用source来革新
[*] 标识节点
1)分别在五台主机的 dataDir 目录下新建 myid 文件: mkdir -vp /opt/module/zookeeper-3.4.14/zookeeper-cluster/data/
2)写入对应的节点标识。Zookeeper 集群通过 myid 文件识别集群节点,并通过上文配置的节点通信端口和选举端口来进行节点通信,选举出 Leader 节点。
[*] hadoop101上实行
echo “1” > /opt/module/zookeeper-3.4.14/zookeeper-cluster/data/myid
[*] hadoop102上实行
echo “2” > /opt/module/zookeeper-3.4.14/zookeeper-cluster/data/myid
[*] hadoop103上实行
echo “3” > /opt/module/zookeeper-3.4.14/zookeeper-cluster/data/myid
[*]启动集群
进入各台服务器${ZOOKEEPER_HOME}/bin,然后实行zkServer.sh start 启动集群,并用zkServer.sh status查看状态:
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
export JAVA_HOME=/usr/java/jdk1.8.0_351-amd64
7.2.2 修改core-site.xml
<configuration>
<property>
<!-- 指定 namenode 的 hdfs 协议文件系统的通信地址 -->
<name>fs.defaultFS</name>
<value>hdfs://hadoop101:8020</value>
</property>
<property>
<!-- 指定 hadoop 集群存储临时文件的目录 -->
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/tmp</value>
</property>
<property>
<!-- ZooKeeper 集群的地址 -->
<name>ha.zookeeper.quorum</name>
<value>hadoop101:2181,hadoop102:2181,hadoop103:2181,hadoop104:2181,hadoop105:2181</value>
</property>
<property>
<!-- ZKFC 连接到 ZooKeeper 超时时长 -->
<name>ha.zookeeper.session-timeout.ms</name>
<value>10000</value>
</property>
</configuration>
7.2.3 修改hdfs-site.xml
<configuration>
<property>
<!-- 指定 HDFS 副本的数量 -->
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<!-- namenode 节点数据(即元数据)的存放位置,可以指定多个目录实现容错,多个目录用逗
号分隔 -->
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/namenode/data</value>
</property>
<property>
<!-- datanode 节点数据(即数据块)的存放位置 -->
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop/datanode/data</value>
</property>
<property>
<!-- 集群服务的逻辑名称 -->
<name>dfs.nameservices</name>
<value>mycluster</value>
</property>
<property>
<!-- NameNode ID 列表-->
<name>dfs.ha.namenodes.mycluster</name>
<value>nn1,nn2</value>
</property>
<property>
<!-- nn1 的 RPC 通信地址 -->
<name>dfs.namenode.rpc-address.mycluster.nn1</name>
<value>hadoop101:8020</value>
</property>
<property>
<!-- nn2 的 RPC 通信地址 -->
<name>dfs.namenode.rpc-address.mycluster.nn2</name>
<value>hadoop102:8020</value>
</property>
<property>
<!-- nn1 的 http 通信地址 -->
<name>dfs.namenode.http-address.mycluster.nn1</name>
<value>hadoop101:50070</value>
</property>
<property>
<!-- nn2 的 http 通信地址 -->
<name>dfs.namenode.http-address.mycluster.nn2</name>
<value>hadoop102:50070</value>
</property>
<property>
<!-- NameNode 元数据在 JournalNode 上的共享存储目录 -->
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://hadoop101:8485;hadoop102:8485;hadoop103:8485;hadoop104:8485;hadoop105/mycluster</value>
</property>
<property>
<!-- Journal Edit Files 的存储目录 -->
<name>dfs.journalnode.edits.dir</name>
<value>/home/hadoop/journalnode/data</value>
</property>
<property>
<!-- 配置隔离机制,确保在任何给定时间只有一个 NameNode 处于活动状态 -->
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property>
<property>
<!-- 使用 sshfence 机制时需要 ssh 免密登录 -->
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/hadoop/.ssh/id_rsa</value>
</property>
<property>
<!-- SSH 超时时间 -->
<name>dfs.ha.fencing.ssh.connect-timeout</name>
<value>30000</value>
</property>
<property>
<!-- 访问代理类,用于确定当前处于 Active 状态的 NameNode -->
<name>dfs.client.failover.proxy.provider.mycluster</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<property>
<!-- 开启故障自动转移 -->
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
</configuration>
7.2.4 修改yarn-site.xml
<configuration>
<property>
<!--配置 NodeManager 上运行的附属服务。需要配置成 mapreduce_shuffle 后才可以在
Yarn 上运行 MapReduce 程序。-->
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<!-- 是否启用日志聚合 (可选) -->
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<!-- 聚合日志的保存时间 (可选) -->
<name>yarn.log-aggregation.retain-seconds</name>
<value>86400</value>
</property>
<property>
<!-- 启用 RM HA -->
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<property>
<!-- RM 集群标识 -->
<name>yarn.resourcemanager.cluster-id</name>
<value>my-yarn-cluster</value>
</property>
<property>
<!-- RM 的逻辑 ID 列表 -->
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<property>
<!-- RM1 的服务地址 -->
<name>yarn.resourcemanager.hostname.rm1</name>
<value>hadoop101</value>
</property>
<property>
<!-- RM2 的服务地址 -->
<name>yarn.resourcemanager.hostname.rm2</name>
<value>hadoop104</value>
</property>
<property>
<!-- RM1 Web 应用程序的地址 -->
<name>yarn.resourcemanager.webapp.address.rm1</name>
<value>hadoop101:8088</value>
</property>
<property>
<!-- RM2 Web 应用程序的地址 -->
<name>yarn.resourcemanager.webapp.address.rm2</name>
<value>hadoop104:8088</value>
</property>
<property>
<!-- ZooKeeper 集群的地址 -->
<name>yarn.resourcemanager.zk-address</name>
<value>hadoop101:2181,hadoop102:2181,hadoop103:2181,hadoop104:2181,hadoop105:2181</value>
</property>
<property>
<!-- 启用自动恢复 -->
<name>yarn.resourcemanager.recovery.enabled</name>
<value>true</value>
</property>
<property>
<!-- 用于进行持久化存储的类 -->
<name>yarn.resourcemanager.store.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
</property>
</configuration>
7.2.5 修改mapred-site.xml
生成mapred-site.xml:cp mapred-site.xml.template mapred-site.xml
<configuration>
<property>
<!--指定 mapreduce 作业运行在 yarn 上-->
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
7.2.6 修改slaves
设置所有节点的主机名或 IP 地址,每行一个,所有从属节点上的 DataNode 服务和
NodeManager 服务都会被启动。
hadoop101
hadoop102
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
在namenode节点上初始化集群。进入到 hadoop101 的 ${HADOOP_HOME}/sbin 目录下,启动 HDFS。此时 hadoop101 和
hadoop102 上的 NameNode 服务,和5台服务器上的 DataNode 服务都会被启动:命令为:./start-dfs.sh
7.4.2 启动YARN
1) 在namenode节点上初始化集群。进入到 hadoop101 的 ${HADOOP_HOME}/sbin 目录下,启动 YARN。此时 hadoop101 上的ResourceManager 服务和3台服务器上的 NodeManager 服务都会被启动:命令为:./start-yarn.sh
2) 此时 hadoop104 上的 ResourceManager 服务通常是没有启动的,需要手动启动, 首先进入hadoop104的 ${HADOOP_HOME}/sbin目录,再执行命令:./yarn-daemon.sh start resourcemanager
7.5 查看集群
1)通过在每台机器上输入命令:jps查看集群各服务开启情况。
2)HDFS 和 YARN 的端口号分别为 50070 和 8080。打开浏览器,输入hadoop101:50070进入WEB UI界面,此时 hadoop101 上的 NameNode 处于可用状态:
3)同样输入hadoop102:50070进入WEB UI界面,此时 hadoop102 上的 NameNode 处于不可用状态::
4)HDFS 和 YARN 的端口号分别为 50070 和 8080。打开浏览器,输入hadoop101:8088进入WEB UI界面,此时 可在hadoop101 上的 查看YARN节点情况,可以看到有3台服务器节点:
八. hive 安装
[*]安装 Hive
上传并解压 Hive 包:
bash
tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /opt/module/
[*]设置 Hive 情况变量
bash
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: HIVEHOME/bin:PATH” | sudo tee -a /etc/profilesource /etc/profile
[*]初始化 Hive 元数据库(初始化一次即可)
schematool -initSchema -dbType mysql -verbose
[*]Hive-服务启动和制止命令
1、启动命令
#!/bin/bash
nohup hive --service metastore >> $HIVE_HOME/logs/metasotre.log 2>&1 &
nohup hive --service hiveserver2 >> $HIVE_HOME/logs/hiveserver.log 2>&1 &
2、停止命令
#!/bin/bash
process="hive"
PID=$(ps x | grep $process | grep '/bin/java' | grep -v grep | awk '{print $1}')
ps -ef | grep $process | grep '/bin/java' | grep -v grep | awk '{print $2}' | xargs kill -9
九. spark 安装
[*]上传并解压 Spark
bash
tar -zxvf spark-3.1.1-bin-hadoop2.7.tar.gz -C /opt/module/
[*]设置 Spark 情况变量
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: SPARKHOME/bin:PATH” | sudo tee -a /etc/profilesource /etc/profile
[*]修改设置文件
spark-3.4.0-bin-hadoop3/conf/spark-env.sh、
spark-3.4.0-bin-hadoop3/conf/spark-defaults.conf#
十. kylin 安装
[*] 上传并解压 Kylin
bash
tar -zxvf apache-kylin-4.0.1-bin-spark3.tar.gz -C /opt/module/
[*] 设置 Kylin
设置 kylin.properties 文件,指定 Hive 和 数据库,core 和 instance等 设置。
[*] 上传相关 JAR 包到 HDFS
bash
hadoop fs -put /path/to/jar/file /user/kylin/lib/
十一.sqoop 安装
[*] 解压 Sqoop 安装包
bash
cd /opt/softs
tar -zxvf sqoop-1.4.7.bin_hadoop_2.6.0.tar.gz -C /opt/module/
[*] 设置情况变量
bash
sudo vim /etc/profile
bash
export SQOOP_HOME=/opt/module/sqoop-1.4.7.bin_hadoop_2.6.0
export PATH= S Q O O P H O M E / b i n : SQOOP_HOME/bin: SQOOPHOME/bin:PATH
保存并关闭文件后,使设置见效:
bash
source /etc/profile
集群初始化
[*]初始化NameNode
在一台namenode节点上初始化集群,我选择在hadoop101上进行,命令为:hdfs namenode -format
看到successfully表示初始化乐成。
实行初始化命令后,必要将 NameNode 元数据目录的内容复制到其他未格式化的 NameNode 上。元数据存储目录就是我们在 hdfs-site.xml 中使用 dfs.namenode.name.dir 属性指定的目录。这里我们必要将其复制到 hadoop102 上: scp -r /home/hadoop/namenode/data hadoop102:/home/hadoop/namenode/
[*]初始化HA状态
在恣意一台namenode节点上初始化集群,我选择在hadoop101上进行,命令为:hdfs zkfc -formatZK
启动集群
脚步一键启动或制止所有集群服务:
Zookeeper
Hadoop
Hive
Spark
Kylin
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]