我们知道 Hadoop 是处理还量数据的
1. 存储
分布式文件系统 HDFS:Hadoop distributed file system
2. 运算
MapReduce,map() + reduce
独立模式
- 独立模式没有守护程序运行,当我们在安装Hadoop后,它就已经是独立模式了
jps
,查看当前运行的 java 进程,Hadoop 是由 java 语言编写,所有程序运行在一个 JVM 中,适合在开发期间运行 MapReduce 程序,源于他的易于测试和调试。hadoop fs -ls /
,Hadoop 文件系统中查看根目录下,实际上就是本地的根目录。
独立模式
伪分布式模式
- 修改配置文件,进入到Hadoop安装目录的配置目录下
/usr/soft/hadoop-2.8.1/etc
,拷贝一份命名为 hadoop_pseudo 如图:
hadoop_pseudo
- core-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost/</value>
</property>
</configuration>
- hdfs-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
- yarn-site.xml
<?xml version="1.0"?>
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>localhost</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
- maprd-site.xml(没有提供可以新建一个)
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
# 上述为最简单配置,每次重启机器后hdfs中的文件都会清空,添加配置
# core-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://s0/</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/ubuntu/filesystem/tmp</value>
<description> temporary directories.</description>
</property>
<property>
<name>dfs.name.dir</name>
<value>/home/ubuntu/filesystem/name</value>
<description>where on the local filesystem the DFS name node should store the name table</description>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/ubuntu/filesystem/data</value>
<description>where on the local filesystem an DFS data node should store its blocks.</description>
</property>
</configuration>
Hadoop 实际上并没有区分伪分布式和完全分布式模式,它只是在这一系列集群主机之上启动守护进程,每个主机之间通过 SSH 通信,并且启动守护进程
sshSSH 登录远程主机,无口令提示
上图是 Ubuntu 安装完自带的 ssh 它没有服务器版是不行的,需要安装
ps -Af|grep sshd #检查是否启动了sshd进程
sudo apt-get install ssh
生成 ssh 密钥
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
将公钥的内容重定向到 authorized_keys
cat id_rsa.pub >> authorized_keys
这时候连
ssh localhost.pngssh localhost
,会警告 localhost 已经呗永久的添加到识别的主机,如图:
exit
- 输入
exit
退出,后面再连接则不需要密码,(如果是centos系统,可能还会需要密码,修改authorized_keys权限为644即可),如图:
known_hosts
- 这时候查看 .ssh 目录会发现多了一个 known_hosts 文件
ssh localhost
- 这时候再输入
ssh localhost
连接,就不会再提示要输入密码了。如图:
格式化名称节点
格式化名称节点
hadoop namenode -format
,如下图所示格式化完成:
启动守护进程
启动 dfs
start-dfs.sh --config $HADOOP_INSTALL/etc/hadoop_pseudo
启动 yarn
start-yarn.sh --config $HADOOP_INSTALL/etc/hadoop_pseudo
jps通过 jps 查看守护进程:
hdfs dfs -lsr / #查看分布式文件系统
hdfs dfs -mkdir -p /user/ubuntu/hadoop #创建目录
hdfs dfs -ls / #查看根目录下文件及目录
hdfs dfs -ls -R / #递归查看根目录下文件及目录
也可以通过 webui查看
# hadoop的端口
50070 //namenode http port
50075 //datanode http port
50090 //2namenode http port
8020 //namenode rpc port
50010 //datanode rpc port
50070
http:localhost:50070
8088
http://localhost:8088
停止守护进程
stop
stop-yarn.sh
停止节点管理器
stop-dfs.sh
停止dfs
start-all.sh
- 也可以通过一个命令,
start-all.sh --config $HADOOP_INSTALL/etc/hadoop_pseudo
导出环境变量
- 然后导出环境变量
export HADOOP_CONF_DIR=$HADOOP_INSTALL/etc/hadoop_pseudo
,如图:
创建 /user
- 用 Hadoop 文件系统创建 /user 目录
- 完全分布式模式
完全分布模式和伪分布模式是没有区分的,区别就是为分布式只有一个节点,主要相对于独立模式有守护进程
# hadoop四大模块
common
hdfs //namenode + datanode + secondarynamenode
mapred
yarn //resourcemanager + nodemanager
# 启动脚本
1.start-all.sh //启动所有进程
2.stop-all.sh //停止所有进程
3.start-dfs.sh
NN
DN
2NN
4.start-yarn.sh
RM
NM
网友评论