一、Hadoop启动模式
Hadoop集群有三种启动模式:
单机模式:默认情况下运行为一个单独机器上的独立Java进程,主要用于调试环境
伪分布模式:在单个机器上模拟成分布式多节点环境,每一个Hadoop守护进程都作为一个独立的Java进程运行
完全分布式模式:真实的生产环境,搭建在完全分布式的集群环境
下面介绍下伪分布式hadoop环境的搭建
二、分布式hadoop环境的搭建
2.1 安装jdk
查看jdk环境变量
echo $JAVA_HOME
/usr/java/jdk1.8.0_131
2.2 下载安装Hadoop
下载的版本为hadoop2.6
//下载安装包
$ wget wget http://labfile.oss.aliyuncs.com/hadoop-2.6.0.tar.gz
$ tar zxvf hadoop-2.6.0.tar.gz
$ rm -r /home/hadoop/hdfs #删除原本目录中的hdfs文件夹
$ mv hadoop-2.6.0 /home/hadoop/hdfs
$ chmod 777 /home/hadoop/hdfs
如果出现解压失败,可能是下载hadoop-2.6.0.tar.gz的hadoop-2.6.0.tar.gz只是个链接(document text)。
$ file hadoop-2.6.0.tar.gz
hadoop-2.6.0.tar.gz: HTML document text
解决方案:通过浏览器去下载安装包后再上传文件到linux服务器再解压。
2.3 配置Hadoop
配置 .bashrc文件 ,在用户根目录下通过 ll -a 可以显示出.bashrc隐藏文件。
[hadoop@Hadoop ~]$ ll -a
-rw-r--r--. 1 hadoop hadoop 327 Jun 14 10:22 .bashrc
配置.bashrc文件
export HADOOP_HOME=/home/hadoop/hdfs/hadoop-2.6.0
export JAVA_HOME=/usr/java/jdk1.8.0_131
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
应用环境变量
source .bashrc
修改core-site.xml
vim /home/hadoop/hdfs/hadoop-2.6.0/etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/tmp</value>
</property>
</configuration>
常用配置说明
fs.defaultFS这是默认的HDFS路径。当有多个HDFS集群同时工作时,用户在这里指定默认HDFS集群,该值来自于hdfs-site.xml中的配置。
fs.default.name这是一个描述集群中NameNode结点的URI(包括协议、主机名称、端口号),集群里面的每一台机器都需要知道NameNode的地址。DataNode结点会先在NameNode上注册,这样它们的数据才可以被使用。独立的客户端程序通过这个URI跟DataNode交互,以取得文件的块列表。
hadoop.tmp.dir 是hadoop文件系统依赖的基础配置,很多路径都依赖它。如果hdfs-site.xml中不配置namenode和datanode的存放位置,默认就放在/tmp/hadoop-${user.name}这个路径中。
修改hdfs-site.xml:
vim /home/hadoop/hdfs/hadoop-2.6.0/etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop/tmp/dfs/data</value>
</property>
</configuration>
dfs.replication它决定着系统里面的文件块的数据备份个数。对于一个实际的应用,它应该被设为3(这个数字并没有上限,但更多的备份可能并没有作用,而且会占用更多的空间)。少于三个的备份,可能会影响到数据的可靠性(系统故障时,也许会造成数据丢失)
dfs.data.dir这是DataNode结点被指定要存储数据的本地文件系统路径。DataNode结点上的这个路径没有必要完全相同,因为每台机器的环境很可能是不一样的。但如果每台机器上的这个路径都是统一配置的话,会使工作变得简单一些。默认的情况下,它的值为file://${hadoop.tmp.dir}/dfs/data这个路径只能用于测试的目的,因为它很可能会丢失掉一些数据。所以这个值最好还是被覆盖。
dfs.name.dir这是NameNode结点存储hadoop文件系统信息的本地系统路径。这个值只对NameNode有效,DataNode并不需要使用到它。上面对于/temp类型的警告,同样也适用于这里。在实际应用中,它最好被覆盖掉。
修改mapred-site.xml:
cp /home/hadoop/hdfs/hadoop-2.6.0/etc/hadoop/mapred-site.xml.template /home/hadoop/hdfs/hadoop-2.6.0/etc/hadoop/mapred-site.xml
vim /home/hadoop/hdfs/hadoop-2.6.0/etc/hadoop/mapred-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
修改yarn-site.xml
vim /home/hadoop/hdfs/hadoop-2.6.0/etc/hadoop/yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
修改hadoop-env.sh:
vim /home/hadoop/hdfs/hadoop-2.6.0/etc/hadoop/hadoop-env.sh
#修改JAVA_HOME HADOOP_CONF_DIR
export JAVA_HOME=${JAVA_HOME}
export HADOOP_CONF_DIR=/home/hadoop/hdfs/hadoop-2.6.0/etc/hadoop
格式化HDFS文件系统
$ hadoop namenode -format
启动NameNode,DataNode
start-dfs.sh
启动yarn ResourceManager 和NodeManager
start-yarn.sh
通过指令 jps后能看到 进程 NameNode、DataNode、ResourceManager、NodeManager则表示hadoop启动成功。
jps
停止hadoop
stop-all.sh
启动hadoop
start-all.sh
查看java进程
jps








网友评论