hadoop3.1.3安装

1.下载

Hadoop下载地址:点击此处
下载完成后把hadoop-3.1.3.tar.gz导入到opt目录下面的software文件夹(自定义目录)下面

1.1解压文件

# 进入到安装目录中
cd /opt/software/
# 解压该文件
tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/
# 查看是否解压成功
ls /opt/module/
# 获取安装路径
pwd
/opt/module/hadoop-3.1.3

1.2 添加hadoop环境变量

# 创建环境变量文件
sudo vim /etc/profile.d/my_env.sh
# 在my_env.sh文件末尾添加如下内容:(shift+g)
#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
# 保存后推出
:wq
# 让修改后的文件生效
source /etc/profile
# 测试是否安装成功
hadoop version
Hadoop 3.1.3
# 如果hadoop命令不能用可以重启试试
sudo reboot

1.3 hadoop各个目录介绍

(1)bin目录:存放对Hadoop相关服务(HDFS,YARN)进行操作的脚本
(2)etc目录:Hadoop的配置文件目录,存放Hadoop的配置文件
(3)lib目录:存放Hadoop的本地库(对数据进行压缩解压缩功能)
(4)sbin目录:存放启动或停止Hadoop相关服务的脚本
(5)share目录:存放Hadoop的依赖jar包、文档、和官方案例

2 Hadoop集群安装

Hadoop运行模式包括:本地模式伪分布式模式以及完全分布式模式
Hadoop官方网站:添加链接描述
本章主要介绍完全分布式模式安装,也就是集群安装。

2.1 环境准备

准备3台客户机(关闭防火墙、静态ip、主机名称)
安装JDK并配置环境便变量
安装Hadoop并配置环境变量

2.2 编写分发脚本

#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
  echo Not Enough Arguement!
  exit;
fi
#2. 遍历集群所有机器
for host in host1 host2 host3
do
  echo ====================  $host  ====================
  #3. 遍历所有目录,挨个发送
  for file in $@
  do
    #4. 判断文件是否存在
    if [ -e $file ]
    then
      #5. 获取父目录
      pdir=$(cd -P $(dirname $file); pwd)
      #6. 获取当前文件的名称
      fname=$(basename $file)
      ssh $host "mkdir -p $pdir"
      rsync -av $pdir/$fname $host:$pdir
    else
      echo $file does not exists!
    fi
  done
done
# 添加可执行权限
chmod +x xsync
# 将脚本复制到/bin中,以便全局调用
sudo cp xsync /bin/

2.3 SSH无密登录配置

# 生成公钥和私钥
ssh-keygen -t rsa
然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
# 使用ssh-copy-id命令可以把本地的ssh公钥文件安装到远程主机对应的账户中
ssh-copy-id host1
ssh-copy-id host2
ssh-copy-id host3
# 需要给自己分一次 然后在其他机器上执行一遍同样的步骤

2.4 集群配置

2.4.1集群部署规划

**注意**:NameNode和SecondaryNameNode不要安装在同一台服务器
**注意**:ResourceManager也很消耗内存,不要和NameNode、SecondaryNameNode配置在同一台机器上。
host1host2host3
HDFSNameNode DataNodeDataNodeSecondaryNameNode DataNode
YARNNodeManagerResourceManager NodeManagerNodeManager

2.4.2 集群配置

配置core-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
	<!-- 指定NameNode的地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://host1:9820</value>
</property>
<!-- 指定hadoop数据的存储目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/module/hadoop-3.1.3/data</value>
</property>

<!-- 配置HDFS网页登录使用的静态用户为hadoop-->
    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>hadoop</value>
</property>

<!-- 配置该hadoop(superUser)允许通过代理访问的主机节点 -->
    <property>
        <name>hadoop.proxyuser.hadoop.hosts</name>
        <value>*</value>
</property>
<!-- 配置该hadoop(superUser)允许通过代理用户所属组 -->
    <property>
        <name>hadoop.proxyuser.hadoop.groups</name>
        <value>*</value>
</property>
<!-- 配置该hadoop(superUser)允许通过代理的用户-->
    <property>
        <name>hadoop.proxyuser.hadoop.groups</name>
        <value>*</value>
</property>

</configuration>
配置hdfs-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
	<!-- nn web端访问地址-->
	<property>
        <name>dfs.namenode.http-address</name>
        <value>host1:9870</value>
    </property>
	<!-- 2nn web端访问地址-->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>host3:9868</value>
    </property>
</configuration>
配置yarn-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
	<!-- 指定MR走shuffle -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
</property>
<!-- 指定ResourceManager的地址-->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>host2</value>
</property>
<!-- 环境变量的继承 -->
    <property>
        <name>yarn.nodemanager.env-whitelist</name>
        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
<!-- yarn容器允许分配的最大最小内存 -->
    <property>
        <name>yarn.scheduler.minimum-allocation-mb</name>
        <value>512</value>
    </property>
    <property>
        <name>yarn.scheduler.maximum-allocation-mb</name>
        <value>4096</value>
</property>
<!-- yarn容器允许管理的物理内存大小 -->
    <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>4096</value>
</property>
<!-- 关闭yarn对物理内存和虚拟内存的限制检查 -->
    <property>
        <name>yarn.nodemanager.pmem-check-enabled</name>
        <value>false</value>
    </property>
    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
    </property>
</configuration>
配置mapred-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
	<!-- 指定MapReduce程序运行在Yarn上 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>
配置
# 在底部增加以下内容:
export HDFS_NAMENODE_USER=hadoop
export HDFS_DATANODE_USER=hadoop
export HDFS_SECONDARYNAMENODE_USER=hadoop
export YARN_RESOURCEMANAGER_USER=hadoop
export YARN_NODEMANAGER_USER=hadoop
# 修改以下配置
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export JAVA_HOME=/opt/module/jdk-1.8.0

2.4.3分发配置文件

xsync /opt/module/hadoop-3.1.3/etc/hadoop/

2.4.4 配置workers

vim /opt/module/hadoop-3.1.3/etc/hadoop/workers
# 插入一下内容
host1
host2
host3
# 分发配置文件
xsync /opt/module/hadoop-3.1.3/etc

2.5 启动集群

如果集群是第一次启动,需要在host1节点格式化NameNode(注意格式化NameNode,会产生新的集群id,导致NameNode和DataNode的集群id不一致,集群找不到已往数据。如果集群在运行过程中报错,需要重新格式化NameNode的话,一定要先停止namenode和datanode进程,并且要删除所有机器的data和logs目录,然后再进行格式化。)

hdfs namenode -format
# 启动HDFS
sbin/start-dfs.sh
# 在配置了ResourceManager的节点(host2)启动YARN
sbin/start-yarn.sh

2.5.1 查看web端

HDFS:http://host2:9870
YARN:http://host3:8088
需要在本机中配置hosts,或者输入ip地址。

2.6 关闭集群

2.6.1 各个服务组件逐一启动/停止

# 分别启动/停止HDFS组件
hdfs --daemon start/stop namenode/datanode/secondarynamenode
# 启动/停止YARN
yarn --daemon start/stop  resourcemanager/nodemanager

2.6.2 各个模块分开启动/停止(配置ssh是前提)常用

# 整体启动/停止HDFS
start-dfs.sh/stop-dfs.sh
# 整体启动/停止YARN
start-yarn.sh/stop-yarn.sh

2.6.3 集群启停脚本

# hadoop集群启停脚本(包含hdfs,yarn,historyserver):myhadoop.sh
#!/bin/bash
if [ $# -lt 1 ]
then
    echo "No Args Input..."
    exit ;
fi
case $1 in
"start")
        echo " =================== 启动 hadoop集群 ==================="

        echo " --------------- 启动 hdfs ---------------"
        ssh host1 "/opt/module/hadoop-3.1.3/sbin/start-dfs.sh"
        echo " --------------- 启动 yarn ---------------"
        ssh host2 "/opt/module/hadoop-3.1.3/sbin/start-yarn.sh"
        echo " --------------- 启动 historyserver ---------------"
        ssh host3 "/opt/module/hadoop-3.1.3/bin/mapred --daemon start historyserver"
;;
"stop")
        echo " =================== 关闭 hadoop集群 ==================="

        echo " --------------- 关闭 historyserver ---------------"
        ssh host1 "/opt/module/hadoop-3.1.3/bin/mapred --daemon stop historyserver"
        echo " --------------- 关闭 yarn ---------------"
        ssh host2 "/opt/module/hadoop-3.1.3/sbin/stop-yarn.sh"
        echo " --------------- 关闭 hdfs ---------------"
        ssh host3 "/opt/module/hadoop-3.1.3/sbin/stop-dfs.sh"
;;
*)
    echo "Input Args Error..."
;;
esac
Hadoop 3.1.3安装MySQL数据库的步骤如下: 1. **安装MySQL服务器**: 首先,确保你的系统已经安装了MySQL服务器。如果还没有安装,可以通过以下命令进行安装: ```bash sudo apt-get update sudo apt-get install mysql-server ``` 2. **配置MySQL**: 安装完成后,需要对MySQL进行一些基本配置。运行以下命令来启动MySQL安全安装向导: ```bash sudo mysql_secure_installation ``` 按照提示设置root用户密码,并进行其他安全配置。 3. **创建Hadoop用户和数据库**: 登录到MySQL,并创建一个用于Hadoop的数据库和用户: ```bash sudo mysql -u root -p ``` 在MySQL提示符下,执行以下命令: ```sql CREATE DATABASE hadoop; CREATE USER &#39;hadoopuser&#39;@&#39;localhost&#39; IDENTIFIED BY &#39;password&#39;; GRANT ALL PRIVILEGES ON hadoop.* TO &#39;hadoopuser&#39;@&#39;localhost&#39;; FLUSH PRIVILEGES; EXIT; ``` 4. **安装MySQL JDBC驱动**: Hadoop需要MySQL的JDBC驱动来连接MySQL数据库。下载并安装JDBC驱动: ```bash wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.23.tar.gz tar -zxvf mysql-connector-java-8.0.23.tar.gz sudo mkdir -p /usr/share/java sudo cp mysql-connector-java-8.0.23/mysql-connector-java-8.0.23.jar /usr/share/java/ sudo ln -s /usr/share/java/mysql-connector-java-8.0.23.jar /usr/share/java/mysql-connector-java.jar ``` 5. **配置Hadoop**: 编辑Hadoop的配置文件`core-site.xml`,添加MySQL JDBC驱动路径: ```xml <property> <name>hadoop.tmp.dir</name> <value>/hadoop/data</value> </property> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> ``` 编辑`hdfs-site.xml`,配置HDFS: ```xml <property> <name>dfs.replication</name> <value>1</value> </property> ``` 编辑`mapred-site.xml`,配置MapReduce: ```xml <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> ``` 编辑`yarn-site.xml`,配置YARN: ```xml <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> ``` 6. **启动Hadoop**: 启动Hadoop集群: ```bash start-dfs.sh start-yarn.sh ``` 7. **验证安装**: 验证MySQL和Hadoop是否安装成功: ```bash mysql -u hadoopuser -p ``` 输入密码后,登录到MySQL,查看数据库: ```sql SHOW DATABASES; ``` 退出MySQL: ```sql EXIT; ``` 使用Hadoop命令验证Hadoop是否正常运行: ```bash hdfs dfs -ls / ``` 通过以上步骤,你应该能够在Hadoop 3.1.3中成功安装并配置MySQL数据库。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值