工具
阿里云轻量应用服务器
putty
登录轻量应用服务器
打开Putty,输入IP地址
输入用户名和密码(默认用户为root)
创建新用户
1.创建用户
useradd -d /home/hadoop -m hadoop
usermod -a -G root hadoop
passwd hadoop
2.用户配置
用户添加到sudo组
visudo
安装SSH,设置SSH无密码登陆
安装ssh
sudo apt-get install openssh-server #安装SSH server
ssh localhost #登陆SSH,第一次登陆输入yes
exit #退出登录的ssh localhost
cd ~/.ssh/ #如果没法进入该目录,执行一次ssh localhost
ssh-keygen -t rsa
输入完 $ ssh-keygen -t rsa 语句以后,需要连续敲击三次回车
其中,第一次回车是让KEY存于默认位置,以方便后续的命令输入。第二次和第三次是确定passphrase,相关性不大。两次回车输入完毕以后,如果出现类似于下图所示的输出,即成功:
之后再输入:
cat ./id_rsa.pub >> ./authorized_keys #加入授权
ssh localhost #此时已不需密码即可登录localhost,
下载安装JDK
1.安装jdk
通过ppa(源)方式安装
add-apt-repository ppa:webupd8team/java
apt-get update
apt-get install oracle-java8-installer
官网下载安装包
推荐使用ppa方式安装
2.查看安装是否成功
java -version
3.配置java环境变量
sudo nano ~/.bashrc
在文本中添加下面内容
export JAVA_HOME=/usr/lib/jvm/java-8-oracle
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
使添加的环境变量生效
source ~/.bashrc
下载安装Hadoop
1.下载Hadoop
hadoop各个版本安装包查看链接:
http://mirrors.hust.edu.cn/apache/hadoop/common/
Hadoop3.3.0的安装包链接:http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
#在root的家目录下
wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
2.解压
将下载的安装包解压到/usr/local目录下,并改名文件夹为hadoop
sudo tar -zxf ~/Downloads/hadoop-3.3.0.tar.gz -C /usr/local #解压到/usr/local中
cd /usr/local/
sudo mv ./hadoop-3.3.0/ ./hadoop #将文件夹名改为hadoop
sudo chown -R hadoop ./hadoop #修改文件权限 这一步一定要做,因为权限很重要
3.检查hadoop是否正确安装
./hadoop/bin/hadoop version
4.配置hadoop环境变量
sudo nano ~/.bashrc
在文本中添加下面内容
export HADOOP_HOME=/usr/local/hadoop
export CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath):$CLASSPATH
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
使添加的环境变量生效
source ~/.bashrc
搭建hadoop伪分布式集群
Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。
1.修改core-site.xml
sudo nano /usr/local/hadoop/etc/hadoop/core-site.xml
添加内容:
<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>
2.修改hdfs-site.xml
sudo nano /usr/local/hadoop/etc/hadoop/hdfs-site.xml
添加内容:
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
<property>
<name>dfs.namenode.http.address</name>
<value>slave1:9870</value>
</property>
3.配置hadoop-env.sh
sudo nano /usr/local/hadoop/etc/hadoop/hadoop-env.sh
添加内容
export JAVA_HOME=/usr/lib/jvm/java-8-oracle
export HADOOP_HOME=/usr/local/hadoop
4.NameNode 的格式化
./bin/hdfs namenode -format
5.启动namenode和datanode进程
./sbin/start-dfs.sh
./sbin/start-yarn.sh
jps
出现下面错误
解决方法:
在/hadoop/sbin路径下:
将start-dfs.sh,stop-dfs.sh两个文件顶部添加以下参数
#!/usr/bin/env bash
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
还有,start-yarn.sh,stop-yarn.sh顶部也需添加以下:
#!/usr/bin/env bash
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
出现下面错误
解决方式
在root中设置SSH无密码登陆,方法同hadoop下设置一样
执行结果
6.查看hadoop
①开启端口
阿里云服务器控制台->防火墙默认开启的端口只有 80, 443, 22 三个端口,需要手动开启 9870 ,9000端口
②查看防火墙
ufw status verbose
# 若未关闭,则关闭防火墙(需要监听端口,内网,全关掉不要紧)
sudo ufw disable
在浏览器中输入 公网ip:9870 , 跳转到dfs页面
参考链接
阿里云(轻量级Ubuntu 16.04 )服务器搭建Hadoop伪分布式集群及实现pi值的计算
Ubuntu16.04环境下搭建Hadoop3.0.3伪分布式集群
Ubuntu16.04 下 hadoop的安装与配置(伪分布式环境)
阿里云轻量应用服务器centos7搭建hadoop伪分布式集群
hadoop的50070端口不能访问网页的解决方法-总结