本文记录如何在一台CentOS上部署单机版Hadoop。CentOS安装在Azure上。
安装CentOS
在Azure上新建一台虚拟机,选择操作系统CentOS6.8。记住主机名,比如centosforhd。主机名在后面设置中会用到。
安装好之后,用Putty工具登录到CentOS上。登录之后请转为root用户来操作下面的安装。(命令: sudo su)
安装Java
1 下载JDK
从Java官网下载最新的JDK。如果是在windows下下载,下载之后可以通过SSH Secure File Transfer Client工具拷贝到CentOS上。把下载好的JDK文件(jdk-8u131-linux-x64.tar.gz)放到 ~/java/文件夹下(临时存放)。
2 解压
在目录 /usr/lib/jvm 下解压JDK压缩文件: tar -zxvf ~/java/jdk-8u131-linux-x64.tar.gz
解压之后,通过ls命令可以看到目录 /usr/lib/jvm 下多了个目录 jdk1.8.0_131 。
3 设置环境变量
编辑 /etc/profile 设置环境变量。 vim /etc/profile
在文件末尾添加下面几行:
export JAVA_HOME=/usr/lib/jvm/java8
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=$PATH:$JAVA_HOME/bin
然后运行命令让改动立刻生效: source /etc/profile
4 确认安装成功
运行命令 java -version,看是返回java版本号。
安装Hadoop
1 下载Hadoop Binary
到Hadoop官网(http://hadoop.apache.org/)下载Hadoop binary。在CentOS下用命令wget http://apache.fayea.com/hadoop/common/hadoop-2.8.0/hadoop-2.8.0.tar.gz 下载到 ~/hadoop/ 目录下。
2 解压
把tar.gz解压缩到目录 /usr/bin/hadoop/ 下。在目录 /usr/bin/hadoop/ 下运行命令 tar -zxvf ~/hadoop/hadoop-2.8.0.tar.gz
解压之后,通过ls命令可以看到目录 /usr/lib/hadoop/ 下多了个目录 hadoop-2.8.0 。
3 设置环境变量
编辑 /etc/profile 设置环境变量。 vim /etc/profile
在文件末尾添加下面几行:
export HADOOP_HOME=/usr/lib/hadoop/hadoop-2.8.0
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
然后运行命令让改动立刻生效: source /etc/profile
4 配置ssh无密码登录
运行命令 ssh-keygen -t rsa 。
导入公钥,把id_rsa.pub追加到授权的key文件中: cat .ssh/id_rsa.pub >> .ssh/authorized_keys
5 更改设置文件
5.1 配置core-site.xml
vim /usr/lib/hadoop/hadoop-2.8.0/etc/hadoop/core-site.xml
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://centosforhd:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/usr/lib/hadoop/hadoop-2.8.0/tmp</value> </property> </configuration>
注意上面红色部分,请替换成主机的名字。
5.2 配置hdfs-site.xml
vim /usr/lib/hadoop/hadoop-2.8.0/etc/hadoop/hdfs-site.xml
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
5.3 配置mapred-site.xml
先将mapred-site.xml.temporary 重命名为 mapred-site.xml :mv /usr/lib/hadoop/hadoop-2.8.0/etc/hadoop/mapred-site.xml.temporary /usr/lib/hadoop/hadoop-2.8.0/etc/hadoop/mapred-site.xml
再编辑: vim /usr/lib/hadoop/hadoop-2.8.0/etc/hadoop/mapred-site.xml
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
5.4 配置yarn-site.xml
vim /usr/lib/hadoop/hadoop-2.8.0/etc/hadoop/yarn-site.xml
<configuration> <!-- Site specific YARN configuration properties --> <property> <name>yarn.resourcemanager.hostname</name> <value>centosforhd</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
6 格式化hdfs
在hadoop安装目录下(/usr/lib/hadoop/hadoop-2.8.0)下运行: ./bin/hdfs namenode -format
7 启动服务
在hadoop安装目录下(/usr/lib/hadoop/hadoop-2.8.0)下运行:./bin/start-all.sh
8 确认运行
输入命令 jps 查看java进程,看是否有 DataNode, SecondaryNameNode, NameNode。