最近在虚拟机搭了一个伪分布式Hadoop环境,虽然网上教程很多但是很多时候自己做的话难免会遇到一些困难。我将自己搭建的过程记录仅供参考
环境
ubuntu 16.04 LTS
Hadoop的安装
http://mirror.bit.edu.cn/apache/hadoop/common/ 这里直接上下载链接,建议src.tar.gz和tar.gz两个文件都下载下来并且建议都下载最新版本的Hadoop
创建Hadoop用户以及给创建好的用户添加管理员权限,方便管理也避免后面出现权限的问题
sudo useradd -m hadoop -s /bin/bash
sudo passwd hadoop
sudo adduser hadoop sudo
这里的用户名取的是hadoop这个可根据自己的喜好来变换。下面点击右上角的设置按钮切换用户到hadoop,我这里创建的用户名为jungwoosung所以我点击jungwoosung
更新apt
sudo apt-get update
没有下载vim的推荐下载,后面有很多都需要用到vim也比较方便
sudo apt-get install vim
安装SSH,配置SSH无密码登陆
sudo apt-get install openssh-server
cd ~/.ssh/
ssh-keygen -t rsa
cat ./id_rsa.pub >> ./authorized_keys
输入ssh localhost可以看到不需要密码就登陆了
安装JAVA环境
安装Java环境这里我就不想阐述了网上也有许多教程,这里需要注意的是一定要配置好java环境变量 不然后面会出现很多错误
java -version
$JAVA_HOME/bin/java -version
运行出现的两次Java版本一样即可
这里还值得注意的是我安装的是Open JDK 这里我还是推荐安装Oracle JDK,Open JDK只有在高版本的时候才能使用
安装Hadoop
通过上面的链接安装最新版本的hadoop后,可以验证一下MD5 这里我觉得没什么必要因为安装的文件没什么问题的话MD5肯定都是一样的所以这里直接跳过。下面解压Hadoop
sudo tar -zxf ~/下载/hadoop-2.6.0.tar.gz -C /usr/local
cd /usr/local/
sudo mv ./hadoop-2.6.0/ ./hadoop # 将文件夹名改为hadoop
sudo chown -R hadoop ./hadoop
这里我的默认下载路径是/下载 如果下载路径改变的话做出相应的改变即可
cd /usr/local/hadoop
./bin/hadoop version
输入命令检查hadoop是否可以使用,成功的话会显示版本信息
由于我直接搭的是伪分布式的hadoop所以这里直接讲解伪分布式
Hadoop的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。
cd /usr/local/hadoop/etc/hadoop/
修改配置文件 core-site.xml
<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
<configuration>
<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>
</configuration>
配置完后执行NameNode格式化
./bin/hdfs namenode -format
会运行一段时间出现successfully formatted则表示成功了
接着开启NameNode和DataNode守护进程
./sbin/start-dfs.sh
到这里已经完全启动,可以访问页面http://localhost:50070查看NameNode和DataNode信息
这里需要说明的是在Hadoop3.0以后端口号发生了改变
所以我们需要访问的页面是http://localhost:9870
至此环境都弄好了读者可以运行WordCount进行Mapreduce测试