hadoop伪分布集群搭建(单机,linux,ubuntu64位)
下载hadoop-3.2.1:hadoop下载地址
下载jdk1.8版本以上:(需要注册一个ORACLE账户)jdk下载地址
在server版本中可以用xfpt将文件从本地上传到虚拟机中并使用xshell操作终端。
1,安装jdk
解压:tar –zxvf jdk-8u241-linux-x64.tar.gz
2,安装hadoop
解压:tar -zxvf hadoop-3.2.1-tar.gz
3,在etc/profile中配置jdk,hadoop的环境变量
这里我将解压好的jdk和hadoop放在了/usr/local目录中,JAVA_HOME和HADOOP_HOME所跟路径以实际放置目录为准。
配置环境变量:vim /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_241
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
export HADOOP_HOME=/usr/local/hadoop-3.2.1
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
退出编辑: :wq
保存编辑: source /etc/profile
查看jdk、hadoop是否安装成功:显示版本信息即成功
验证jdk:java -version
验证hadoop:hadoop version
4,安装ssh服务
安装openssh-server:
sudo apt-get install ssh
创建ssh-key:
ssh-keygen –t rsa(一直回车)
进入~/.ssh目录:
cd ~/.ssh
执行:cat id_rsa.pub>>authorized_keys
执行:ssh-copy-id master (这里的master是你的服务器名称)
hadoop集群搭建时,如果有三台服务器分别名为:master、sal1、sal2,每台服务器均要生成三组密钥
在master中:
ssh-copy-id master
ssh-copy-id sal1
ssh-copy-id sal2
在sal1中
ssh-copy-id master
ssh-copy-id sal1
ssh-copy-id sal2
在sal2中
ssh-copy-id master
ssh-copy-id sal1
ssh-copy-id sal2
5,配置hadoop-3.2.1/etc/hadoop中的五个文件
文档推荐:一个hadoop搭建的相关文档(可以和上文博主一样的思路走一遍,但很可能报错,我的建议是先完成五个文件的配置,毕竟虚拟机有时候很扯!)进入hadoop-3.2.1/etc/hadoop后编辑相关文件如下:
vim core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop-3.2.1/data/tmp</value>
<!--这里的目录编辑后可以自动生成-->
<description>A base for other temporary directories.</description>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
vim hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop-3.2.1/data/name</value>
<final>true</final>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop-3.2.1/data/data</value>
<final>true</final>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
vim mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
vim yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce.shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
</configuration>
vim hadoop-env.sh
export JAVA_HOME=/usr/local/jdk1.8.0_241
export HADOOP_HOME=/usr/local/hadoop-3.2.1
6,修改hadoop-3.2.1/sbin路径下的start-dfs.sh,stop-dfs.sh,start-yarn.sh,stop-yarn.sh四个文件
在start-dfs.sh,stop-dfs.sh两个文件空白处添加以下参数:
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
在start-yarn.sh,stop-yarn.sh两个文件空白处添加以下参数:
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
7,启动hadoop
首先进入hadoop-3.2.1目录格式化一次namenode:
bin/hdfs namenode –format
启动服务:sbin/start-all.sh
如果不修改步骤6,会出现大量红色部分的WARNING以及ERROR,至于我为什么更改后还会出现这种情况,我也不是很懂(若有大神过路,烦请指教,嘻嘻)
查看启动进程:jps
8,在本地查看server集群是否搭建成功:
在浏览器中输入:服务器ip:9870
例如:192.168.11.22:9870回车(查看服务器ip在终端输入:ip addr)