Hadoop配置基于阿里云服务器

注:本文档配套一键式Hadoop集群部署(demo)已经开源一键式部署

一键部署目前的bug

需要提前手动安装java

部分xml文件存在两个configuration,需要手动删除空的那个

namenode的/etc/hosts需要手动创建localhost,否则在docker创建时指定的名字可能会导致不可预料的错误

正常配置流程

三个服务器已经买好了
买好三个服务器
在这里插入图片描述
Xshell上配置公网IP,设定namenode以及两个datanode

已经配置完毕

1.正式开始服务器配置

1.1 配置主机名

vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=namenode 
NETWORKING=yes
HOSTNAME=datanode1 
NETWORKING=yes
HOSTNAME=datanode2 

安装java

基于centos系统

yum install java -y

配置hosts

vim /etc/hosts

修改为对应的外网

xxx  namenode
xxx datanode1
xxx datanode2

SSH免密登录

每个节点都需要操作!!!

首先生成密钥

ssh-keygen

其次传输密钥到所有的连接节点

ssh-copy-id namenode1
ssh-copy-id namenode2
ssh-copy-id datanode

Hadoop安装与配置

配置集群

安装Hadoop,建议从清华园

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

针对于"内网"的兄弟们,可以使用清华源

wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/stable/hadoop-3.3.6.tar.gz

解压压缩包(名字可以用ls命令获得)

tar- zxvf hadoop.tar.gz
cd hadoop.xxx

进入到Hadoop配置文件
配置hadoop_env.sh

cd ~/hadoop-3.3.6/etc/hadoop/
vim hadoop-env.sh
# add
export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk-1.8.0.312.b07-2.el8_5.x86_64

配置core-site.xml
每个节点都需要做,每个节点的值都指向namenode

mkdir -p /var/hadoop
vim core-site.xml
# add
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://namenode:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/var/hadoop</value>
    </property>
</configuration>

配置hdfs-site.xml

vim hdfs-site.xml
# add
<configuration>
<property>
        <name>dfs.namenode.http-address</name>
        <value>namenode:50070</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>namenode:50090</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <property>
 <name>dfs.client.use.datanode.hostname</name>
 <value>true</value>
 <description>only cofig in clients</description>
</property>
</configuration>

配置YARN集群

配置mapred.xml.template文件

cp mapred-site.xml.template mapred-site.xml #有时不用
vim mapred-site.xml
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
</property>
<property>
  <name>yarn.app.mapreduce.am.env</name>
  <value>HADOOP_MAPRED_HOME=/root/hadoop</value>
</property>
<property>
  <name>mapreduce.map.env</name>
  <value>HADOOP_MAPRED_HOME=/root/hadoop</value>
</property>
<property>
  <name>mapreduce.reduce.env</name>
  <value>HADOOP_MAPRED_HOME=/root/hadoop</value>
</property>
</configuration>

配置yarn-site.xml

vim yarn-site.xml
<configuration>

<!-- Site specific YARN configuration properties -->
<property>
        <name>yarn.resourcemanager.hostname</name>
        <value>namenode</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
<property>
        <name>yarn.nodemanager.resource.cpu-vcores</name>
        <value>2</value>
</property>
<property>
    <name>yarn.nodemanager.resource.memory-mb</name>
    <value>2048</value>
    <discription>内存,单位MB</discription>
</property>
</configuration>

JAVA环境变量

如果按照yum安装的java,则可以直接在/usr/lib/jvm/jre-xxx下找到对应的jdk

在/etc/profile中加入如下配置(注意版本)

export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk-1.8.0.312.b07-2.el8_5.x86_64
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export HADOOP_HOME="/root/hadoop-3.3.6"
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

然后保存修改

source /etc/profile

集群启动与测试

格式化namenode 只需要在namenode上进行

./bin/hdfs namenode -format

这个部分经常会遇到问题

  1. 当出现ERROR: Cannot execute /usr/local/Hadoop/libexec/hdfs-config.sh
vim /etc/profile
# 修改其中的hadoop_home环境变量为需要的例如
/root/hadoop-xxx
  1. 当出现xxx is not excuete
    检查xml文件(etc目录下)是否有#的注释

启动

首先需要解锁shell中的部分锁定操作‘

vim ./etc/hadoop/hadoop-env.sh
# add
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

需要为每个节点配置其角色,否则其无法运作(网络,自己配置自己)

ssh-copy-id localhost

正式启动

./sbin/start-dfs.sh
./sbin/stop-dfs.sh

验证

./bin/hdfs dfsadmin -report

在这里插入图片描述
当显示存活的节点为3,说明配置完成

可视化

打开可视化端口50070/50090

通过

curl http://公网IP:50070

注意,需要现在阿里云的安全组打开对应的端口

启动YARN

./sbin/start-yarn.sh

看YARN状态

.bin/yarn node -list

Spark配置

版本需要十分注意,注意所有的环境都必须完全匹配,否则将导致无法解决且无法预料的错误!
hadoop 3.3.6
python 3.7.2
spark 3.3.4

python安装

可以使用直接make好的python3.7包

也可以手动安装,借鉴:

https://www.cnblogs.com/LemonSqueezz/p/14308729.html

ln -sf /usr/bin/Python-3.7.2/python /usr/bin/python3

当master安装完之后,可以直接传输过去

Spark配置

可以借鉴

https://blog.csdn.net/GotFull/article/details/123436594

但是原文是基于Spark 3.0的配置,虽然目前未发现bug,但不排除未来会遇到新的问题

Mysql配置

从官网下载Mysql,版本需要自行选择
在这里插入图片描述
将它分发到多个服务器~/source/Package
并创建mysql专属的文件夹/root/platform/mysql
在这里插入图片描述

tar -xvf /root/source/Package/mysql-8.3.0-1.el8.x86_64.rpm-bundle.tar -C /root/platform/mysql

安装sql需要的依赖

yum -y install libaio
yum -y install libncurses*
yum -y install perl perl-devel

在目标文件夹获得许多文件.rpm,分别安装它们:

rpm -ivh ${sql_root}/mysql-community-common-8.3.0-1.el8.x86_64.rpm
rpm -ivh ${sql_root}/mysql-community-client-plugins-8.3.0-1.el8.x86_64.rpm
rpm -ivh ${sql_root}/mysql-community-libs-8.3.0-1.el8.x86_64.rpm
rpm -ivh ${sql_root}/mysql-community-client-8.3.0-1.el8.x86_64.rpm
rpm -ivh ${sql_root}/mysql-community-icu-data-files-8.3.0-1.el8.x86_64.rpm
rpm -ivh ${sql_root}/mysql-community-server-8.3.0-1.el8.x86_64.rpm

注意,在这里很容易出现缺少某个rpm依赖,根据报错额外添加这些rpm即可

启动mysql

systemctl start mysqld.service

查看密码并隐式的将它赋值给变量

password_init=$(cat /var/log/mysqld.log | grep password | awk -F': ' '{print $2}')

重新定义密码

mysql -u root -p
ALTER USER 'root'@'%' IDENTIFIED BY 'password';

基础命令

systemctl stop mysqld
systemctl status mysqld
systemctl start mysqld

% 设置开机自启
systemctl enable mysqld
% Check
systemctl list-unit-files | grep mysqld

下载Hive以及驱动

wget https://mirrors.bfsu.edu.cn/apache/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz

https://mvnrepository.com/artifact/mysql/mysql-connector-java/5.1.37

解压到目的地

tar -zxvf ~/source/Package/apache-hive-3.1.2-bin.tar.gz -C  /root/platform/hive

添加JDBC到hive目录

# 上传mysql-connector-java-5.1.38.jar
cd /opt/server/apache-hive-3.1.2-bin/lib
  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值