操作系统:Ubuntu16.04(搭建在vritualBox虚拟机)
Hadoop版本:2.9.1(http://mirror.bit.edu.cn/apacge/hadoop/common),一般下载最新的稳定版本,即下载‘stable’下的2.x.y.tar.gz
sudo useradd -m -hadoop -s /bin/bash
这条命令可以创建登陆的Hadoop用户,并使用/bin/bash作为shell
sudo passwd hadoop
sudo adduser hadoop sudo
上述步骤完成以后,使用hadoop用户登录
后续我们安装软件,如果没有安装,可能会出现一些问题
sudo apt-get update
安装vim
sudo apt-get install vim
集群,单节点模式都会用到SSH登陆(名称节点和数据节点部署在不同的机器上,机器之间要相互访问)。Ubuntu默认安装了SSH client , 此外需要安装SSH server
sudo apt-get install openssh-server
安装完成后,可以使用下面的命令登陆本机:
ssh localhost
此时登陆会用到,hadoop的密码,下面我们配置SHH无密码登陆
exit #先退出刚才的登陆
cd ~/.ssh/ #若没有该目录,先执行一次,ssh localhost
ssh-keygen -t rsa #按回车
cat ./id_rsa.pub >> ./authorized_keys
此时在用ssh localhost登陆,不会使用密码
请保持网络连接,安装完成配置JAVA_HOME环境变量
sudo apt-get install default-jre default-jdk
配置JAVA_HOME环境变量
vim ~/.bashrc
在最后一行添加:export JAVA_HOME=/usr/lib/jvm/default-java(等号前后没有空格)
使环境变量生效
source ~/.bashrc #是环境变量生效
echo $JAVA_HOME #检验环境变量
java -version
将Hadoop安装在/usr/local/中:
sudo tar -zxf ~/下载/hadoop-2.9.1.tar.gz -C /usr/local #解压到/usr/local
cd /usr/local
sudo mv ./hadoop-2.9.1 ./hadoop #将文件名改为hadoop
sudo chown -R hadoop ./hadoop #修改文件权限
cd ./hadoop
./bin/hadoop version #检验Hadoop是否可用,成功则会显示Hadoop版本信息
完成以上步骤,Hadoop的单机配置(非分布式)即已完成。
Hadoop可以在单节点上配置伪分布式,Hadoop进程以分离的java进程来运行,节点既作为NameNode也作为DataNode,同时读取的是HDFS中的文件。
Hadoop的配置文件放在/usr/local/hadoop/etc/hadoop/中,伪分布式需要修改core-site.xml和hdfs-site.xml.
分别将以上两个文件修改为:
vim ./etc/hadoop/core-site.xml
core-site.xml
hadoop.tmp.dir
file:/usr/local/hadoop/tmp
Abase for other temporary directories.
fs.defaultFS
hdfs://localhost:9000
vim ./etc/hadoop/hdfs-site.xml
hdfs-site.xml
dfs.replication
1
dfs.namenode.name.dir
file:/usr/local/hadoop/tmp/dfs/name
dfs.datanode.data.dir
file:/usr/local/hadoop/tmp/dfs/data
然后修改 /user/local/hadoop/etc/hadoop/hadoop-env.sh,在里面找到export JAVA_HOME=${JAVA_HOME}这一行,修改为JAVA的安装路径。
配置完成后,执行NameNode的格式化
./bin/hdfs namenode -format
成功的话可以看到“successfully formatted”和“Exitting with status 0”的提示,若“Exitting with status 1”则是出错
接着开启NameNode和DataNode守护进程
./sbin/start-dfs.sh #启动
jps #来判断是否成功
上图进程缺一不可
关闭Hadoop
./sbin/stop-dfs.sh
上面 ./sbin/start-dfs.sh仅仅启动了MapReduce环境,我们也可以启动Yarn
首先修改配置文件mapred-site.xml,这边需要先进行重新命名:
mv ./etc/hadoop/mapred-site.xml.template ./etc/hadoop/mapred-site.xml
vim ./etc/hadoop/mapred-site.xml
mapreduce.framework.name
yarn
vim /etc/hadoop/yarn-site.xml
yarn.nodemanager.aux-services
mapreduce_shuffle
./sbin/start-yarn.sh #启动YARN
./sbin.mr-jobhistory-daemon.sh start historyserver #开启历史服务器,才能在web中查看任务