大数据本地环境搭建-Zookeeper/Hadoop/Hive搭建

1. Zookeeper环境安装

链接:https://pan.baidu.com/s/1wzbCiDxP7H5G_llwjSS3Rw?pwd=wgal

提取码:wgal

1.1 上传tar包

zookeeper-3.4.6.tar

注意:上传文件位置为 /export/server目录

1.2 解压缩

shell 复制代码
cd /export/server
tar xvf /export/server/zookeeper-3.4.6.tar.gz
mv zookeeper-3.4.6 zookeeper

1.3 添加环境变量

shell 复制代码
echo 'export ZOOKEEPER_HOME=/export/server/zookeeper' >> /etc/profile
echo 'export PATH=$PATH:$ZOOKEEPER_HOME/bin' >> /etc/profile
# 刷新环境变量
source /etc/profile

1.4 创建数据目录

shell 复制代码
mkdir -p /export/data/zkdata
echo 1 > /export/data/zkdata/myid

# 注意:!!!!!!!!!
# 注意:!!!!!!!!!
# 注意:!!!!!!!!!
# 搭建集群时,还需要在创建完node2虚拟机上执行
echo 2 > /export/data/zkdata/myid
# 搭建集群时,还需要在创建完node3虚拟机上执行
echo 3 > /export/data/zkdata/myid

1.5 修改配置文件

shell 复制代码
# 将环境变量重命名为zoo.cfg
mv  /export/server/zookeeper/conf/zoo_sample.cfg /export/server/zookeeper/conf/zoo.cfg
# 替换其中的内容
sed -i "s#^dataDir.*#dataDir=/export/data/zkdata#" /export/server/zookeeper/conf/zoo.cfg
# 将host和port信息写入配置文件中
echo 'server.1=192.168.88.161:2888:3888' >> /export/server/zookeeper/conf/zoo.cfg
echo 'server.2=192.168.88.162:2888:3888' >> /export/server/zookeeper/conf/zoo.cfg
echo 'server.3=192.168.88.163:2888:3888' >> /export/server/zookeeper/conf/zoo.cfg

1.6 Zookeeper服务启动停止

shell 复制代码
# 启动
zkServer.sh start
# 停止
zkServer.sh stop
# 查看状态
zkServer.sh status

## 注意启动时需要三台机器都执行启动服务

1.7 查看运行的java服务

shell 复制代码
jps

正常启动会有: QuorumPeerMain 服务

1.8 集群搭建说明

在node1的机器上配置完成后,需要将node1中的zookeeper目录复制到node2和node3的对应目录下,同时需要将基础环境配置步骤在node2和node3上重新执行一遍

可以使用分发脚本进行数据分发,分发脚本编写和使用规则参考另一篇文章

html 复制代码
https://blog.csdn.net/m0_49620121/article/details/135432995?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22135432995%22%2C%22source%22%3A%22m0_49620121%22%7D

2. hadoop安装

链接:https://pan.baidu.com/s/1Wd4WIOmDxIyJ-4nfA4mtvA?pwd=4ddz

提取码:4ddz

2.1 上传压缩包

上传目录为: /export/server

2.2 解压缩文件

shell 复制代码
cd /export/server
tar  zxvf /export/server/hadoop-3.3.0-Centos7-64-with-snappy.tar.gz

2.3 配置环境变量

shell 复制代码
echo 'export HADOOP_HOME=/export/server/hadoop-3.3.0' >> /etc/profile
echo 'export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin' >> /etc/profile
# 刷新环境变量
source /etc/profile

2.4 修改配置文件

进入配置文件目录下

shell 复制代码
cd /export/server/hadoop-3.3.0/etc/hadoop

2.4.1 修改hadoop-env.sh文件

shell 复制代码
export JAVA_HOME=/export/server/jdk1.8.0_241
#文件最后添加
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root 

2.4.2 修改core-site.xml文件

xml 复制代码
<configuration>
    <!-- 设置默认使用的文件系统 Hadoop支持file、HDFS、GFS、ali|Amazon云等文件系统 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://node1:8020</value>
    </property>

    <!-- 设置Hadoop本地保存数据路径 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/export/data/hadoop-3.3.0</value>
    </property>

    <!-- 设置HDFS web UI用户身份 -->
    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>root</value>
    </property>

    <!-- 整合hive 用户代理设置 -->
    <property>
        <name>hadoop.proxyuser.root.hosts</name>
        <value>*</value>
    </property>

    <property>
        <name>hadoop.proxyuser.root.groups</name>
        <value>*</value>
    </property>
</configuration>

2.4.3 修改hdfs-site.xml文件

xml 复制代码
<configuration>
    <!-- 设置SNN进程运行机器位置信息 -->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>node2:9868</value>
    </property>
    <!-- 设置副本数量 -->
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>    
</configuration>

2.4.4 修改mapred-site.xml文件

xml 复制代码
<configuration>
    <!-- 设置MR程序默认运行模式: yarn集群模式 local本地模式 -->
    <property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
    </property>

    <!-- MR程序历史服务器端地址 -->
    <property>
      <name>mapreduce.jobhistory.address</name>
      <value>node1:10020</value>
    </property>

    <!-- 历史服务器web端地址 -->
    <property>
      <name>mapreduce.jobhistory.webapp.address</name>
      <value>node1:19888</value>
    </property>

    <property>
      <name>yarn.app.mapreduce.am.env</name>
      <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>

    <property>
      <name>mapreduce.map.env</name>
      <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>

    <property>
      <name>mapreduce.reduce.env</name>
      <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>
</configuration>

2.4.5 修改yarn-site.xml文件配置文件

xml 复制代码
<configuration>
	<!-- 设置YARN集群主角色运行机器位置,尽量NameNode和ResourceManager和SecondaryNameNode分不同机器 -->
	<property>
		<name>yarn.resourcemanager.hostname</name>
		<value>node1</value>
	</property>

	<property>
		<name>yarn.nodemanager.aux-services</name>
		<value>mapreduce_shuffle</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.log-aggregation-enable</name>
	  <value>true</value>
	</property>

	<!-- 设置yarn历史服务器地址 -->
	<property>
		<name>yarn.log.server.url</name>
		<value>http://node1:19888/jobhistory/logs</value>
	</property>

	<!-- 保存的时间7天 -->
	<property>
	  <name>yarn.log-aggregation.retain-seconds</name>
	  <value>604800</value>
	</property>
</configuration>

2.4.6 修改workers文件

she 复制代码
192.168.88.161
192.168.88.162
192.168.88.163

2.5 集群搭建说明

需要将node1中的Hadoop文件复制到node2和node3的对应位置

shell 复制代码
# 使用数据分发脚本分发hadoop-3.3.0目录
xsync /export/server/hadoop-3.3.0
# 使用数据分发脚本分发环境变量文件
xsync /etc/profile

2.6 hadoop集群启动

2.6.1 数据初始化

注意: 初始化操作必须在node1中执行

shell 复制代码
hdfs namenode -format

2.6.2 服务器启动和关闭

shell 复制代码
# 整体服务启动/关闭服务
start-all.sh
# 整体服务服务关闭
stop-all.sh
# 启动JobHistoryServer
mapred --daemon historyserver
# 单独启动hdfs
start-dfs.sh
# 单独关闭hdfs
stop-dfs.sh
# 单独启动yarn
start-yarn.sh
# 单独关闭yarn
stop-yarn.sh

# 单独启动hdfs服务的单个组件
hdfs --daemon start namenode/datanode/secondarynamenode
# 单独关闭hdfs服务的单个组件
hdfs --daemon stop namenode/datanode/secondarynamenode
# 单独启动yarn服务的单个组件
yarn --daemon start resourcemanager/nodemanager
# 单独关闭yarn服务的单个组件
yarn --daemon stop resourcemanager/nodemanager

如果想在Windows电脑上使用web登陆9870的HDFS管理界面,需要配置本地映射

shell 复制代码
位于Windows的C:\Windows\System32\drivers\etc\hosts
192.168.88.161 node1.onepandas.cn  node1
192.168.88.162 node2.onepandas.cn  node2
192.168.88.163 node3.onepandas.cn  node3

hdfs结构管理界面url:http://192.168.88.161:9870/node1:9870

yarn Web UI管理界面:http://192.168.88.161:8088/node1:8088

3.Hive安装

链接:https://pan.baidu.com/s/1E83wjgzrc4AUKrOEUk0xIA?pwd=t8z5

提取码:t8z5

3.1 上传压缩包

上传位置: /export/server

3.2 解压缩

shell 复制代码
cd /export/server/
tar zxvf /export/server/apache-hive-3.1.2-bin.tar.gz
mv apache-hive-3.1.2-bin/ ./hive3.1.2

3.3 解决Hive与Hadoop之间guava版本差异

shell 复制代码
rm -rf /export/server/hive3.1.2/lib/guava-19.0.jar
cp /export/server/hadoop-3.3.0/share/hadoop/common/lib/guava-27.0-jre.jar /export/server/hive3.1.2/lib/

3.4 配置hive的环境变量

shell 复制代码
echo 'export HIVE_HOME=/export/server/hive3.1.2' >> /etc/profile
echo 'export PATH=$PATH:$HIVE_HOME/bin:$HIVE_HOME/sbin' >> /etc/profile
# 刷新环境变量
source /etc/profile

3.5 修改配置文件

3.5.1 修改hive-env.sh

shell 复制代码
# 切换到配置文件目录
cd /export/server/hive3.1.2/conf
# 拷贝配置文件并重命名
cp hive-env.sh.template ./hive-env.sh
# 将配置信息写入配置文件
echo 'export HADOOP_HOME=/export/server/hadoop-3.3.0' >> /export/server/hive3.1.2/conf/hive-env.sh
echo 'export HIVE_CONF_DIR=/export/server/hive3.1.2/conf' >> /export/server/hive3.1.2/conf/hive-env.sh
echo 'export HIVE_AUX_JARS_PATH=/export/server/hive3.1.2/lib' >> /export/server/hive3.1.2/conf/hive-env.sh

3.5.2 修改hive-site.xml

shell 复制代码
<configuration>
	<!-- 存储元数据mysql相关配置 -->
	<property>
		<name>javax.jdo.option.ConnectionURL</name>
		<value>jdbc:mysql://node1:3306/hive3?createDatabaseIfNotExist=true&amp;useSSL=false</value>
	</property>

	<property>
		<name>javax.jdo.option.ConnectionDriverName</name>
		<value>com.mysql.jdbc.Driver</value>
	</property>

	<property>
		<name>javax.jdo.option.ConnectionUserName</name>
		<value>root</value>
	</property>

	<property>
		<name>javax.jdo.option.ConnectionPassword</name>
		<value>123456</value>
	</property>

	<!-- H2S运行绑定host -->
	<property>
		<name>hive.server2.thrift.bind.host</name>
		<value>node1</value>
	</property>

	<!-- 远程模式部署metastore metastore地址 -->
	<property>
		<name>hive.metastore.uris</name>
		<value>thrift://node1:9083</value>
	</property>

	<!-- 关闭元数据存储授权  --> 
	<property>
		<name>hive.metastore.event.db.notification.api.auth</name>
		<value>false</value>
	</property>
</configuration>

3.6 上传mysql 的jdbc驱动

注意:驱动上传到 /export/server/apache-hive-3.1.2-bin/lib/ 目录下

链接:https://pan.baidu.com/s/1w3L9jRO_moT7gmUjAAyhpg?pwd=t0wo

提取码:t0wo

mysql-connector-java-5.1.40.jar

3.7 初始化元数据

shell 复制代码
schematool -initSchema -dbType mysql -verbos
#初始化成功会在mysql中创建74张表

3.8 在hdfs创建hive存储目录

shell 复制代码
hadoop fs -mkdir /tmp
hadoop fs -mkdir -p /user/hive/warehouse
hadoop fs -chmod g+w /tmp
hadoop fs -chmod g+w /user/hive/warehouse

3.9 启动hive

shell 复制代码
# 启动metastore服务
#前台启动  关闭ctrl+c
#前台启动开启debug日志
/export/server/hive3.1.2/bin/hive --service metastore --hiveconf hive.root.logger=DEBUG,console  

#后台启动 进程挂起  关闭使用jps+ kill -9(先使用jps获取runjar的id在kill +9 id号)
nohup /export/server/hive3.1.2/bin/hive --service metastore &

# 启动hiveserver2服务
nohup /export/server/hive/bin/hive --service hiveserver2 &
 #注意 启动hiveserver2需要一定的时间  不要启动之后立即beeline连接 可能连接不上
 先用lsof -i:10000 查看hiveserver2有没有启动
 启动beeline
 输入:!connect jdbc:hive2://node1:10000

到此 Zookeeper/Hadoop/Hive 基础环境搭建完毕

有问题欢迎指出!!!

相关推荐
Raas1002 小时前
MAI Gateway(魔芋企业级AI网关)技术揭秘:AI网关支持哪些模型?从原理到落地
大数据·人工智能·网关·gateway·mai gateway·企业级产品
YangYang9YangYan4 小时前
2026 校招商品分析岗位 JD 拆解,核心指标、工具与面试考点
大数据·数据库·数据分析
大大大大晴天5 小时前
OpenMetadata VS DataHub VS Atlas VS Gravitino
大数据
Qyr998 小时前
2026全球汽车碳刷行业发展全景分析报告
大数据
蓝速科技9 小时前
便民服务大厅 AI 数字人一体机场景适配与落地指南丨蓝速科技
大数据·网络·数据结构·人工智能·自然语言处理·数据分析·运维开发
精益数智工坊9 小时前
云计算环境数据怎么同步?云计算集成方案有哪些?
大数据·人工智能·数据挖掘·数据可视化
huashengzsj10 小时前
什么是DMS经销商管理系统?国内经销商管理系统有哪些品牌
大数据
IT毕设梦工厂11 小时前
计算机毕业设计选题推荐:基于大数据的草鱼价格分析与可视化|毕业设计选题|计算机毕设|选题推荐|毕设指导|项目定制|源码|高质量项目
大数据·hadoop·python·数据挖掘·数据分析·课程设计·大数据毕设项目
辛迪聊物业数字化11 小时前
智慧社区物业管理软件新手部署与实操指南
大数据·php
字节跳动数据平台12 小时前
模型再强,为什么 Demo 还是进不了生产?
大数据