Hadoop用户处理海量数据,需要考虑两个问题,一个是存储(存储使用分布式文件系统:HDFS),另一个是计算(计算需要使用MapReduce)
分为三种模式:
(1) 独立模式
(2) 伪分布式模式
(3) 完全分布式模式
在ubuntu的控制台上使用jps命令可以查看当前有哪些进程
使用hadoop fs -ls / (表示显示根目录下的与hadoop相关的文件)
namenode(简称是NN):名称节点,存储的相当于目录。Namenode的备份节点是secondarynamenode
datanode(简称是DN):数据节点。为了保证数据的可靠性,数据节点需要把数据备份,备份的节点是replication
开始配置
进入hadoop的安装目录下:cd /usr/software/Hadoop-2.7.1/etc/
cd hadoop
使用ls命令可以看到很多配置文件,但是在没有配置之前这些文件都是空的
因为我们后面要配置三种模式(实际上只要配置一种酒可以了,但是作为例子这里把三种都配置),所以我们把原来的没有配置的hadoop安装文件复制
cd ..
cp -R hadoop hadoop_pseudo(使用循环复制的方式把hadoop的安装目录复制到hadoop_pseudo(伪分布式))
cd hadoop_pseudo
接下来要编辑配置文件了,因为所有的配置文件都是使用-site.xml结尾的,所以可以使用gedit *-site.xml(这样可以一次性打开所有以-site.xml结尾的配置文件)
下面是配置为分布模式的配置文件配置方式
(1)配置core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost/</value>
</property>
</configuration>
(2)配置hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
(3)配置yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>localhost</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
(4) 此时需要再配置一个mapred-site.xml文件,这个文件在hadoop安装文件中一个模板,名字叫mapred-site.xml.template,现在在控制台中敲下面的命令把这个文件复制:
cp mapred-site.xml.template mapred-site.xml
(5)编辑mapred-site.xml文件:gedit mapred-site.xml
(6)配置mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
安装ssh
使用which shh可以查看是否安装了ssh,但是已经安装的ssh并不能满足我们的需要,所以还需要安装ssh
使用命令安装shh:sudo apt-cache search ssh/ sudo apt-cache search ssh
使用命令:which ssh-keygen查看是否安装成功,ssh-keygen生成秘钥
生成一对秘钥:ssh-keygen -t rsa -P ‘’ -f ~/.ssh/id_rsa(其中,-t是使用一个算法rsa,-P表示秘钥,这里是‘’,-f表示生成的秘钥存储在哪个文件)
现在使用ls并不能看到.ssh文件夹,因为这个文件夹是隐藏的,所以需要使用ls -al
进入.ssh:cd .ssh
使用ls查看文件夹中的文件
使用命令cat id_rsa.pub >> authorized_keys(把id_rsa.pub(公钥)发给对方才可以免密码登录,所以使用这条命令把公钥写入authorized_keys文件)
再使用ls发现多了一个authorized_keys文件
下面测试一下是否配置ssh成功:使用命令ssh localhost
登录成功以后,再进入.ssh文件夹中,发现多了一个文件known_hosts(这个文件中保存了哪些主机可以免密码登录)
现在已经是处于使用远程连接的方式连接到本机了,要退出远程连接的方式可以使用:exit
格式化hadoop的文件系统
hadoop namenode -format
启动守护进程
start-dfs.sh --config $HADOOP_INSTATLL/etc/hadoop_pseudo
start-yarn.sh --config $HADOOP_INSTATLL/etc/hadoop_pseudo
同时启动上面这两个还可以直接使用下面的方式:
start-all.sh --config $HADOOP_INSTATLL/etc/hadoop_pseudo
使用命令jps查看现在有哪几个进程在运行
如果还要看详细信息就可以使用命令:jps -l
查看是否启动namenode成功:访问http://localhost:50070
查看是否启动资源管理器成功:访问http://localhost:8088
停止方式:
stop-yarn.sh
stop-dfs.sh
再使用jps命令看有哪些进程在运行着:jps
配置环境变量:export HADOOP_CONF_DIR=$HADOOP_INSTALL/etc/hadoop_pseudo
这个时候使用hadoop fs -ls /发现没有显示任何文件或者文件夹,这才是合理的,因为我们还没有创建任何的文件或者文件夹
现在,我们在hadoop中创建一个名字是user的文件夹:hadoop fs -mkdir /user/
再使用hadoop fs -ls /,此时我们就可以看到有一个叫user的文件