问题导读
从本文部署实际部署,总结本地模式、伪分布、分布式的区别是什么?
单机是否是伪分布?
本地模式是否可以运行mapreduce?
由于hadoop安装方式有三种,并且三种安装方式都可以在前面的基础上继续配置,分别是:
- 本地模式
- 伪分布
- 分布式
准备
创建用户组
groupadd hadoop
添加一个组 useradd hadoop -g hadoop
添加用户
安装jdk1.8
* 安装完之后不要忘了将所有者设置为hadoop*
使用命令chown -R hadoop:hadoop java/
安装ssh
sudo apt-get install ssh
配置可以免密码登陆本机
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
这条命令完成后,会在当前文件夹下面的.ssh文件夹下创建id_dsa和id_dsa.pub两个文件,这是SSH的一对私钥和公钥,把id_dsa.pub(公钥)追加到授权的key中去。
关于这两个命令的详细解释可参考云技术基础:集群搭建SSH的作用及这些命令的含义
输入ssh localhost
,显示登陆成功信息。
安装rsync
sudo apt-get install rsync
修改网卡:
注释掉127.0.1.1 ubuntu
添加新的映射
10.0.0.81 ubuntu
安装Hadoop
下载hadoop
解压到/usr目录下面
设置hadoop环境变量
使用nano /etc/profile
命令编辑添加如下内容:
export HADOOP_HOME=/usr/hadoop/hadoop-2.7.2
同时把”PATH”改为
export PATH="$JAVA_HOME/bin:$JAVA_HOME/jre/bin:HADOOP_HOME/bin:$PATH"
现在profile文件的内容为:
export JAVA_HOME=/usr/lib/jvm/java8
export CLASSPATH=.:${JAVA_HOME}/lib:${JAVA_HOME}/jre/lib:CLASSPATH
export HADOOP_HOME=/usr/hadoop/hadoop-2.7.2
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:HADOOP_HOME/bin:$PATH
同样也要执行source /etc/profile
使配置文件生效。
更改文件权限
为了以后操作/usr/hadoop文件夹里面的文件方便,我们将其所有者改为hadoop
sudo chown -R hadoop:hadoop hadoop/
配置Hadoop伪分布式模式
我这里的全路径是:/usr/hadoop/hadoop-2.7.2/
配置hadoop环境文件
进入haddop安装文件的配置文件目录etc/hadoop
打开文件,找到某行有”# export JAVA_HOME = …”字样的地方,去掉“#”,然后在等号后面填写你自己的JDK路径,比如像我自己的JDK路径,那就改为了如下所示
export JAVA_HOME=/usr/lib/jvm/java8
**TIPS:如果你不小心忘了JDK路径也没关系,使用whereis java
或者echo $JAVA_HOME
就可以看到你的jdk安装路径**
配置Hadoop的核心文件core-site.xml
打开文件,会发现标签中是空的,在空的地方添加如下配置
含义:接收Client连接的RPC端口,用于获取文件系统metadata信息。
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
修改etc/hadoop/hdfs-site.xml:
添加如下内容:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
含义:备份只有一份
配置Hadoop中MapReduce的配置文件mapred-site.xml
默认情况下,etc/hadoop/文件夹下有mapred.xml.template文件,我们要复制该文件,并命名为mapred.xml,该文件用于指定MapReduce使用的框架。
使用命令:cp mapred-site.xml.template mapred-site.xml
打开文件,在<configuration> </configuration>
中添加如下配置
“`
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
“`
格式化Hadoop文件系统HDFS并启动Hadoop
首次运行hadoop必须进行格式化Hadoop文件系统,以后运行即可跳过
格式化文件系统
打开命令行,进入安装Hadoop的文件路径下,然后在命令行输入bin/hadoop namenode -format
启动Hadoop:
在命令行里面输入sbin/start-all.sh
验证是否正常启动
在命令行里面输入jps
,然后回车,如果在命令行里面出现如下类似画面则说明已经正常启动。(因为前面的数字可以不同)关闭Hadoop
在Hadoop安装的文件夹路径下面在命令行输入sbin/stop-all.sh
检查运行状态
所有的设置已完成,Hadoop也启动了,现在可以通过下面的操作查看
服务是否正常,在Hadoop中用于监控集群健康状态的Web界面:
- Hadoop 管理介面 http://localhost:50030/
- Hadoop Task Tracker 状态http://localhost:50060/
- Hadoop DFS 状态 http://localhost:50070/