CentOS 7 Hadopp 3.1.0集群搭建

本文详细介绍如何在三台服务器上搭建Hadoop集群,包括系统准备、JDK安装与配置、Hadoop安装与配置等步骤,并提供了启动集群及验证的方法。

一、系统准备

1、准备三台服务器修改/etc/hosts文件,加入下面配置

172.16.4.13    master
172.16.4.14    slave1
172.16.4.15    slave2

然后拷贝hosts到其他两台

[root@localhost ~]$ scp /etc/hosts root@slave1:/etc
[root@localhost ~]$ scp /etc/hosts root@slave2:/etc

2、添加用户

[root@localhost ~]$ useradd admin
[root@localhost ~]$ passwd admin

3、添加文件夹

[root@localhost ~]$ mkdir /opt/module

4、修改文件夹所属

[root@localhost ~]$ chown admin:admin /opt/module

5、切换admin登录

[root@localhost ~]$ su admin

6、ssh名密码登录

[admin@master ~]$ ssh-keygen -t rsa

  这里一路回车即可,不用输入任何内容

  然后将密钥文件拷贝到另外两台

[admin@master ~]$ ssh-copy-id master
[admin@master ~]$ ssh-copy-id slave1
[admin@master ~]$ ssh-copy-id slave2

   再配置另外两台

[admin@slave1 ~]$ ssh-keygen -t rsa
[admin@slave1 ~]$ ssh-copy-id master
[admin@slave1 ~]$ ssh-copy-id slave1
[admin@slave1 ~]$ ssh-copy-id slave2
[admin@slave2 ~]$ ssh-keygen -t rsa
[admin@slave2 ~]$ ssh-copy-id master
[admin@slave2 ~]$ ssh-copy-id slave1
[admin@slave2 ~]$ ssh-copy-id slave2

  注意:这里第一台必须以admin用户登录,因为接下来hadoop集群运行需要admin这个用户

二、开始搭建

1、安装JDK配置JDK环境变量

    这方面安装网络上很多,基本都行得能,在这里就不重复讲解。

2、Hadoop安装

    下载地址:点击打开链接,这里下载3.1.0版本来安装

    解压下载好的 

[admin@master ~]$ tar -zxvf hadoop-3.1.0.tar.gz

    解压后的文件移到/opt下

[admin@master ~]$ mv hadoop-3.1.0 /opt/module/hadoop

3、配置Hadoop

    进入配置文件夹

[admin@master ~]$ cd /opt/moudule/hadoop/etc/hadoop

    分别配置hadoop-env.sh、yarn-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml这6个文件

    hadopp-env.sh与yarn-env.sh都增加上:

[admin@master hadoop]$ vim hadoop-env.sh
[admin@master hadoop]$ vim yarn-env.sh
export JAVA-HOME=/usr/lib/java/jdk1.8.0_161

   core-site.xml

[admin@master hadoop]$ vim core-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>

    <!-- 指定HDFS中NameNode的地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>

    <!-- 指定hadoop运行时产生文件的存储目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/module/hadoop/data/tmp</value>
    </property>
</configuration>

    hdfs-site.xml

[admin@master hadoop]$ vim hdfs-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>

    <!-- 设置namenode的http通讯地址 -->
    <property>
        <name>dfs.namenode.http-address</name>
        <value>master:9870</value>
    </property>

    <!-- 设置dfs副本数,不设置默认是3个   -->
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <property>
        <name>dfs.blocksize</name>
        <value>268435456</value>
    </property>
    <property>
        <name>dfs.namenode.handler.count</name>
        <value>100</value>
    </property>

    <!-- 设置secondname的端口   -->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>slave1:50090</value>
    </property>

    <!-- 设置namenode存放的路径 -->
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/opt/hadoop/data/name</value>
    </property>

    <!-- 设置datanode存放的路径 -->
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/opt/hadoop/data/datanode</value>
    </property>
    <property>
        <name>dfs.permissions</name>
        <value>false</value>
    </property>
</configuration>

    mapred-site.xml

[admin@master hadoop]$ vim mapred-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <!-- 指定mr运行在yarn上 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.application.classpath</name>
        <value>
            /opt/hadoop/etc/hadoop,
            /opt/hadoop/share/hadoop/common/*,
            /opt/hadoop/share/hadoop/common/lib/*,
            /opt/hadoop/share/hadoop/hdfs/*,
            /opt/hadoop/share/hadoop/hdfs/lib/*,
            /opt/hadoop/share/hadoop/mapreduce/*,
            /opt/hadoop/share/hadoop/mapreduce/lib/*,
            /opt/hadoop/share/hadoop/yarn/*,
            /opt/hadoop/share/hadoop/yarn/lib/*
        </value>
    </property>
</configuration>

    yarn-site.xml

[admin@master hadoop]$ vim yarn-site.xml
<?xml version="1.0"?>
<configuration>
    <!-- reducer获取数据的方式 -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>node1</value>
    </property>
</configuration>

    创建slaves文件

[admin@master hadoop]$ vim slaves

    内容填写

slave1
slave2

   创建workers文件

[admin@master hadoop]$ vim workers

    内容填写

slave1
slave2

    最后把配置好的hadoop拷贝到其他两台上

[admin@master hadoop]$ cd /opt
[admin@master opt]$ scp -r module admin@slave1:`pwd`
[admin@master opt]$ scp -r module admin@slave2:`pwd`

   注意:这里的`pwd`不是用单引号,是用数字1键左边的那个上顿号

4、配置系统环境变量

[root@master etc]$ vim /etc/profile

    在结尾加上

export HADOOP_HOME=/opt/module/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

   然后其他两台也一样的配置环境变量,或直接从master拷贝

[root@master etc]$ scp profile root@slave1:`pwd`
[root@master etc]$ scp profile root@slave2:`pwd`

 

三、集群启动

    1、第一次启动hdfs需要先格式化

[admin@master ~]$ hdfs namenode -format

    2、启动

[admin@master ~]$ start-dfs.sh
[admin@slave1 ~]$ start-yarn.sh

    这里的yarn是根据hdfs-site.xml 的dfs.namenode.secondary.http-address配置值来决定在哪里启动

   3、启动成功后分别在各台服务器上用jps命令查看

    master

[admin@master ~]$ jps
4178 Jps
3646 NameNode

    slave1

[admin@salve1 ~]$ jps
4104 DataNode
5339 Jps
4223 SecondaryNameNode

    slave2

[admin@slave2 ~]$ jps
3062 Jps
2654 DataNode

4、web端查看

    打开浏览器输入http://master服务器的IP:9870,3.1之后这里的端口号由原来的50070改为9870

### CentOS 7搭建 Hive 集群的配置步骤 #### 准备工作 在开始搭建 Hive 集群前,需确认 Hadoop 已经成功部署并正常运行。Hive 是构建于 Hadoop 之上的一层数据仓库工具,因此其依赖于 Hadoop 的分布式存储和计算能力[^3]。 --- #### 安装 MySQL 数据库作为元数据库 为了支持 Hive 的元数据管理功能,通常会使用外部关系型数据库(如 MySQL)来存储元数据。以下是安装 MySQL 并完成基本配置的过程: 1. **下载并安装 MySQL** 使用 `yum` 命令安装 MySQL: ```bash sudo yum install mysql-server -y ``` 2. **启动 MySQL 服务** 启动 MySQL 服务并将它设置为开机自启: ```bash systemctl start mysqld systemctl enable mysqld ``` 3. **修改默认密码策略** 编辑 MySQL 配置文件 `/etc/my.cnf.d/mysql-clients.cnf` 或者 `/etc/my.cnf` 文件,添加以下内容以调整字符集和支持中文编码: ```ini [mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_general_ci ``` 修改完成后重启 MySQL 服务: ```bash systemctl restart mysqld ``` 4. **初始化 root 用户密码** 登录 MySQL 控制台并重设 root 密码: ```sql ALTER USER &#39;root&#39;@&#39;localhost&#39; IDENTIFIED BY &#39;your_password&#39;; FLUSH PRIVILEGES; ``` 5. **创建 Hive 元数据库用户** 创建一个新的数据库用于存储 Hive 的元数据,并赋予访问权限: ```sql CREATE DATABASE hive_db CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; GRANT ALL PRIVILEGES ON hive_db.* TO &#39;hive_user&#39;@&#39;%&#39; IDENTIFIED BY &#39;password&#39;; FLUSH PRIVILEGES; ``` 以上操作完成了 MySQL 的基础配置以及与 Hive 远程连接的支持[^2]。 --- #### 下载并解压 Hive 软件包 1. **获取 Hive 安装包** 访问 Apache 官方网站或者镜像站点下载最新版本的 Hive: ```bash wget https://downloads.apache.org/hive/hive-3.1.0/apache-hive-3.1.0-bin.tar.gz tar zxvf apache-hive-3.1.0-bin.tar.gz mv apache-hive-3.1.0-bin /opt/apps/hive3.1 ``` 2. **编辑环境变量** 将 Hive 添加至系统的 PATH 变量中以便全局调用: ```bash echo "export HIVE_HOME=/opt/apps/hive3.1" >> ~/.bashrc echo "export PATH=\$PATH:\$HIVE_HOME/bin" >> ~/.bashrc source ~/.bashrc ``` --- #### 配置 Hive 参数 进入 Hive 的配置目录并创建必要的 XML 文件: ```bash cd /opt/apps/hive3.1/conf/ cp hive-default.xml.template hive-site.xml vim hive-site.xml ``` 在 `hive-site.xml` 中加入以下关键参数: ```xml <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://<MYSQL_HOST>:3306/hive_db?createDatabaseIfNotExist=true&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>hive_user</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>password</value> </property> ``` 上述配置指定了 Hive 如何通过 JDBC 接口连接到 MySQL 数据库中的元数据表[^4]。 --- #### 初始化 Hive 表结构 执行以下命令加载初始 SQL 脚本以建立所需的元数据表格: ```bash schematool -dbType mysql -initSchema ``` 如果一切顺利,则表示 Hive 成功关联到了指定的 MySQL 实例上。 --- #### 测试 Hive 功能 验证 Hive 是否能够正常使用: ```bash hive CREATE TABLE test_table (id INT, name STRING); INSERT INTO test_table VALUES(1,&#39;Alice&#39;); SELECT * FROM test_table; ``` 当查询返回预期的结果时,说明整个集群已经可以投入使用了[^5]。 --- ### 注意事项 - 确认防火墙规则允许节点间通信。 - 如果遇到任何错误日志,请仔细检查路径、用户名及密码是否匹配实际设定情况。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值