hadoop伪分布式的搭建案例

环境准备

linux版本:centos7.2 64

centos环境准备

配置静态ip
##通过修改配置文件设置静态ip
vim  /etc/sysconfig/network-scripts/ifcfg-ens33
##修改一下内容
BOOTPROTO=static #修改获取ip的方式为静态
ONBOOT=yes    #设置网卡开机启动
##添加一下内容
IPADDR=192.168.1.2 #静态IP  
GATEWAY=192.168.1.1 #默认网关  
NETMASK=255.255.255.0 #子网掩码  
DNS1=192.168.1.1 #DNS 配置  
DNS2=114.114.114.114    
ssh免密登录
##生成秘钥
ssh-keygen
##将秘钥复制到机器
ssh-copy-id 本机ip地址
关闭防火墙
##查看防火墙状态
systemctl status firewalld
##启动和关闭防火墙
systemctl start firewalld
systemctl stop firewalld

##注:防火墙需要处于关闭状态

java环境准备

##jdk版本:jdk-8u131-linux-x64

##解压文件到本地目录
tar -zxvf jdk-8u131-linux-x64.tar.gez -C /opt/

##配置java的环境变量 /etc/profile
export JAVA_HOME=/java的本地路径
export $PATH=$PATH:$JAVA_HOME/bin

##使配置生效
source /etc/profile

hadoop环境准备

##hadoop版本:hadoop-2.7.2
##hadoop官方文档地址:http://hadoop.apache.org/docs/r2.7.2/

##解压文件到本地目录
tar -zxvf jdk-8u131-linux-x64.tar.gez -C /opt/

##配置hadoop的环境变量 /etc/profile
export HADOOP_HOME=/hadoop的本地路径
export $PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

##使配置生效
source /etc/profile

hadoop伪分布式配置

修改配置文件

core-site.xml
<configuration>
    <property>
    	#指定NameNode地址
        <name>fs.defaultFS</name>   
        <value>hdfs://localhost:9000</value>
    </property>
    <property>
    	#指定hadoop运行产出的文件存在的地址 可不填写 默认在/tmp下
        <name>hadoop.tmp.dir</name>   
        <value>/opt/hadoop/data/tmp</value>
    </property>    
</configuration>
hdfs-site.xml
<configuration>
    <property>
    	#hdfs数据备份分数
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>
yarn-site.xml
<configuration>

    <property>
    	#reducer获取数据的方式
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    
    <property>
    	#指定yarn的resourcemanger的地址
        <name>yarn.resourcemanger.hostname</name>
        <value>localhost</value>
    </property>
    
</configuration>
maped-site.xml

通过cp 模板得到maped-site.xml
cp mapred-site.xml.template mapred-site.xm

<configuration>
    <property>
    	#指定mr运行在yarn上
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

注:如果只使用hdfs可以不需要配置yarn-site.xml 和 maped-site.xml

启动及初始化

##启动hdfs(NameNode 和 DataNode)
bin/start-dfs.sh

##初始化NameNode
hdfs namenode -format

##测试hdfs是否启动成功 jps
9233 Jps
4676 SecondaryNameNode
4406 NameNode
4524 DataNode

测试网址:localhost:50070

##启动yarn
bin/start-yarn.sh

##测试yarn是否启动成功 jps
9233 Jps
4676 SecondaryNameNode
4406 NameNode
9175 NodeManager
9082 ResourceManager
4524 DataNode

测试网址:localhost:8088

测试案例

##hdfs上创建一个文件夹
 hdfs dfs -mkdir input
 
##上传测试数据
hdfs dfs -put input/* /input

##查看测试数据上传是否成功
hdfs dfs -ls /input/

##运行MapReduce程序 wordcount案例
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /input /output

##查看输出结果
hdfs dfs -cat /output/part-r-00000

##将测试结果下载到本地
hdfs dfs -get /output/part-r-00000

##删除输出结果
hdfs dfs -rm -r /output

可能会存在的问题

第二次hadoop启动不成功

##原因
第二次启动时,会有上一次的文件残留。NameNode重新初始化以后,会产生一个新的文件id,就无法识别旧的DataNode了

##解决方案
在NameNode初始化前,删除上次Hadoop运行时产生的相关文件,默认在/tmp下。

进阶

HDFS文件系统(含hdfs常用命令,java对hdfs API的简单操作)

猜你喜欢

转载自blog.csdn.net/DRAGON_ranhou/article/details/108624276
今日推荐