Hadoop 单机环境搭建和伪分布环境搭建

Hadoop 最开始是搭建在Linux系统程序上的,为学习方便所以采用Linux系统来进行学习Hadoop

Hadoop环境搭建有三种模式

单机环境搭建    伪分布环境搭建    完全分布环境搭建

这里只讲前面两种

搭建环境前准备

1.Vmware 虚拟机下载安装:

官网:https://my.vmware.com 下载

2.Linux系统 下载安装:

官网:http://mirrors.163.com/centos/7.4.1708/isos/x86_64/

3.jdk linux版本下载

官网:https://www.oracle.com/

4.Hadoop 安装包下载

官网:http://hadoop.apache.org/

然后就是安装虚拟机---》安装CentOS系统----》安装JDK----》安装Hadoop

安装虚拟机查看我的博客:https://blog.csdn.net/weixin_39209728/article/details/79676920

ping通外网查看我的博客:https://blog.csdn.net/weixin_39209728/article/details/79679026

网络连接设置:有三种模式 (仅主机、 桥接 、nat)
1.仅主机;查看虚拟机的vment1--ip网段 (查看的是93)
	设置ifconfig ens33 192.168.93.2(临时)
2.有网络情况下连接:
使用桥接 
本机网段是0网段(需要查看)--和真实机网段是一个网段
需要修改ifconfig ens33 192.168.1.2(临时)

设置固定ip地址(查看本地ip地址所在网段 修改固定ip地址网段和本地一致)
ONBOOT=yes #开机自动打开
BOOTPROTO=static #静态获取
DNS1=192.168.0.1 #DNS解析地址
IPADDR=192.168.0.2 #固定ip地址设置
NETMASK=255.255.255.0 #子网掩码
GATEWAY=192.168.0.1 #默认网关

创建用户

useradd -d/usr/hadoop -m hadoop    ---其中-d和-m用来为登录名hadoop产

生一个主目录/user/hadoop
passwd hadoop---设置密码
chown -R hadoop:hadoop /usr/hadoop/  ---分配权限

su hadoop ---以hadoop用户登录
su root--切换到root用户下
pwd ---显示当前用户所在位置
cd .. ---返回上级菜单

安装jdk 和 hadoop 并配置环境变量

cd /usr/hadoop/  ---找到该安装包
ll
sudo tar -xvf jdk(按tab键自动出来)...gz   ----然后执行解压缩操作
sudo tar -xvf jdk(按tab键自动出来)...gz  -C /usr/hadoop/jdk
vi /etc/profile/
export JAVA_HOME=/usr/hadoop/jdk1.7---设置环境变量
export PATH=/usr/hadoop/jdk1.7.0_80/bin:${PATH}--设置用户路径
source /etc/profile ----使变量设置生效
echo $JAVA_HOME     # 检验变量值
java -version
$JAVA_HOME/bin/java -version  # 与直接执行 java -version 一样
验证jdk版本号 验证jdk是否安装成功
hadoop版本以及安装
http://hadoop.apache.org/
下载2.7.5版本
用ftp上传
cd /usr/hadoop/
ll
sudo tar -xvf hadoop --解压缩
sudo tar -xvf hadoop (按tab键自动出来)...gz  -C /usr/hadoop/had
vi /etc/profile/  ---配置环境变量
export HADOOP_HOME=/usr/hadoop/hadoop---设置环境变量
export PATH=.:$HADOOP_HOME/bin:$JAVA_HOME/bin:${PATH}--设置用户路径
source /etc/profile ----使变量设置生效
查看hadoop版本:hadoop version

配置hadoop环境配置文件

进入hadoop配置文件夹
配置hadoop环境配置文件
cd /usr/hadoop/hadoop-2.7.5/etc/hadoop
vi hadoop-env.sh
取消JAVA_HOME前面的#符号

Hadoop的目录结构
bin:hadoop的命令
sbin:hadoop的集群的命令
etc:hadoop的所有配置文件
share:
	doc:文档
	hadoop:所有jar包
		common:共用的jar包
		hdfs:
		mapreduce:

hadoop的本地模式(单机模式)

1.特点 不具备hdfs 只能在测试MapReduce程序
2.安装 只需要配置hadoop-env.sh-----》修改JAVA_HOME路径就可以了
echo $JAVA_HOME  -----查看JAVA_HOME所在位置
cd /usr/hadoop/hadoop-2.7.5/etc/hadoop
vi hadoop-env.sh
:set number ----打开行号
把JAVA_HOME重新配置一下
export JAVA_HOME=/usr/hadoop/jdk1.7.0_80
esc
:wq---->保存

3.演示一个Demo:
找到/usr/hadoop/hadoop-2.7.5/share/hadoop/mapreduce
这里都是mapreduce的程序
hadoop jar hadoop-mapreduce-examples-2.7.5.jar---执行命令程序

mkdir -p data/input
mkdir -p data/output  ----创建输入 输出文件夹 
cd data/input
vi data.txt
cd ~
cd /usr/hadoop/hadoop-2.7.5/share/hadoop/mapreduce
hadoop jar hadoop-mapreduce-examples-2.7.5.jar wordcount 

/usr/hadoop/hadoop-2.7.5/share/hadoop/mapreduce/data/input/data.txt 

/usr/hadoop/hadoop-2.7.5/share/hadoop/mapreduce/data/output/wc.txt

---执行wordcount程序
	日志;18/03/24 22:00:31 INFO mapreduce.Job: Job 

job_local1944524983_0001 running in uber mode : false
MRPRODUCE有自己默认的排序规则

Hadoop的伪分布模式

1.特点:具备Hadoop的所有功能,在单机上模拟一个分布式的环境。
	1)HDFS:主:NameNode 数据节点:DateNode
	2)Yarn:容器,运行MapReduce程序
		主节点:ResourceManager
		从节点:NodeManager
伪分布模式的配置
hadoop-env.sh   配置参数  JAVA_HOME   /usr/hadoop/jdk1.7.0_80
core-site.xml	配置参数  fs.defaultFS   hdfs://<hostname>:9000
			  hadoop.tmp.dir /usr/hadoop/hadoop-2.7.5/tmp
hdfs-site.xml	配置参数  dfs.namenode.name.dir <dir>/dfs/namenode
			  dfs.datanode.data.dir <dir>/dfs/datanode
			  dfs.http.address <hostname>:50070
			  dfs.replication 1
			  dfs.permissions  false
mapred-site.xml	配置参数  mapreduce.framework.name  yarn
			  mapred.job.tracker hdfs://<hostname>:9001
			  mapred.system.dir file:/<dir>/mapred/system
			  mapred.local.dir file:/<dir>/mapred/local
yarn-site.xml	配置参数  yarn.resourcemanager.hostname  <hostname>
	       yarn.nodemanager.aux-services mapreduce_shuffle  


xml格式:

 

2.步骤

 

1)修改core-site.xml
<!-- 配置HDFS的NameNode-->
<property>
	<name>fs.defaultFS</name>
	<value>hdfs://192.168.0.2:9000</value>
</property>
<!-- 配置DataNode保存数据的位置 tmp目录必须事先就有-->
<property>
	<name>hadoop.tmp.dir</name>
	<value>/usr/hadoop/hadoop-2.7.5/tmp</value>
</property>
2)修改hdfs-site.xml
cd /usr/hadoop/hadoop-2.7.5/
mkdir tmp
cd tmp
pwd  ---拷贝当前目录位置
<property>
      <name>dfs.namenode.name.dir</name>
      <value>/home/ylf/hadoop/dfs/namenode</value>
      <final>true</final>
</property>      
<property>
       <name>dfs.datanode.data.dir</name>
       <value>/home/ylf/hadoop/dfs/datanode</value>
      <final>true</final>
</property>
<property>
      <name>dfs.http.address</name>
      <value>localhost:50070</value>
       <description>
         The address and the base port where the dfs namenode web ui will listen on.
If the port is 0 then the server will start on a free port.
      </description>
</property>
<!-- 配置HDFS的冗余度-->
<property>
	<name>dfs.replication</name>
	<value>1</value>
</property>
<!-- 配置是否检查权限-->
<property>
	<name>dfs.permissions</name>
	<value>false</value>
</property>

3)修改mapred-site.xml
ls mapred-site.xml.template(Tab键) --查找mapred-site.xml
cp mapred-site.xml.template mapred-site.xml --修改文件名
vi mapred-site.xml ---编辑文件
<!-- 配置MR运行的框架-->
<property>
	<name>mapreduce.framework.name</name>
	<value>yarn</value>
</property>
<property>
      <name>mapred.job.tracker</name>
      <value>hdfs://localhost:9001</value>
    </property>
<property>  
          <name>mapred.system.dir</name>  
          <value>file:/home/ylf/hadoop/mapred/system</value>  
          <final>true</final>  
</property>  
<property>  
          <name>mapred.local.dir</name>  
          <value>file:/home/ylf/hadoop/mapred/local</value>  
          <final>true</final>  
</property> 
4)修改yarn-site.xml
<!-- 配置ResourceManaget的地址-->
<property>
	<name>yarn.resourcemanager.hostname</name>
	<value>192.168.0.2</value>
</property>
<!-- 配置执行任务的方式-->
<property>
	<name>yarn.nodemanager.aux-services</name>
	<value>mapreduce_shuffle</value>
</property>
5)格式化namenode
hdfs namenode -format
日志:18/03/24 22:58:43 INFO common.Storage: Storage directory 

/usr/hadoop/hadoop-2.7.5/tmp/dfs/name has been successfully 

formatted.
说明格式化成功了
6)启动:在sbin目录下运行命令
start-all.sh
  HDFS 存储数据
  Yarn 执行程序

jps
7)访问 
	命令行
	java api
	web console:
		HDFS:http://192.168.0.2:50070
		Yarn:http://192.168.0.2:8088

hadoop 访问不了
 

1.修改:vi /etc/selinux/config
SELINUX=disabled
2.是否关闭linux系统的防火墙

关闭防火墙

如访问不通过 可能是防火墙没有关闭
伪集群搭建采用的是CentOS 7.0,而CentOS7.0默认使用的是firewall作为防火

墙,可以改为iptables。

Firewall:

systemctl start firewalld.service#启动firewall

systemctl stop firewalld.service#停止firewall

systemctl disable firewalld.service#禁止firewall开机启动

改成iptables:

systemctl startiptables.service

jps命令能看到

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值