https://my.oschina.net/MyHeaven1987/blog/1821509
http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/SingleCluster.html#Pseudo-Distributed_Operation
hadoop下载
Hadoop官方下载地址: Hadoop下载地址,目前最新的稳定版本为2.9.1。
hadoop配置
-
java安装路径指定,在hadoop解压路径下,修改etc/hadoop/hadoop-env.sh脚本指定JAVA安装主路径
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
-
hdfs配置
- 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>
- etc/hadoop/core-site.xml:
-
启动ssh免密码登录
通过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
hadoop伪分布式运行
本地运行MapReduce任务指导
-
通过hadoop脚本格式化hdfs文件系统
bin/hdfs namenode -format
-
启动NameNode守护进程和DataNode守护进程
sbin/start-dfs.sh
从运行结果图来看这个脚本启动了NameNode,备NameNode和DataNode。
访问NameNode的web管理界面,默认访问地址http://localhost:50070,确认NameNode状态正常
-
创建hdfs路径用于运行MapReduce任务,<username>需要替换为当前用户名,mkdir创建目录需要逐级创建。
bin/hdfs dfs -mkdir /user
bin/hdfs dfs -mkdir /user/<username> -
拷贝本地文件到分布式文件系统中
bin/hdfs dfs -put etc/hadoop input
-
运行hadoop官方提供的示例程序
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.1.jar grep input output 'dfs[a-z.]+'
-
获取分布式文件运行的输出文件到本地
bin/hdfs dfs -get output output
cat output/*
总结
通过伪分布式启动Hadoop,可以看到hadoop运行需要HDFS和mapreduce两部分组成,在后面的博客中我们将会详细了解这两部分。