hadoop搭建
自动化部署工具
- ansible做自动部署
- 大数据监控及管理平台:Cloudera manager(CDH是Cloudera的100%开源平台发行版,包括Apache Hadoop,专为满足企业需求而构建)、Ambari等,直接添加节点,选择组件就可以通过浏览器界面完成搭建,并且后期可以很方便的监控集群的运行状态
- 自己开发工具:使用shell配合python把重复性的工作自动化
- 容器化平台:比如Kubernetes来编排Docker,不过有些组件如果Docker Hub没有镜像,可能得自己制作镜像或者找第三方的镜像
自己手动布置(少量节点或者入门练习)
- 安装hadoop和Java环境
hadoop:
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.10.2/hadoop-2.10.2.tar.gz
java:
wget https://download.oracle.com/java/19/latest/jdk-19_linux-x64_bin.tar.gz
自建目录 将hadoop和jdk解压到 目录下/root/hadoop_test
jdk改个名字
mv jdk-19.0.2 jdk
添加环境变量
vi /etc/profile
source /etc/profile
查看是否配置成功
java --version
hadoop version
-
hadoop及 网络配置
-
服务器之间ssh 免密登录
-
Java环境
cd /root/hadoop_test/hadoop-2.10.2/etc/hadoop/
vi hadoop-env.shexport JAVA_HOME=/root/hadoop_test/jdk
source hadoop-env.sh
-
core-site.xml
vi core-site.xml
分布式:<configuration> <!--用于设置Hadoop的文件系统,由URI指定--> <property> <name>fs.defaultFS</name> <!--用于指定namenode地址在hadoop01机器上--> <value>hdfs://hadoop01:9000</value> </property> <!--配置Hadoop的临时目录,默认/tem/hadoop-${user.name}--> <property> <name>hadoop.tmp.dir</name> <value>/export/servers/hadoop-2.7.4/tmp</value> </property> </configuration>
伪分布式:
<configuration> <property> <name>hadoop.tmp.dir</name> <value>file:/usr/local/hadoop/tmp</value> <description>Abase for other temporary directories.</description> </property> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration>
-
hdfs-site.xml
vi hdfs-site.xml
分布式:<configuration> <!--指定HDFS的数量--> <property> <name>dfs.replication</name> <value>3</value> </property> <!--secondary namenode 所在主机的IP和端口--> <property> <name>dfs.namenode.secondary.http-address</name> <value>hadoop02:50090</value> </property> </configuration>
伪分布式:
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/root/hadoop_test/hadoop-2.10.2/tmp/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/root/hadoop_test/hadoop-2.10.2/tmp/dfs/data</value> </property> </configuration>
-
mapred-site.xml
cp mapred-site.xml.template mapred-site.xml**
vi mapred-site.xml
分布式:<configuration> <!--指定MapReduce运行时的框架,这里指定在YARN上,默认在local--> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
-
yarn-site.xml
vi yarn-site.xml
分布式:<configuration> <!--指定YARN集群的管理者(ResourceManager)的地址--> <property> <name>yarn.resourcemanager.hostname</name> <value>hadoop01</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
-
slaves
#tip:将文件中的localhost删除,添加主节点和子节点的主机名称
#tip:如主节点hadoop01,子节点hadoop02和hadoop03
vi slaves
- 验证及启动
NameNode的格式化(格式化成功后轻易不要再次格式化)
hdfs namenode -format
启动
start-all.sh
查看
jps
分布式
出现下图6个即成功
伪分布式
出现 NameNode DataNode SeconderyNameNode 即可
云服务器:华为云HECS 2核4G
系统: Ubuntu20.04