一台Ubuntu主机作Master,一台Ubuntu主机做slave01,一台Ubuntu主机做slave02。三台主机机器处于同一局域网下。
修改三台机器的/etc/hosts文件,添加同样的配置:
sudo vim /etc/hosts
#只写这几行剩下的全删掉 116.63.143.179 master 192.168.0.11 slave01 192.168.0.12 slave02配置ssh无密码登录本机和访问集群机器
在三台虚拟机中,使用以下命令安装 ssh:
sudo apt-get install openssh-server
在 master 节点上进行 ssh 配置,在 master 节点上执行以下命令:
su root
cd /root/.ssh
ssh-keygen -t rsa
ssh-copy-id -i /root/.ssh/id_rsa.pub master
ssh-copy-id -i /root/.ssh/id_rsa.pub slave01
ssh-copy-id -i /root/.ssh/id_rsa.pub slave02
在 master 上对每一个节点进行测试,看是否能进行免密登录: ssh slaver1
安装JDK在/usr 目录下新建 java 文件夹,然后将 jdk 压缩包复制在 java 文件夹下并进行解压。执行:
cd /usr
mkdir java
sudo tar -zxvf jdk-8u221-linux-x64.tar.gz
在/etc/profile 内配置环境变量:vim /etc/profile
添加如下信息:
export JAVA_HOME=/usr/java/jdk1.8.0_221
export CLASSPATH=:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
刷新环境配置。然后检测 Java 版本: source /etc/profile java -version
安装Hadoop先在master主机上做安装Hadoop,暂时不需要在slave01,slave02主机上安装Hadoop.稍后会把master配置好的Hadoop发送给slave01,slave02.
在master主机执行如下 *** 作:
sudo tar -zxf ~/home/hadoop-2.7.1.tar.gz -C /usr/local # 解压到/usr/local中
cd /usr/local/
sudo mv ./hadoop-2.7.1/ ./hadoop # 将文件夹名改为hadoop
sudo chown -R root ./hadoop # 修改文件权限
vim ~/.bashrc 文件,添加如下内容:
export HADOOP_HOME=/usr/local/hadoop export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
接着让环境变量生效,执行如下代码: source ~/.bashrc
Hadoop集群配置修改master主机中的Hadoop配置文件,这些文件都位于/usr/local/hadoop/etc/hadoop目录下。
在 /usr/local/hadoop目录下添加目录:
mkdir tmp
mkdir hdfs
mkdir hdfs/name
mkdir hdfs/data
修改slaves:
这里把DataNode的主机名写入该文件,每行一个。这里让master节点主机仅作为NameNode使用,因此把原来的localhost删掉。
slave01 slave02
修改core-site.xml
hadoop.tmp.dir file:/usr/local/hadoop/tmp Abase for other temporary directories. fs.defaultFS hdfs://master:9000
修改hdfs-site.xml
注意:dfs.namenode.http-address 一定要设置成0.0.0.0:50070 参考(14条消息) Hadoop HDFS的namenode WEB访问50070端口打不开解决方法_技术笔记-CSDN博客_50070打不开
dfs.replication 3 dfs.webhdfs.enabled true dfs.namenode.http-address 0.0.0.0:50070 dfs.namenode.name.dir file:/usr/local/hadoop/hdfs/name dfs.datanode.data.dir file:/usr/local/hadoop/hdfs/data
修改mapred-site.xml(复制mapred-site.xml.template,再修改文件名)
mapreduce.framework.name yarn mapreduce.jobhistory.address master:10020 mapreduce.jobhistory.webapp.address master:19888
修改yarn-site.xml
注意:hadoop-env.sh中,再显示地重新声明一遍JAVA_HOMEyarn.resourcemanager.hostname master yarn.nodemanager.aux-services mapreduce_shuffle yarn.resourcemanager.address master:8032 yarn.resourcemanager.scheduler.address master:8030 yarn.resourcemanager.resource-tracker.address master:8035 yarn.resourcemanager.admin.address master:8033 yarn.resourcemanager.webapp.address master:8088
export JAVA_HOME=/usr/java/jdk1.8.0_221
配置好后,将 master 上的 /usr/local/hadoop 文件夹复制到各个节点上。之前有跑过伪分布式模式,建议在切换到集群模式前先删除之前的临时文件。在 master 节点主机上执行:
cd /usr/local/
tar -zcf ~/hadoop.master.tar.gz ./hadoop #打成压缩包
cd ~
scp ./hadoop.master.tar.gz slave01:/home
scp ./hadoop.master.tar.gz slave02:/home
在slave01,slave02节点上执行:
sudo rm -rf /usr/local/hadoop/
sudo tar -zxf /home/hadoop.master.tar.gz -C /usr/local
sudo chown -R root /usr/local/hadoop
先登录华为云控制台,修改安全组开放所有端口比较方便(500709000.....)
在master主机上执行如下命令:
cd /usr/local/hadoop
bin/hdfs namenode -format
sbin/start-all.sh
运行后,在master,slave01,slave02运行jps命令,查看:
本地Web访问:http://华为云公网ip:50070
关闭Hadoop集群:
cd /usr/local/hadoop
sbin/stop-all.sh
cd /usr/local/hadoop
rm -rf ./hadoop/tmp # 删除临时文件
rm -rf ./hadoop/logs/* # 删除日志文件
rm -rf hdfs/data/*
rm -rf hdfs/name/*
再进行重新启动
bin/hdfs namenode -format
sbin/start-all.sh
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)