搭建单机式hadoop个人学习博客
首先建议大家确定自己要使用的linux、java、hadoop等的版本,查找资料比较方便,另外注意hadoop用户和hadoop软件是不同的,用户是你创建的,软件是下载的,本文都是简称hadoop。
博主的环境:
JAVA: 1.8【1.9及以上版本会warning,但不影响】
ubuntu: 16.04.6
hadoop: 2.6.5
由于希望记录全面,以便之后搭建伪分布式以及真实的集群,重新安装vm并新建了虚拟机。
初始准备流程
- 安装ubuntu,自定义安装
- 注意:宿主机强制关机,会导致虚拟机产生错误,博主试验了各种方法,最后只能重装虚拟机
- 设置网卡为nat模式
- 安装vim:sudo apt-get install vim,如果失败则:sudo apt-get update,之后再安装vim,如果连不上网,先把网卡设置为桥接模式
- 设置静态ip,否则重新登录时ip会更换
【记录一下更改ip时遇到的问题】
博主参考了网上多篇博文,这是其中一篇,然而/etc/resolv.conf总是会被覆盖,最后发现重启即可,此处浪费了很多时间。 - 测试网络:ping [ipaddr],包括虚拟机与主机、虚拟机之间、虚拟机与外网
- ssh连接教程,系转载
- 设置root密码:sudo passwd root,之后设置即可
搭建haoop
- 创建hadoop用户并登录,再设置hadoop免密登录ssh(这一步可以等到搭建伪分布以及集群时使用)
sudo addgroup hadoop #创建Hadoop组
sudo adduser --ingroup hadoop hadoop #创建hadoop用户并加入hadoop组
sudo usermod -aG sudo hadoop #赋予管理员权限
sudo apt-get install openssh-server #安装ssh
sudo /etc/init.d/ssh start #开启
ps -e | grep ssh #查看服务是否启动
su hadoop #登录hadoop用户
ssh-keygen -t rsa -P "" #设置免密登录
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh localhost #测试
- 安装java,系转载,因为hadoop是基于java的,注意hadoop没有/opt的w权限,使用chmod命令更改【博主是在win下载,再ssh到虚拟机中】【如果jdk不是博文中的版本,记得更改命令中的版本号】
- 安装hadoop-2.6.5【win下载再ssh至虚拟机】
1. 进入你选择的安装目录,执行:sudo tar -xzf hadoop-2.6.5.tar.gz,等待一段时间
2. sudo chown -R hadoop:hadoop /home/hadoop/hadoop-2.6.5,将文件权限更改为hadoop用户
3. 进入安装目录下的/etc/hadoop文件夹,更改hadoop-env.sh如下:
export JAVA_HOME=${JAVA_HOME}
export HADOOP_HOME=/home/hadoop/hadoop-2.6.5
export PATH=$PATH:${HADOOP_HOME}/bin
4. 保存退出后,执行:source /home/hadoop/hadoop-2.6.5/etc/hadoop/hadoop.env.sh
5. 输入 hadoop version测试
- Ubuntu切换用户su和su-的区别,系转载,博主在测试环境变量时,发现了知识盲区,建议学习一下。
- 安装hadoop以后,需要配置环境如下:
1. 在hadoop用户的~/.profile目录下:
export HADOOP_HOME="$HOME/hadoop-2.6.5"
export PATH="$PATH:$HOME/bin:$HOME/.local/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin"
测试时发现hadoop软件在开启namenode、datanode等时,没法读取JAVA_HOME以及HADOOP_HOME
报错:JAVA_HOME或者HADOOP_CONF_DIR not set 之类的,解决方法就是设置绝对路径
2. vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh,修改:export JAVA_HOME=绝对路径,即你安装java的路径。
以及:$HADOOP_CONF_DIR=/home/hadoop/hadoop-2.6.5/etc/hadoop(根据你的绝对路径修改)
3. 配置core-site.xml:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
4. 配置hdfs-site.xml:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
5. exit退出,重新登录hadoop用户。输入echo $PATH,查看是不是第一步的配置。
6. 格式化hadoop:hdfs namenode -format
7. 启动:start-dfs.sh
8. 测试启动成功:jps,成功类似如下:
56131 Jps
54506 NameNode
54622 DataNode
54798 SecondaryNameNode
本文参考了以下文章: