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

发布时间 2024-01-07 19:30:18作者: OnePandas

1. Zookeeper环境安装

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

1.1 上传tar包

zookeeper-3.4.6.tar

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

1.2 解压缩

cd /export/server
tar xvf /export/server/zookeeper-3.4.6.tar.gz
mv zookeeper-3.4.6 zookeeper

1.3 添加环境变量

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

1.4 创建数据目录

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 修改配置文件

# 将环境变量重命名为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服务启动停止

# 启动
zkServer.sh start
# 停止
zkServer.sh stop
# 查看状态
zkServer.sh status

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

1.7 查看运行的java服务

jps

正常启动会有: QuorumPeerMain 服务

1.8 集群搭建说明

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

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

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 解压缩文件

cd /export/server
tar  zxvf /export/server/hadoop-3.3.0-Centos7-64-with-snappy.tar.gz

2.3 配置环境变量

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 修改配置文件

进入配置文件目录下

cd /export/server/hadoop-3.3.0/etc/hadoop

2.4.1 修改hadoop-env.sh文件

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文件

<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文件

<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文件

<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文件配置文件

<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文件

192.168.88.161
192.168.88.162
192.168.88.163

2.5 集群搭建说明

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

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

2.6 hadoop集群启动

2.6.1 数据初始化

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

hdfs namenode -format

2.6.2 服务器启动和关闭

# 整体服务启动/关闭服务
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管理界面,需要配置本地映射

位于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 解压缩

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版本差异

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的环境变量

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

# 切换到配置文件目录
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

<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 初始化元数据

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

3.8 在hdfs创建hive存储目录

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

# 启动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 基础环境搭建完毕
有问题欢迎指出!!!