ToB企服应用市场:ToB评测及商务社交产业平台
标题:
0底子学习-Hadoop
[打印本页]
作者:
张春
时间:
2024-8-8 06:20
标题:
0底子学习-Hadoop
一、Linux 底子
1. 计算机操作系统
操作系统发展至今,种类繁多,可以根据应用的差异领域举行划分
桌面操作系统
服务器操作系统
嵌入式操作系统
移动装备操作系统
2. VMware的使用
3. centOS 7 的安装(部分)
点击创建假造机选择centos7 后续根据情况选择,修改举行文件
配置静态 IP
4. SSH协议与长途访问
使用 xshell 连接
安装 rz => 文件的上传下载
yum -y install lrzsz
复制代码
输入 rz 即可开启窗口从本地上传至linux中
输出
sz+文件名
即可从linux文件下载到本地
5. Linux底子下令
5.1 文件系统
5.2 文件操作下令
5.3 搜索下令
快捷方式
5.4 打包解压
5.5 文本编辑器
6. 用户和权限
文件权限总体上分为三类
读(read)权限
写(write)权限
实行(execute)权限
7. 系统管理
8. 大数据集群搭建
8.1 克隆和修改IP
下图为
ifcfg-ens33
文件
#修改IP
vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet" #网卡类型 以太网
PROXY_METHOD="none"
BROWSER ONLY="no"
BOOTPROTO="none" #ip等信息是如何决定的?dhcp动态分配、static|node 手动静态分配
DEFROUTE="yes"
IPV4 FAILURE FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6 DEFROUTE="yes"
IPV6 FAILURE FATAL="no"
IPV6 ADDR GEN MODE="stable-privacy"
NAME="ens33" #网卡名称
UUID="74c3b442-480d-4885-9ffd-e9f0087c9cf7"
DEVICE="ens33"
ONBOOT="yes" #是否开机启动网卡服务
IPADDR="192.168.88.151" #IP地址
PREFIX="24"#子网掩码等效:NETMASK=255.255.255.0
GATEWAY="192.168.88.2" #网关服务
DNS1="192.168.88.2" #网关DNS解析
DOMAIN="114.114.114.114" #公网DNS解析114.114.114.114谷歌:8.8.8.8阿里百度DNS
IPV6 PRIVACY="no"
#修改主机名hostname
node2.itcast.cn
复制代码
8.2 hosts映射修改
在
/etc/hosts
文件配置如下
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.59.151 node1.itcast.cn node1
192.168.59.152 node2.itcast.cn node2
192.168.59.153 node3.itcast.cn node3
~
继承在Windows 里 C:\windows\system32\drivers\etc\hosts 添加以下数据
192.168.59.151 node1.itcast.cn node1
192.168.59.152 node2.itcast.cn node2
192.168.59.153 node3.itcast.cn node3
8.3 关闭防火墙
#查察防火墙状态
systemctl status firewalld
#关闭防火墙
systemctl stop firewalld
#关闭防火墙开机自启动
systemctl disable firewalld
8.4 集群时间同步
8.5 ssh免密登录
ssh-keygen #生成公钥
ssh-copy-id node2 #将公钥拷贝给node2
复制代码
8.6 scp长途拷贝
#本地copy其他机器
scp itcast.txt root@node2:/root
scp -r 1inux02/ root@node2:$PWD #copy文件夹 -r参数$PWD copy至和本机相同当前路径
#为什么不需要输入密码因为配置了机器之间的免密登录如果没有配置 scp的时候就需要输入密码
#copy其他机器文件到本地
scp root@node2:/root/itcast.txt
复制代码
9. Linux软件安装
9.1 MySQL的安装
目次安装规范
/export/server #软件安装目次
/export/software #安装包的目次
/export/data #软件运行数据保存的目次
/export/1ogs #软件运行日志
mkdir -p /export/server
mkdir -p /export/software
mkdir -p /export/data
mkdir -p /export/1ogs
复制代码
卸载centos7自带的mariadb
rpm -qa|grep mariadb #查找这个包
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64 #卸载
复制代码
安装MySQL
#安装依赖
yum -y install libaio
rpm -ivh mysql-community-common-5.7.29-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.29-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.29-1.el7.x86_64.rpm
#安装server时需要安装两个依赖
rpm -qa|grep mysql
rpm -qa|grep mariadb
rpm -ivh mysql-community-server-5.7.29-1.el7.x86_64.rpm
复制代码
mysql初始化设置
#mysql初始化
mysqld --initialize
#更改所属组
chown mysql:mysql /var/lib/mysql -R
#启动mysq1
systemctl start mysqld.service
#查看生成的临时root密码
cat /var/log/mysqld.log | grep password
#登录mysql
mysql -uroot -p
#修改密码为 123456
mysql> alter user user()identified by "123456";
#授权
mysql> use mysql;
#给root用户所有权限
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES; #刷新权限
#设置开机自启
systemctl enable mysqld
复制代码
#mysq1的启动和关闭 状态查察
systemctl stop mysqld
systemctl status mysqld
systemctl start mysqld
9.2 yum包管理器
Yum(全称为 Yellow dog updater,Modified)是一个在Fedora和RedHat以及centos中的she11前端软件包管理器。基于RPM包管理,可以或许从指定的服务器自动下载RPM包并且安装,可以自动处理依靠性关系,并且一次安装全部依靠的软件包,无须繁琐地一次次下载、安装。
特点
自动下载rpm包
举行安装条件是联网 不联网就凉凉
解决包之间的依靠关系
原理
yum之所以强大原因在于有yum源。内里有很多rpm包和包之间的依靠。
yum源分为网络yum源和本地yum源。
此中网络yum源在centos默认集成了镜像地址 只要联网就可以自动探求到可用的yum源。条件联网
也可以自己搭建本地yum源。实现从本地下载安装。
下令
#列出当前机器可用的yum源信息
yum repolist a11
#清楚yum源缓存信息
yum clean a11
#查找软件
rpm list | grep 软件包名称
#yum安装软件
#-y表示自动确认 否则在安装的时候需要手动输入y确认下载安装
yum insta11 -y xx软件名
yum insta11 -y mysq1-*
#yum卸载软件
yum-yremove 要卸载的软件包名
复制代码
9.3 JDK的安装
rz上传jdk压缩包到/export/software中通过解压下令解压到/export/server 并改名为java
tar -zxvf jdk-8u241-linux-x64.tar.gz -C ../server/
mv jdk1.8.0_241/ java
复制代码
再修改环境变量 /etc/profile 在最后一行添加
export JAVA_HOME=/export/server/java
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
复制代码
刷新环境变量使其生效
source /etc/profile
复制代码
验证是否乐成出现版本即乐成
#查看java版本
java -version
java version "1.8.0_241"
Java(TM) SE Runtime Environment (build 1.8.0_241-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode)
复制代码
将 node1 上的Java分别分发到node2和node3
scp -r /export/server/java/ root@node2:/export/server/
scp -r /export/server/java/ root@node3:/export/server/
scp -r /etc/profile root@node2:/etc
scp -r /etc/profile root@node3:/etc
复制代码
分别在两台从机刷新环境变量以及查察版本号出现即乐成
#node2
source /etc/profile
java -version
#node3
source /etc/profile
java -version
复制代码
10. shell编程
二、Hadoop
1. 大数据导论
1.1 数据和数据分析
1.2 数据分析的作用
1.3 数据分析的根本步骤
1.4 大数据应用场景
1.5 分布式技术
2. Zookeeper
2.1 集群架构与角色
2.2 集群搭建
上传安装包 rz
解压安装包并且修改名字
#解压
tar -zxvf zookeeper-3.4.8.tar.gz -C ../server/
#修改名字
mv zookeeper-3.4.8/ zookeepe
复制代码
修改配置文件
zoo.cfg 文件
#进入目录修改模板名字
cd zookeeper/conf/
mv zoo_sample.cfg zoo.cfg
#打开文件
vi zoo.cfg
#修改存放数据目录
dataDir=/export/data/zkdata
#在末尾添加2888心跳端口 3888选举端口
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
复制代码
myid 文件
#在每台机器的dataDir指定的目录下创建一个文件 名字叫做myid
#myid里面的数字就是该台机器上server编号:server.N
#N的数字就是编号
mkdir -p /export/data/zkdata
echo 1 >/export/data/zkdata/myid
复制代码
再将node1 zookeeper这个文件分发给node2,node3
查察是否乐成
#在三个节点中分别运行启动zookeeper
/export/server/zookeeper/bin/zkServer.sh start
#查看状态
/export/server/zookeeper/bin/zkServer.sh status
#关闭
/export/server/zookeeper/bin/zkServer.sh stop
复制代码
创建一键启动脚本
vi startzk.sh #一键启动
hosts=(node1 node2 node3)
for host in ${hosts[*]}
do
ssh $host "source /etc/profile;/export/server/zookeeper/bin/zkServer.sh start"
done
chmod u+x startzk.sh #添加执行权限
sh startzk.sh #开启
复制代码
vi stopzk.sh #一键关闭
#!/bin/bash
hosts=(node1 node2 node3)
for host in ${hosts[*]}
do
ssh $host "/export/server/zookeeper/bin/zkServer.sh stop"
done
chmod u+x stopZk.sh #添加执行权限
sh stopZk.sh #关闭
复制代码
2.3 zookeeper 数据模子
2.4 zookeeper shell操作
2.5 zookeeper 监听
2.6 应用场景
3. Haoop部署
3.1 hadoop集群搭建
使用rz上传压缩包至software中
解压安装
#解压安装
tar -zxvf hadoop-3.3.0-Centos7-64-with-snappy.tar.gz -C ../server/
#更改名字
mv hadoop-3.3.0/ hadoop
复制代码
目次结构
bin
:Hadoop最根本的管理脚本和使用脚本的目次,这些脚本是sbin目次下管理脚本的底子实现,用户可以直接使用这些脚本管理和使用Hadoop。
etc
:Hadoop配置文件所在的目次,包罗core-site,xml、hdfs-site.xml、mapred-site.xml等从Hadoop1.0继承而来的配置文件和yarn-site.xml等Hadoop2.0新增的配置文件。
include
:对外提供的编程库头文件(具体动态库和静态库在lib目次中),这些头文件均是用C++定义的,通常用于C++步伐访问HDFS或者编写MapReduce步伐。
lib
:该目次包含了Hadoop对外提供的编程动态库和静态库,与include目次中的头文件结合使用。
libexec
:各个服务对用的shell配置文件所在的目次,可用于配置日志输出、启动参数(比如JVM参数)等根本信息。
sbin
:Hadoop管理脚本所在的目次,主要包含HDFS和YARN中各类服务的启动/关闭脚本。
share
:Hadoop各个模块编译后的jar包所在的目次,官方自带示例。
修改配置文件
vim hadoop-env.sh
export JAVA_HOME=/export/server/java
#文件最后添加
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
复制代码
vim core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/export/data/hadoop-3.3.0</value>
</property>
<!-- 设置HDFS web UI用户身份 -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>root</value>
</property>
<!-- 整合hive -->
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
复制代码
vim hdfs-site.xml
<!-- 指定secondarynamenode运行位置 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node2:50090</value>
</property>
复制代码
vim mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
复制代码
vim yarn-site.xml
<!-- 指定YARN的主角色(ResourceManager)的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node1</value>
</property>
<!-- NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MapReduce程序默认值:"" -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 是否将对容器实施物理内存限制 -->
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<!-- 是否将对容器实施虚拟内存限制。 -->
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
<!-- 开启日志聚集 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 设置yarn历史服务器地址 -->
<property>
<name>yarn.log.server.url</name>
<value>http://node1:19888/jobhistory/logs</value>
</property>
<!-- 保存的时间7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
复制代码
vim works
node1.itcast.cn
node2.itcast.cn
node3.itcast.cn
复制代码
修改环境变量
vim /etc/proflie
export HADOOP_HOME=/export/server/hadoop-3.3.0
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
复制代码
查察版本是否安装乐成
hadoop version
复制代码
分发配置hadoop给两台从机刷新环境变量
scp -r /export/server/hadoop/ node2:/export/server/
scp -r /export/server/hadoop/ node3:/export/server/
scp -r /etc/profile node2:/etc
scp -r /etc/profile node3:/etc
复制代码
首次启动HDFS时,必须对其举行格式化操作
。本质上是一些整理和准备工作,因为此时的HDFS在物理上还是不存在的。
hadoop namenode -format
复制代码
在主节点一键启动hadoop => HDFS+YARN
需要设置过免密登录
start-all.sh
stop-all.sh
复制代码
各个节点进程如下 (
QuorumPeerMain 为zookeeper
)
一旦Hadoop集群启动并运行,可以通过web-ui举行集群查察,如下所述:
NameNode http://nn_host:port/ 默认9870.
ResourceManager http://rm_host:port/ 默认 8088.
3.2 jobhistory服务
3.3 垃圾桶机制
每一个文件系统都会有垃圾桶机制,便于将删除的数据接纳到垃圾桶内里去,避免某些误操作删除一些重要文件。接纳到垃圾桶里内里的资料数据,都可以举行恢复。
HDFS的垃圾接纳的默认配置属性为 0,也就是说,如果你不小心误删除了某样东西,那么这个操作是不可恢复的。
修改core-site.xml :
那么可以按照生产上的需求设置接纳站的保存时间,这个时间以分钟为单位,例如1440=24h=1天。
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
然后重启hdfs集群
垃圾桶机制验证
如果启用垃圾箱配置,dfs下令删除的文件不会立刻从HDFS中删除。相反,HDFS将其移动到垃圾目次(每个用户在/user/<username>/.Trash下都有自己的垃圾目次)。只要文件保留在垃圾箱中,文件可以快速恢复。
使用skipTrash选项删除文件,该选项不会将文件发送到垃圾箱。它将从HDFS中完全删除。
4. HDFS 入门
4.1 应用场景
4.2 重要特性
4.3 shell 操作
5. HDFS 工作机制
读数据
6. namenode 管理
6.1 文件归档archive
6.2 元数据管理机制
7. mapreduce 入门
7.1 设计架构
7.2 局限性
7.3 示例
案例:计算pi
#进入目录
/export/server/hadoop/share/hadoop/mapreduce
#提交目录
hadoop jar hadoop-mapreduce-examples-3.3.0.jar pi 2 20
复制代码
案例:单词统计
yarn jar hadoop-mapreduce-examples-3.3.0.jar wordcount /wordcount/input/1.txt /wordcount/output
复制代码
7.4 Centos7安装Python3
#1、安装编译相关工具
yum -y groupinstall "Development tools"
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
yum install libffi-devel -y
#2、解压Python安装包
tar -zxvf Python-3.8.5.tgz
#3、编译、安装Python
mkdir /usr/local/python3 #创建编译安装目录
cd Python-3.8.5
./configure --prefix=/usr/local/python3
make && make install #make编译c源码 make install 编译后的安装
#安装过,出现下面两行就成功了
Installing collected packages: setuptools, pip
Successfully installed pip-20.1.1 setuptools-47.1.0
#4、创建软连接
# 查看当前python软连接 快捷方式
[root@node2 Python-3.8.5]# ll /usr/bin/ |grep python
-rwxr-xr-x. 1 root root 11232 Aug 13 2019 abrt-action-analyze-python
lrwxrwxrwx. 1 root root 7 May 17 11:36 python -> python2
lrwxrwxrwx. 1 root root 9 May 17 11:36 python2 -> python2.7
-rwxr-xr-x. 1 root root 7216 Aug 7 2019 python2.7
#默认系统安装的是python2.7 删除python软连接
rm -rf /usr/bin/python
#配置软连接为python3
ln -s /usr/local/python3/bin/python3 /usr/bin/python
#这个时候看下python默认版本
python -V
#删除默认pip软连接,并添加pip3新的软连接
rm -rf /usr/bin/pip
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip
#5、更改yum配置
#因为yum要用到python2才能执行,否则会导致yum不能正常使用(不管安装 python3的那个版本,都必须要做的)
vi /usr/bin/yum
把 #! /usr/bin/python 修改为 #! /usr/bin/python2
vi /usr/libexec/urlgrabber-ext-down
把 #! /usr/bin/python 修改为 #! /usr/bin/python2
vi /usr/bin/yum-config-manager
#!/usr/bin/python 改为 #!/usr/bin/python
复制代码
7.5 输入输出流
8. Yarn集群
8.1 YARN架构、组件
8.2 交互流程
8.3 资源调治
9. HA 高可用
9.1 问题
9.2 解决方案-QJM
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4