hadoop伪分布式安装
hadoop有三种运行模式:
1,本地运行模式:hadoop的默认模式,没有守护进程,所有的程序都在同一个jvm里运行,在该模式下调试MR程序非常方便。
2,伪分布式模式,所有进程运行在一台服务器,效果跟分布式模式一样。
3,分布式模式:进程运行在多台服务器上。
一、本地运行模式:
这是hadoop的默认工作模式,不需要进行其它配置,例如运行单词统计例子,直接运行命令:
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.1.jar wordcount /root/test/input/ /root/test/output
注意:/root/test目录不要创建,运行前确保Java已安装。
![](https://images2018.cnblogs.com/blog/1367698/201807/1367698-20180705151945209-1685109953.png)
![](https://images2018.cnblogs.com/blog/1367698/201807/1367698-20180705152038321-810255624.png)
运行完后在/root/test/output可看到输出文件
![](https://images2018.cnblogs.com/blog/1367698/201807/1367698-20180705152124084-1629920140.png)
输出的内容在part-r-00000文件里,_SUCCESS文件为空,只是成功标识,查看part-r-00000文件内容:cat part-r-00000
![](https://images2018.cnblogs.com/blog/1367698/201807/1367698-20180705152222124-2065221789.png)
二、伪分布式模式:
Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。
1,安装ssh,如果已经安装过则跳过。
yum install openssh-clients
2,上传解压
window环境下在官网下载hadoop压缩包hadoop-2.6.1.tar.gz,上传到centos服务器,把文件解压到/usr/local/下。
![](https://images2018.cnblogs.com/blog/1367698/201807/1367698-20180705152306796-126107392.png)
![](https://images2018.cnblogs.com/blog/1367698/201807/1367698-20180705152342775-1228536859.png)
3,配置环境变量
修改家目录下的.bashrc文件,添加hadoop环境变量:
export JAVA_HOME=/usr/local/jdk
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
![](https://images2018.cnblogs.com/blog/1367698/201807/1367698-20180705152422485-549493359.png)
然后加载环境变量:source ~/.bashrc
4,修改配置文件
伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml,配置文件在/usr/local/hadoop/etc/hadoop/中。
![](https://images2018.cnblogs.com/blog/1367698/201807/1367698-20180705152458949-1475348388.png)
修改配置文件 core-site.xml,修改为:
<configuration> <property> <name>hadoop.tmp.dir</name> <value>file:/usr/local/hadoop/tmp</value> <description>Abase for other temporary directories.</description> </property> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration>
修改配置文件 hdfs-site.xml,修改为:
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/usr/local/hadoop/tmp/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/usr/local/hadoop/tmp/dfs/data</value> </property> </configuration>
5,格式化,配置完后要格式化才能启动。
./bin/hdfs namenode -format
![](https://images2018.cnblogs.com/blog/1367698/201807/1367698-20180705152641294-673357655.png)
6,启动hdfs
./sbin/start-dfs.sh
![](https://images2018.cnblogs.com/blog/1367698/201807/1367698-20180705152738979-1203017230.png)
用jps查看进程
![](https://images2018.cnblogs.com/blog/1367698/201807/1367698-20180705152811916-160148532.png)
在window下通过浏览器访问:http://192.168.103.137:50070
![](https://images2018.cnblogs.com/blog/1367698/201807/1367698-20180705152848943-2123928012.png)
至此hadoop启动成功!
问题1:没有安装ssh
![](https://images2018.cnblogs.com/blog/1367698/201807/1367698-20180705152922249-174013342.png)
提示ssh: command not found,需要安装ssh客户端:
yum install openssh-clients
问题2:JAVA_HOME没有配置
![](https://images2018.cnblogs.com/blog/1367698/201807/1367698-20180705153032988-854781073.png)
要添加JAVA_HOME变量,vi ~/.bashrc ,添加export JAVA_HOME=/usr/local/jdk
![](https://images2018.cnblogs.com/blog/1367698/201807/1367698-20180705153107016-454150877.png)
问题3:SSH免密登入
在上面启动hdfs中需要手动输入密码,可配置SSH免密登入,这样启动过程中就不需要输入密码了。
![](https://images2018.cnblogs.com/blog/1367698/201807/1367698-20180705153139032-1765074371.png)
1)ssh-keygen,然后一直回车
2),将生成的公匙加入到授权列表中
cat id_rsa.pub >> authorized_keys
![](https://images2018.cnblogs.com/blog/1367698/201807/1367698-20180705153210799-699234660.png)