Hadoop的运行有三种形式:
- 单实例运行
- 伪分布式
- 完全分布式
本文主要介绍单实例Hadoop的安装以及使用简介。下面的安装和配置步骤主要是为了快速安装和体验Hadoop,而不是在产品环境下使用Hadoop。
单实例Hadoop
1.下载
从Hadoop下载主页中选择合适的版本下载Hadoop。
命令示例如下:
HADOOP_VERSION=hadoop-3.0.0-alpha1
wget http://apache.fayea.com/hadoop/common/${HADOOP_VERSION}/${HADOOP_VERSION}.tar.gz
wget https://dist.apache.org/repos/dist/release/hadoop/common/${HADOOP_VERSION}/${HADOOP_VERSION}.tar.gz.mds
wget https://dist.apache.org/repos/dist/release/hadoop/common/${HADOOP_VERSION}/${HADOOP_VERSION}.tar.gz.asc
wget https://dist.apache.org/repos/dist/release/hadoop/common/KEYS
2.验证和解压
-
验证
命令执行类似如下:HADOOP_VERSION=hadoop-3.0.0-alpha1 md5 ${HADOOP_VERSION}.tar.gz | awk '{print $4}' > mycomputation.md5 sed -n '1,2p' ${HADOOP_VERSION}.tar.gz.mds | sed 's/[ ]//g' | awk -v RS="" -F= '{gsub("\n","");print tolower($2)}' > extraction.md5 diff mycomputation.md5 extraction.md5 gpg -q --import KEYS gpg --verify ${HADOOP_VERSION}.tar.gz.asc ${HADOOP_VERSION}.tar.gz
-
解压
验证解压下载的文件,并进入其根目录。
命令执行类似如下:HADOOP_VERSION=hadoop-3.0.0-alpha1 tar xzvf ${HADOOP_VERSION}.tar.gz cd ${HADOOP_VERSION}
3.设置JAVA_HOME环境变量
修改配置JAVA_HOME
。
注意:
是通过修改文件etc/hadoop/hadoop-env.sh
中的JAVA_HOME
属性变量。
示例如下:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home/
4.测试安装正常
通过执行
bin/hadoop
执行命令bin/hadoop
,正常情况应该显示hadoop的命令使用文档。-
运行map reduce任务
执行如下命令:mkdir input cp etc/hadoop/*.xml input bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.0-alpha1.jar grep input output 'dfs[a-z.]+' cat output/*
伪分布式Hadoop
1.配置
-
编辑文件
etc/hadoop/core-site.xml
:<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration>
-
编辑文件
etc/hadoop/hdfs-site.xml
:<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
2.无密码ssh登陆
执行如下命令:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
3.执行测试
格式化文件系统:
bin/hdfs namenode -format-
启动NameNode daemon和DataNode daemon:
sbin/start-dfs.sh
日志写到$HADOOP_LOG_DIR
目录(缺省是$HADOOP_HOME/logs
)。
- 浏览NameNode的web接口:
- NameNode - http://localhost:9870/
-
创建HDFS目录来执行MapReduce任务:
bin/hdfs dfs -mkdir /user bin/hdfs dfs -mkdir /user/zhengfq
-
拷贝输入文件到分布式文件系统:
bin/hdfs dfs -mkdir input bin/hdfs dfs -put etc/hadoop/*.xml input
-
运行例子:
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.0-alpha1.jar grep input output 'dfs[a-z.]+'
-
检查输出:
bin/hdfs dfs -cat output/*
-
停止进程:
sbin/stop-dfs.sh