Hadoop安装——单机
根据Hadoop官网文档Hadoop: Setting up a Single Node Cluster.
准备环境、
-
Linux下java环境 jdk1.7+,下载hadoop 解压位置
/usr/local/hadoop
-
为hadoop配置JAVA_HOME,修改
etc/hadoop/hadoop-env.sh
文件
# set to the root of your Java installation
export JAVA_HOME=/usr/local/jdk
配置运行示例、
-
1、单机示例,Hadoop默认配置是在非分布式模式,单一的 Java进程
正则匹配./input/*.xml
为输入内容,输出在./output/
下
$ mkdir input
$ cp etc/hadoop/*.xml input
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar grep input output 'dfs[a-z.]+'
$ cat output/*
<br />
- ** 2、伪分布式(Pseudo-Distributed)**,Hadoop也能在一个节点下部署伪分布式,Hadoop运行在分离的Java进程中
a、配置文件如下
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>
** b、检查 $ ssh localhost
,若无法ssh本机,执行:**
$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 0600 ~/.ssh/authorized_keys
c、格式化文件系统: $ bin/hdfs namenode -format
d、启动NameNode进程和DataNode进程: $ sbin/start-dfs.sh
hadoop进程日志在$HADOOP_LOG_DIR
目录下,默认在$HADOOP_HOME/logs
WebUI:NameNode - http://localhost:50070/
注: 启动start-dfs.sh
后,jps
显示没有datanode
进程,
查看相关日志,原因是在name和data目录下VERSION中的clusterID不一致,文件的默认目录在/tmp/hadoop-root/dfs
下的/data/current/VERSION
和/name/current/VERSION
,将data的clusterID修改与name的一致。
e、hdfs操作 在伪分布式下运行示例
hadoop fs -mkdir /input # 在hdfs上创建目录
hadoop fs -ls / # 显示hdfs上目录/下文件
hadoop fs -put input/*.xml /input #将 input/*.xml 上传到 hdfs上的/input文件夹下
hadoop fs -ls /input #显示hdfs上目录下/input下文件
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.0.jar grep /input /output 'd[a-z.]+' #运行example 输入为hdfs上的/input 输出在hdfs上的/output
hadoop fs -cat /output/* #输出结果
hadoop fs -get /output ./output #将hdfs上的 结果/output下载到 ./output
cat output/* #输出结果
<br />
- **3、YARN on a Single Node **
You can run a MapReduce job on YARN in a pseudo-distributed mode by setting a few parameters and running ResourceManager daemon and NodeManager daemon in addition.
etc/hadoop/mapred-site.xml:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
etc/hadoop/yarn-site.xml:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
启动ResourceManger进程和NodeManger进程: $ sbin/start-yarn.sh
WebUI:ResourceManager - http://localhost:8088/
在yarn上运行示例:
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.0.jar grep /input /output1 'd[a-z.]+'
注: *运行示例是如果报错显示
17/06/07 19:18:12 INFO ipc.Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 0 time(s);```
连接不到ResourceManger,原因是yarn未启动。*