广东省第二届职业技能大赛大数据技术与应用模块A

Hadoop完全分布式配置文件

注:这里的版本hadoop为2.7.7,hive为2.3.4,mysql为5.7
(这里可以配置文件可以单独使用为伪分布)

管理员应该使用

etc/hadoop/hadoop-env.sh

和可选的

etc/hadoop/mapred-env.shetc/hadoop/yarn-env.sh脚本

来对 Hadoop 守护进程的进程环境进行站点特定的定制。

至少,

您必须指定JAVA_HOME以便在每个远程节点上正确定义它。

本节涉及要在给定配置文件中指定的重要参数

1、 core-site.xml 文件

<configuration>
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://master:8020</value>
</property>

<property>
    <name>hadoop.tmp.dir</name>
    <value>/hadoop/tmp</value>
</property>
</configuration>

2、 hdfs-site.xml文件

<configuration>
<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>master:50090</value>
</property>

<property>
    <name>dfs.namenode.http-address</name>
    <value>master:50070</value>
</property>

<property>
    <name>dfs.namenode.name.dir</name>
    <value>/hadoop/name</value>
</property>

<property>
    <name>dfs.datanode.data.dir</name>
    <value>/hadoop/data</value>
</property>

<property>
    <name>dfs.replication</name>
    <value>3</value>
</property>

<property>
    <name>dfs.permissions</name>
    <value>true</value>
</property>
</configuration>

3、 yarn-site.xml 文件

<configuration>
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>master</value>
</property>

<property>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>master:8088</value>
</property>

<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
</configuration>

4、 mapred-site.xml 文件

<configuration>
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>

<property>
    <name>mapreduce.jobhistory.address</name>
    <value>master:10020</value>
</property>

<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>master:19888</value>
</property>
</configuration>

5、 slaves 文件

master
slave1
slave2

解题思路

修改主机的名字、免密服务、网络映射和防火墙设置

1、修改用户名字

[root@master ~]# vi /etc/hostname

删除内容后改为

你需要的名字(方便记忆),修改后重启机器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KGGicmVz-1640011246739)(C:\Users\Mzj\AppData\Roaming\Typora\typora-user-images\1640001303908.png)]

2、免密服务

1、生成密钥

[root@master ~]# ssh-keygen

第一次直接回车三次

其他情况具体分析

进入到 { ~/.ssh} 目录

[root@master ~]# cd ~/.ssh

2、拷贝公钥

[root@master .ssh]# cat id_rsa.pub >> authorized_keys
[root@master .ssh]# scp authorized_keys 主机名字@IP地址:~/.ssh

注:每一台机器都要输入生成密钥命令。第一台机器拷贝公钥后,发送到下一台,最后一台拷贝完公钥后,再把公钥分发所有的机器。

3、 网络映射

[root@master .ssh]# vi /etc/hosts

添加一下内容(在文本最下面,有多少个免密就写多少个)
伪分布就写localhost

IP地址 主机名字

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OelAcxHg-1640011246740)(C:\Users\Mzj\AppData\Roaming\Typora\typora-user-images\1640002859611.png)]

3、防火墙设置

第一种:

禁用防火墙

[root@master ~]# systemctl stop firewalld
[root@master ~]# systemctl disable firewalld

第二种:

# 添加端口
[root@master ~]# firewall-cmd --add-port=10050/tcp --permanent
# (永久生效,没有此参数重启后失效)
# 重新载入防火墙
[root@master ~]# firewall-cmd --reload
# 查看端口是否开启
[root@master ~]# firewall-cmd --list-all

安装hadoop生态文件

1、解压

有什么需要的就解压什么

[root@master h3cu_2021]# tar xf hadoop-2.7.7.tar.gz -C /usr/local/src/
[root@master h3cu_2021]# tar xf jdk-8u144-linux-x64.tar.gz -C /usr/local/src/

2、配置环境变量

[root@master h3cu_2021]# vi /etc/profile

在文本最下面添加变量

export JAVA_HOME=/usr/local/src/java
export HADOOP_HOME=/usr/local/src/hadoop
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:

保存退出

3、更新环境变量

[root@master h3cu_2021]# . /etc/profile

配置文件设置

根据上面的Hadoop配置文件添加内容

启动hadoop准备

格式化namenode

[root@master h3cu_2021]# hdfs namenode -format

启动hadoop

[root@master h3cu_2021]# start-all.sh

启动historyserver(这个可以看到历史任务)

[root@master h3cu_2021]# mr-jobhistory-daemon.sh start historyserver

查看节点

[root@master h3cu_2021]# jps

master:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BH45yYfh-1640011246740)(C:\Users\Mzj\AppData\Roaming\Typora\typora-user-images\1640003644058.png)]

slave1、slave2:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y7Bqso7a-1640011246741)(C:\Users\Mzj\AppData\Roaming\Typora\typora-user-images\1640003670312.png)]

开机的自启动

1、添加hadoop服务

[root@master h3cu_2021]# vi /usr/lib/systemd/system/hadoop.service
[Unit]
Description=hadoop
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/src/hadoop/sbin/start-all.sh
ExecStop=/usr/local/src/hadoop/sbin/stop-all.sh
PrivateTmp=true
[Install]
WantedBy=multi-user.target
[root@master system]# chmod +x hadoop.service # 添加权限
[root@master system]# systemctl start hadoop # 启动
[root@master system]# systemctl stop hadoop # 停止
[root@master system]# systemctl enable hadoop # 自启动

Mysql安装配置

1、安装mysql

这里基于rpm安装

[root@master mysql-5.7.18]# rpm -ivh *.rpm --nodeps --force

2、做好环境配置

启动后自动会初始化密码

[root@master mysql-5.7.18]# systemctl start mysqld

这里顺便添加自启动

[root@master mysql-5.7.18]# systemctl enable mysqld

3、查看密码

[root@master mysql-5.7.18]# grep 'temporary password' /var/log/mysqld.log
2021-12-20T13:02:34.360237Z 1 [Note] A temporary password is generated for root@localhost: lxBDI&H:u1qe

4、登录mysql

[root@master mysql-5.7.18]# mysql -uroot -p

输入查询到的密码

修改密码后才能正常使用

mysql> alter user 'root'@'localhost' identified by 'Mzj_311';

5、配置好hive需要用的设置

查看当前编码

mysql> show variables like 'character_set_database';       

创建用户

mysql> create user 'hive'@'localhost' identified by 'Hive_311'; 

创建数据库

mysql> create database contest charset=utf8;

赋予权限hive用户权限

mysql> grant all privileges on contest.* to 'hive'@'%' identified by 'Hive_311';

刷新权限,将以上操作生效

mysql> flush privileges;

单机hive

1、解压

[root@master h3cu_2021]# tar xf apache-hive-2.3.9-bin.tar.gz -C /usr/local/src/

2、环境配置

设置环境变量

[root@master h3cu_2021]# vi /etc/profile

在最后添加下面内容

export HIVE_HOME=/usr/local/src/hive
export PATH=$PATH:$HIVE_HOME/bin:

刷新变量

[root@master h3cu_2021]# . /etc/profile

删除一个jline包(hadoop,这里有可能有一些版本的没有)

[root@master h3cu_2021]# rm -rf /usr/local/src/hadoop/share/hadoop/yarn/lib/

3、测试启动

初始化元数据

[root@master hive]# schematool -dbType derby -initSchema 

启动hive

[root@master hive]# hive

集成hive

1、配置hive连接mysql设置

直接新建修改

[root@master conf]# vi /usr/local/src/hive/conf/hive-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>

<property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://localhost:3306/contest?createDatabaseIfNotExist=true&amp;serverTimezone=GMT&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>hive</value>
</property>

<property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>密码</value>
</property>
</configuration>                

这里可以把log4j打开(也可以不打开)

[root@master conf]# vi hive-log4j2.properties

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vICbTCOc-1640011246741)(C:\Users\Mzj\AppData\Roaming\Typora\typora-user-images\1640009854788.png)]

2、初始化hivemysql

找到mysql连接jar包,复制到hive/lib目录下

[root@master h3cu_2021]# cp mysql-connector-java-5.1.47.jar /usr/local/src/hive/lib/

初始化mysql

[root@master conf]# schematool -initSchema -dbType mysql

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kGPH7CXe-1640011246742)(C:\Users\Mzj\AppData\Roaming\Typora\typora-user-images\1640010176727.png)]

3、登录beeline,查看mysql数据表

进入到hive目录下

[root@master conf]# hiveserver2 &

运行了hiveserver2,不要关闭,然后在另一个会话窗口打开,也可以后台运行

[root@master conf]# beeline

输入beeline后,在当前的beeline界面输入

!connect jdbc:mysql://localhost:3306

然后输入用户名

hive

在输入用户名的当前密码

Hive_311

然后就登录了mysql命令行

接下来就可以使用mysql命令了。

1]# cp mysql-connector-java-5.1.47.jar /usr/local/src/hive/lib/


初始化mysql

```shell
[root@master conf]# schematool -initSchema -dbType mysql

进入到hive目录下

[root@master conf]# hiveserver2 &

运行了hiveserver2,不要关闭,然后在另一个会话窗口打开,也可以后台运行

[root@master conf]# beeline

输入beeline后,在当前的beeline界面输入

!connect jdbc:mysql://localhost:3306

然后输入用户名

hive

在输入用户名的当前密码

Hive_311

然后就登录了mysql命令行

接下来就可以使用mysql命令了。

在这里插入图片描述

  • 13
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

伦杰周

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值