hadoop安装脚本
① hadoop集群搭建(Hadoop 3.1.3 /Hive 3.1.2/Spark 3.0.0)
完全分布式HA
服务器规划
技术栈包含
hdfs
hive on spark
presto
doris
superset
azkaban
kafka
fluent\flume
sqoop\kettle\flink-cdc
atlas
禁用swap/selinux
修改 IP/修改主机名/及主机名和 IP 地址的映射
时间同步/设置时区/自动时间同步
关闭防火墙
关闭SELINUX
新建用户
免密登录(先升级openssh)
发送密钥(dw01上执行)
授权
Tencent Kona v8.0.8-GA
腾讯开源的konaJDK,针对大数据场景下优化
解压并重命名至安装地址:/usr/local/java/
zookeeper-3.5.9
解压并重命名至安装地址:/usr/local/zookeeper
apache-hadoop-3.1.3 解压至安装地址:/usr/local/hadoop
修改环境变量
/usr/local/zookeeper/conf
启动zookeeper集群(每台执行)
三台服务器启动
格式化namenode(dw01执行)
启动namenode(dw01上执行)
在[nn2]和[nn3]上分别执行,同步 nn1 的元数据信息
启动nn2 nn3,分别执行
所有节点上启动datanode
将[nn1]切换为 Active
查看状态
配置yarn-site.xml
配置mapred-site.xml
分发配置文件,启动yarn(dw03 启动)
dw03节点
dw01节点
dw01执行
dw03执行
测试样例
启动脚本
HA切换namenode手动
修改yarn显示log的bug
② 如何在Hadoop环境下搭建Python
搭建 Python 环境在 Hadoop 上的步骤如下:
安装 Hadoop:在你的计算机上安装 Hadoop。
安装 Python:请确保你的计孙拿算机上已经安装了 Python。
配置 Hadoop 环境:编辑 Hadoop 的配置文件,以确保 Hadoop 可以与 Python 配合使用。
安装相关模块:请安装所需的 Python 模块,以便在 Hadoop 环境下使用 Python。
测试灶行 Python 安装:请运行一些测试脚本,以确保 Python 可以在 Hadoop 环境下正常工作。
这些步骤可以帮助你在 Hadoop 环境下搭建 Python。请注意,具体的步骤可能因 Hadoop 的版本和环境而异,请仔细查则辩搭看相关文档。
③ 如何配置Hadoop环境
资源下载
1、JDK下载:下载链接
2、hadoop:下载链接
3、下载完成后验证一下下载,将计算的MD5值与官网的进行对比已验证安装包的准确性:
md5sum ./hadoop-2.6.*.tar.gz | tr "a-z" "A-Z" # 计算md5值,并转化为大写,方便比较1
一、创建Hadoop用户
创建hadoop用户,并分配以用户名为家目录/home/hadoop,并将其加入到sudo用户组,创建好用户之后,以hadoop用户登录:
sudo useradd -m hadoop -s /bin/bash sudo adser hadoop sudo
sudo passwd hadoop # 设置hadoop用户密码123
二、安装JDK、Hadoop及配置环境变量
安装,解压JDK到/usr/lib/java/路径下,Hadoop到/usr/local/etc/hadoop/路径下:
tar zxf ./hadoop-2.6.*.tar.gz
mv ./hadoop-2.6.* /usr/local/etc/hadoop # 将 /usr/local/etc/hadoop作为Hadoop的安装路径12
解压完成之后,可验证hadoop的可用性:
cd /usr/local/etc/hadoop
./bin/hadoop version # 查看hadoop的版本信息12
若在此处,会出现类似以下的错误信息,则很有可能是该安装包有问题。
Error: Could not find or load main class org.apache.hadoop.util.VersionInfo1
配置环境,编辑“/etc/profile”文件,在其后添加如下信息:
export HADOOP_HOME=/usr/local/etc/hadoopexport JAVA_HOME=/usr/lib/java/jdk1.8.0_45export JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libexport PATH=$PATH:${JAVA_HOME}/bin:${JRE_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin12345
使配置的变量生效:
source /etc/profile1
三、测试一下
在此我们可以运行一个简单的官方Demo:
cd `echo $HADOOP_HOME` # 到hadoop安装路径
mkdir ./input
cp ./etc/hadoop/*.xml ./input
hadoop jar ./share/hadoop/maprece/hadoop-maprece-examples-*.jar grep ./input ./output 'dfs[a-z.]+'1234
输出的结果应该会是:
1 dfsadmin 1
这里有一点需要注意,该Example程序运行时不能已存在output目录,否则或将无法执行!
- 1 <?xml version="1.0" encoding="UTF-8"?>
- 2 <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
- 3 <!--
- 4 Licensed ...
- -->
- 18
- 19 <configuration>
- 20 <property>
- 21 <name>hadoop.tmp.dir</name>
- 22 <value>file:/home/hadoop/tmp</value>
- 23 <description>Abase for other temporary directories.</description>
- 24 </property>
- 25 <property>
- 26 <name>fs.default.name</name>
- 27 <value>hdfs://master:9000</value>
- 28 </property>
- 29 </configuration> 1234567891011121314151617
- 1 <?xml version="1.0" encoding="UTF-8"?>
- 2 <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
- 3 <!--
- 4 Licensed ...
- -->
- 18
- 19 <configuration>
- 20 <property>
- 21 <name>dfs.replication</name>
- 22 <value>1</value>
- 23 </property>
- 24 <property>
- 25 <name>dfs.namenode.name.dir</name>
- 26 <value>file:/home/hadoop/tmp/dfs/name</value>
- 27 </property>
- 28 <property>
- 29 <name>dfs.datanode.data.dir</name>
- 30 <value>file:/home/hadoop/tmp/dfs/data</value>
- 31 </property>
- 32 </configuration>
- hdfs namenode -format1
- hdfs dfsadmin -refreshNodes1
- hdfs dfs -mkdir /input
- hdfs dfs -put /usr/local/etc/hadoop/etc/hadoop/*.xml /input12
- hadoop jar /usr/local/etc/hadoop/share/hadoop/maprece/hadoop-maprece-examples-*.jar grep /input /output 'dfs[a-z.]+'1
四、Hadoop的伪分布式环境搭建
什么是伪分布式?Hadoop 伪分布式模式是在一台机器上模拟Hadoop分布式,单机上的分布式并不是真正的分布式,而是使用线程模拟的分布式。分布式和伪分布式这两种配置也很相似,唯一不同的地方是伪分布式是在一台机器上配置,也就是名字节点(namenode)和数据节点(datanode)均是同一台机器。
需要配置的文件有core-site.xml和hdfs-site.xml这两个文件他们都位于${HADOOP_HOME}/etc/hadoop/文件夹下。
其中core-site.xml:
文件hdfs-site.xml的配置如下:
配置完成后,执行格式化命令,使HDFS将制定的目录进行格式化:
若格式化成功,在临近输出的结尾部分可看到如下信息:
如果发现并没有出现如上信息,则使用刷新节点命令进行刷新:
八、HDFS集群实例测试
依然是之前的那个示例,首先,创建一个数据源文件夹,并添加数据:
运行maprece示例:
holding…
④ HADOOP安装(安装详情私)-
2.1 准备
克隆三台虚拟机:hadoop102 hadoop103 hadoop104,
修改克隆虚拟机的静态 IP:vim /etc/sysconfig/network-scripts/ifcfgens33
修改主机名称 vim /etc/hostname
配置 Linux 克隆机主机名称映射 hosts 文件:vim /etc/hosts
reboot
安装 JDK 前,一定确保提前删除了虚拟机自带的 JDK
解压、配置 JDK 环境变量,测试:java -version
Hadoop 下载地址:https://archive.apache.org/dist/hadoop/common/hadoop-3.1.3/
解压、将 Hadoop 添加到环境变量
2.2 Hadoop 重要目录
bin 目录:存放对 Hadoop 相关服务(hdfs,yarn,mapred)进行操作的脚本
etc 目录:Hadoop 的配置文件目录,存放 Hadoop 的配置文件
lib 目录:存放 Hadoop 的本地库(对数据进行压缩解压缩功能)
sbin 目录:存放启动或停止 Hadoop 相关服务的脚本
share 目录:存放 Hadoop 的依赖 jar 包、文档、和官方案例
2.3 Hadoop运行模式
Hadoop 运行模式包括:本地模式、伪分布式模式以及完全分布式模式
本地模式:单机运行,只是用来演示一下官方案例。生产环境不用。
伪分布式模式:也是单机运行,但是具备 Hadoop 集群的所有功能,一台服务器模 拟一个分布式的环境。个别缺钱的公司用来测试,生产环境不用。
完全分布式模式:多台服务器组成分布式环境。生产环境使用。
完全分布式运行模式(开发重点) 分析:1)准备 3 台客户机(关闭防火墙、静态 IP、主机名称) 2)安装 JDK 3)配置环境变量 4)安装 Hadoop 5)配置环境变量 6)配置集群 7)单点启动 8)配置 ssh 9)群起并测试集群
编写集群分发脚本 xsync
scp安全拷贝语法:
scp -r $pdir/$fname $user@$host:$pdir/$fname
命令 递归 要拷贝的文件路径/名称 目的地用户@主机:目的地路径/名称
rsync 远程同步工具语法:
rsync -av $pdir/$fname $user@$host:$pdir/$fname
命令 选项参数 要拷贝的文件路径/名称 目的地用户@主机:目的地路径/名称
rsync 和 scp 区别:用 rsync 做文件的复制要比 scp 的速度快,rsync 只对差异文件做更 新。scp 是把所有文件都复制过去。
rsync 主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。
SSH 无密登录配置
命令:ssh-keygen -t rsa
然后敲(三个回车),就会生成两个文件 id_rsa(私钥)、id_rsa.pub(公钥)
将公钥拷贝到要免密登录的目标机器上:ssh--id hadoop102
2.4 集群安装
注意
NameNode 和 SecondaryNameNode 不要安装在同一台服务器
ResourceManager 也很消耗内存,不要和 NameNode、SecondaryNameNode 配置在 同一台机器上。
Hadoop 配置文件分两类:默认配置文件和自定义配置文件,只有用户想修改某一默认 配置值时,才需要修改自定义配置文件,更改相应属性值
自定义配置文件:core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml 四个配置文件存放在 $HADOOP_HOME/etc/hadoop 这个路径
⑤ 如何搭建50t的hadoop集群
先决条件
确保在你集群中的每个节点上都安装了所有必需软件。
获取Hadoop软件包。
安装
安装Hadoop集群通常要将安装软件解压到集群内的所有机器上。
通常,集群里的一台机器被指定为 NameNode,另一台不同的机器被指定为JobTracker。这些机器是masters。余下的机器即作为DataNode也作为TaskTracker。这些机器是slaves。
我们用HADOOP_HOME指代安装的根路径。通常,集群里的所有机器的HADOOP_HOME路径相同。
配置
接下来的几节描述了如何配置Hadoop集群。
配置文件
对Hadoop的配置通过conf/目录下的两个重要配置文件完成:
hadoop-default.xml - 只读的默认配置。
hadoop-site.xml - 集群特有的配置。
要了解更多关于这些配置文件如何影响Hadoop框架的细节,请看这里。
此外,通过设置conf/hadoop-env.sh中的变量为集群特有的值,你可以对bin/目录下的Hadoop脚本进行控制。
集群配置
要配置Hadoop集群,你需要设置Hadoop守护进程的运行环境和Hadoop守护进程的运行参数。
Hadoop守护进程指NameNode/DataNode 和JobTracker/TaskTracker。
配置Hadoop守护进程的运行环境
管理员可在conf/hadoop-env.sh脚本内对Hadoop守护进程的运行环境做特别指定。
至少,你得设定JAVA_HOME使之在每一远端节点上都被正确设置。
管理员可以通过配置选项HADOOP_*_OPTS来分别配置各个守护进程。 下表是可以配置的选项。