linux<centOs>下安装Hadoop3.版本

本文详细介绍了在CentOS7系统中安装Hadoop 3.3.2的步骤,包括安装JDK、配置SSH免密登录、下载与解压Hadoop、配置相关XML文件以及启动和检查Hadoop服务。通过这些步骤,读者可以掌握在Linux环境下搭建Hadoop单节点环境的基本操作。

Hadoop学习笔记

第一章 Hadoop安装



前言

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


一、准备工作

操作系统使用的是centsOs7,其他系统操作指令会有不同

1. 安装jdk

   安装jdk步骤不详细说明,[点击查看centos安装jdk步骤](https://blog.youkuaiyun.com/dhr201499/article/details/81626466)

2. 配置ssh服务,设置免密登录

执行命令行:sudo yum install openssh-server。(如果已安装,则不需要安装ssh,验证方式直接输入ssh回车查看系统提示即可)
执行命令行:
ssh-keygen -t rsa -P ‘’ -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
验证方式:
ssh localhost ,如果没有提示输入密码,则设置免密登陆成功。

二、安装Hadoop3.3.2

1.下载

首先在根目录下创建文件夹hadoop。

wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.2/hadoop-3.3.2.tar.gz

下载完成之后,解压文件

tar -zxvf ./hadoop-3.3.2.tar.gz 

在/usr/local/ 下新建文件夹hadoop,将解压文件移入新建文件夹

mv ./hadoop-3.3.0 /usr/local/hadoop

2.配置

进入到hadoop配置文件夹

cd /usr/local/hadoop/hadoop-3.3.2/etc/hadoop

2.1修改hadoop-env.sh

vim hadoop-env.sh
##写入下面的文件到最后##

export JAVA_HOME=你的jdk安装路径
export HADOOP_HOME=/usr/local/hadoop/hadoop-3.3.2

2.2修改core-site.xml

查看hostname的方式:

cat /etc/hostname 
hostname

系统显示内容为你的hostname

vim core-site.xml
#写入下面的文件,注意hdfs后面是你的hostname,记得修改
#temp.dir,tlntin改成你的用户名,并且创建好相关字路径,用于缓存
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hostname:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/hadoop/data</value>
    </property>
</configuration>

2.3修改hdfs-site.xml

vim hdfs-site.xml
# 写入下面的文件
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
      <name>dfs.namenode.http.address</name>
       <value>localhost:9870</value>
    </property>
</configuration>`

2.4修改mapred-site.xml

vim mapred-site.xml
# 写入下面的文件
<configuration>
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
                <final>true</final>
                <description>The runtime framework for executing MapReduce jobs</description>
        </property>
</configuration>

2.5修改yarn-site.xml

vim yarn-site.xml
# 写入下面的文件
# 注意MacbookPro改成你的HostName
<configuration>
    <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>hostname</value>
    </property>
    <property>
            <name>yarn.nodemanager.hostname</name>
            <value>mapreduce_shuffle</value>
    </property>
</configuration>

2.6修改sbin下的几个文件(注意是有四个文件)

cd /usr/local/hadoop/hadoop-3.3.2/sbin
vim start-dfs.sh/stop-dfs.sh(分两次编辑start-dfs.sh和stop-dfs.sh文件)
# 在开头写入下面的内容(root改成你的用户名)
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

vim start-yarn.sh/stop-yarn.sh(分两次编辑start-yarn.sh和stop-yarn.sh文件)
# 开头写入以下文件
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

2.7 修改bin目录下文件

cd /usr/local/hadoop/hadoop-3.3.2/bin
vim hadoop
# 把下面的用户名改成你的,这里只是测试使用,尽量使用自己创建的用户授权后操作
HADOOP_SHELL_EXECNAME="root"  # 原来是hadoop
vim hdfs
# 同上
HADOOP_SHELL_EXECNAME="root"  # 原来是hdfs
vim yarn
HADOOP_SHELL_EXECNAME="root"  # 原来是yarn

3.启动

3.1 初始化

./bin/hdfs namenode -format

3.2 启动dfs和yarn

./sbin/start-all.sh

3.3 查看

jps
# 出现下面代表成功,id号不一致无所谓
23922 DataNode
24170 SecondaryNameNode
8987 jar
7902 Jps
23775 NameNode

最后可以通过打开页面访问http://127.0.0.1:9870
在这里插入图片描述


总结

`以上就是今天笔记的内容,本文仅简单介绍了在centos下hadoop单点的安装方式。

2.hive的安装 # 上传解压安装 cd /export/server/ tar zxvf apache-hive-3.1.2-bin.tar.gz mv apache-hive-3.1.2-bin hive #解决 hadoop、hive 之间 guava 版本差异 cd /export/server/hive rm -rf lib/guava-19.0.jar cp /export/server/hadoop-3.1.4/share/hadoop/common/lib/guava-27.0-jre.jar ./lib/ #添加 mysql jdbc 驱动到 hive 安装 lib/文件下 mysql-connector-java-5.1.32.jar #修改 hive 环境变量文件 添加 Hadoop_HOME cd /export/server/hive/conf/ mv hive-env.sh.template hive-env.sh vim hive-env.sh export HADOOP_HOME=/export/server/hadoop export HIVE_CONF_DIR=/export/server/hive/conf export HIVE_AUX_JARS_PATH=/export/server/hive/lib #新增 hive-site.xml 配置 mysql 等相关信息 vim hive-site.xml #初始化 metadata cd /export/server/hive bin/schematool -initSchema -dbType mysql -verbos #初始化成功会在 mysql 中创建 74 张表 3. hive-site.xml 配置 mysql 等相关信息 <configuration> <!-- 存储元数据 mysql 相关配置 --> <property> <name>javax.jdo.option.ConnectionURL</name> <value> jdbc:mysql://Master:3306/hive?createDatabaseIfNotExist=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8</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>Master</value> </property> <!-- 远程模式部署 metastore 服务地址 --> <property> <name>hive.metastore.uris</name> <value>thrift://Master:9083</value> </property> <!-- 关闭元数据存储授权 --> <property> <name>hive.metastore.event.db.notification.api.auth</name> <value>false</value> </property> <!-- 关闭元数据存储版本的验证 --> <property> <name>hive.metastore.schema.verification</name> <value>false</value> </property> </configuration> 4.初始化 metadata cd /export/server/hive bin/schematool -initSchema -dbType mysql -verbos 若格式化失败 Hive 重新格式化 1. 删除用户目录:首先,需要删除用户目录中的所有内容。hdfs dfs -rm -r /user/ 2. 删除 Hive 数据库:接下来,删除 Hive 格式化过程中创建的 Hive 数据库。 mysql> drop database hive; 3. 重新格式化:最后,使用 schematool 命令重新初始化 Hive 的元数据。 5.远程模式 Metastore 服务手动启动 前台启动 关闭 ctrl+c /export/server/hive/bin/hive --service metastore #后台启动 进程挂起 关闭使用 jps + kill #输入命令回车执行 再次回车 进程将挂起后台 nohup /export/server/hive/bin/hive --service metastore & #前台启动开启 debug 日志 /export/server/hive/bin/hive --service metastore --hiveconf hive.root.logger=DEBUG,console 6.Hive Client 使用 /export/server/hive/bin/hive 7.其他机器上通过 bin/hive 访问 hive metastore 服务 如果需要在其他机器上通过 bin/hive 访问 hive metastore 服务,只需要在 该机器的 hive-site.xml 配置中添加 metastore 服务地址即可。 #前提步骤 将hive安装发送各节点,并配置环境变量 scp -r /export/server/hive slave1:/export/server scp -r /export/server/hive slave2:/export/server #将环境变量发送到slave1、slave2,去对应节点source /etc/profile scp -r /etc/profile slave2:/etc scp -r /etc/profile slave3:/etc 修改salve1和slave2的配置文件 <configuration> <property> <name>hive.metastore.uris</name> <value>thrift://Master:9083</value> </property> </configuration> 测试是否能够访问 cd …/ /export/server/hive/bin/hive show databases我在完成Linux中的 请帮我根据文档要求完成操作,以下是我的虚拟机信息. 虚拟机版本:CentOS7 用户名为:root 虚拟机master IP为192.168.128.130 hive路径: /export/server/apache-hive-3.1.2-bin.tar.gz mysql路径:/export/server/mysql-5.7.43-linux-glibc2.12-x86_64/ 当前所在路径:/export/server 所有操作均在root下完成 请给我最详细的操作步骤,我要现成的代码,括配置文件路径vi /........等等,务必详细,谢谢
最新发布
11-01
```markdown # 代码概述 本操作为在 CentOS7 系统上以 root 用户身份完成 Hive 3.1.2 的安装与配置,括解压、依赖处理、MySQL 元数据存储配置、Hive 元数据初始化、Metastore 远程服务部署及跨节点客户端配置等全过程。 # 代码解析 ### 1. 解压并重命名 Hive 安装 ```bash cd /export/server/ tar zxvf apache-hive-3.1.2-bin.tar.gz mv apache-hive-3.1.2-bin hive ``` > 将 Hive 压缩解压至当前目录,并重命名为 `hive`,便于后续管理。 --- ### 2. 处理 Hadoop 与 Hive 的 Guava 版本冲突 ```bash cd /export/server/hive rm -rf lib/guava-19.0.jar cp /export/server/hadoop-3.1.4/share/hadoop/common/lib/guava-27.0-jre.jar ./lib/ ``` > 删除 Hive 自带的低版本 Guava JAR ,替换为 Hadoop 使用的 Guava 27.0,避免类加载冲突。 --- ### 3. 添加 MySQL JDBC 驱动到 Hive lib 目录 确保已上传 `mysql-connector-java-5.1.32.jar` 至 `/export/server/`: ```bash cp /export/server/mysql-connector-java-5.1.32.jar /export/server/hive/lib/ ``` > 若文件不存在,请先下载并放置该驱动。它是 Hive 连接 MySQL 元数据库所必需的。 --- ### 4. 配置 Hive 环境变量文件 `hive-env.sh` ```bash cd /export/server/hive/conf mv hive-env.sh.template hive-env.sh vim hive-env.sh ``` 在打开的编辑器中添加以下内容: ```bash export HADOOP_HOME=/export/server/hadoop export HIVE_CONF_DIR=/export/server/hive/conf export HIVE_AUX_JARS_PATH=/export/server/hive/lib ``` > 此步骤指定 Hadoop 家目录和 Hive 配置路径,确保 Hive 能正确调用 Hadoop 资源。 --- ### 5. 创建并配置 `hive-site.xml` ```bash vim /export/server/hive/conf/hive-site.xml ``` 将以下 XML 内容完整写入: ```xml <configuration> <!-- 存储元数据 mysql 相关配置 --> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://192.168.128.130:3306/hive?createDatabaseIfNotExist=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8</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>Master</value> </property> <!-- Metastore 服务地址(远程模式) --> <property> <name>hive.metastore.uris</name> <value>thrift://192.168.128.130:9083</value> </property> <!-- 关闭元数据存储授权 --> <property> <name>hive.metastore.event.db.notification.api.auth</name> <value>false</value> </property> <!-- 关闭元数据存储版本验证 --> <property> <name>hive.metastore.schema.verification</name> <value>false</value> </property> </configuration> ``` > 注意:IP 使用的是 Master 节点 IP `192.168.128.130`,若主机名为 `Master` 已映射到该 IP,则可保留 `Master`;否则建议统一使用 IP。 --- ### 6. 初始化 Hive 元数据库 Schema ```bash cd /export/server/hive bin/schematool -initSchema -dbType mysql -verbose ``` > 成功后将在 MySQL 中自动创建数据库 `hive` 及 74 张表。 #### 若初始化失败,执行以下清理步骤: **① 删除 HDFS 上的用户目录** ```bash hdfs dfs -rm -r /user/hive ``` **② 登录 MySQL 删除旧的 Hive 数据库** ```bash mysql -u root -p ``` 输入密码后执行: ```sql DROP DATABASE IF EXISTS hive; CREATE DATABASE hive CHARACTER SET utf8 COLLATE utf8_general_ci; exit; ``` **③ 重新初始化元数据** ```bash bin/schematool -initSchema -dbType mysql -verbose ``` --- ### 7. 启动 Metastore 服务(远程模式) #### 前台启动(调试用) ```bash /export/server/hive/bin/hive --service metastore ``` > 按 `Ctrl+C` 可停止。 #### 后台启动(生产推荐) ```bash nohup /export/server/hive/bin/hive --service metastore > /export/server/hive/logs/metastore.log 2>&1 & ``` > 日志输出至 `logs/metastore.log`,可通过 `jps` 查看进程,`kill <pid>` 终止。 #### 开启 Debug 日志(排查问题) ```bash /export/server/hive/bin/hive --service metastore --hiveconf hive.root.logger=DEBUG,console ``` --- ### 8. 启动 Hive CLI 客户端 ```bash /export/server/hive/bin/hive ``` 进入后执行: ```sql SHOW DATABASES; ``` 验证是否能正常显示数据库列表。 --- ### 9. 在其他 Slave 节点配置 Hive 客户端(如 slave1、slave2) #### ① 分发 Hive 安装 在 Master 上执行: ```bash scp -r /export/server/hive root@slave1:/export/server/ scp -r /export/server/hive root@slave2:/export/server/ ``` #### ② 分发环境变量 确保 `/etc/profile` 含如下内容(如无则添加): ```bash export HIVE_HOME=/export/server/hive export PATH=$PATH:$HIVE_HOME/bin export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$HIVE_HOME/lib/* ``` 然后分发: ```bash scp /etc/profile root@slave1:/etc/ scp /etc/profile root@slave2:/etc/ ``` 登录各 slave 节点执行: ```bash source /etc/profile ``` #### ③ 修改 slave1 和 slave2 的 `hive-site.xml` ```bash vim /export/server/hive/conf/hive-site.xml ``` 仅需保留并确认含以下关键配置: ```xml <property> <name>hive.metastore.uris</name> <value>thrift://192.168.128.130:9083</value> </property> ``` 其余配置可以省略,因为只作为客户端连接远程 Metastore。 --- ### 10. 测试从 Slave 节点访问 Hive 在 slave1 或 slave2 上执行: ```bash /export/server/hive/bin/hive ``` 然后输入: ```sql SHOW DATABASES; ``` 若成功列出数据库,则说明配置正确。 --- ### 附加:设置主机名映射(建议) 确保所有节点 `/etc/hosts` 含: ```bash 192.168.128.130 Master ``` 否则请将所有配置中的 `Master` 替换为实际 IP。 # 知识点 - **JDBC 连接配置**:通过 `javax.jdo.option.ConnectionURL` 等属性配置 Hive 到 MySQL 的连接,实现元数据持久化。 - **Metastore 远程模式**:使用 `hive.metastore.uris` 指定 Thrift 服务地址,允许多客户端共享元数据服务。 - **Guava 版本兼容性**:Hadoop 与 Hive 使用不同版本 Guava 时需统一版本,防止 NoSuchMethodError 等异常。 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值