Hadoop平台搭建

(一)安装Java jdk
1.下载jdk并安装

从官网下载后找个,在usr/local/java文件夹下解压 ,用到的命令 为tar -zxvf xx -C 路径名

2.设置java环境变量
sudo gedit /etc/profile  

/etc/profile 不管用什么身份登录等会起作用的环境变量,为了省事所以就配置这个,还有bash_profile

如果你的计算机仅仅作为开发使用时推荐使用这种方法,因为所有用户的shell都有权使用这些环境变量,可能会给系统带来安全性问题。
用文本编辑器打开/etc/profile
在profile文件末尾加入:

export JAVA_HOME=/usr/local/java/jdk1.8.0_25  
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export PATH=${JAVA_HOME}/bin:$PATH

注意
a. 要将/usr/local/java/jdk1.8.0_25改为你的jdk安装目录
b. linux下用冒号“:”来分隔路径
c.$ PATH / $CLASSPATH / $JAVA_HOME"是用来引用原来的环境变量的值 ,在设置环境变量时特别要注意不能把原来的值给覆盖掉了,这是一种 常见的错误。
d.CLASSPATH中当前目录“.”不能丢,把当前目录丢掉也是常见的错误。
e. export是把这三个变量导出为全局变量。
f. 大小写必须严格区分。

然后更新配置

source /etc/profile  

通过java javac java -version,来检测是否安装好

(二)Hadoop有三种搭建模式,

common-step1:解压文件到/usr/local/hadoop文件夹下

tar -zxvf hadoop-2.7 -C /usr/local/hadoop

common-step2:配置环境变量(etc/profile)

# set hadoop path
export HADOOP_HOME=/usr/local/hadoop/hadoop-2.8.3

这样配置的话,可以在hadoop的解压目录下通过bin/hadoop命令来运行hadoop指令

如果想要在任何目录下运行hadoop指令,再上述的基础上,加上下面的配置

export PATH=$HADOOP_HOME/bin:$PATH 

在终端使用hadoop指令测试是否可以使用

1.搭建local模式(standalone模式)

上述操作已经搭建好了一个local模式的Hadoop,现在运行自带的wordcout程序:

在hadoop的解压目录下创建input和output两个文件夹,在input中放一个记录文件a.txt,使用命令

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.0.jar wordcount input/a.txt output/b.txt

<img src='localrun.png'>

2.搭建伪分布式Hadoop(使用yarn和不使用yarn配置不同)

伪分布式,即每个hadoop的守护进程(比如Master,slaver)都为一个Java进程,而不是运行在不同的物理机上

先在hadoop-env文件中把javahome写好,再进行下面的操作

2.1不使用yarn管理资源

对两个文件进行配置 core-site.xml , hdfs-site.xml ,

修改etc/hadoop/core-site.xml:

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
    <property>
             <name>hadoop.tmp.dir</name>
             <value>file:///usr/hadoop/hadoop-2.6.0/tmp</value> (缓存文件)
    </property>
</configuration>

修改 etc/hadoop/hdfs-site.xml:

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

检查能不能使用ssh无密码登录主机

ssh localhost

如果不能,则创建本机ssh免密登录

开始运行Hadoop,执行一下指令

先启动hadoop sbin下的

start-all.sh
  1. 格式化文件系统

     $ bin/hdfs namenode -format
  2. 启动namenode和datanode守护进程

     $ sbin/start-dfs.sh

    如果遇到了什么幺蛾子,比如终端显示not permitted 或者no suchdirecory等信息,应该是权限不够,要么用 root用户登录后再执行,要么就修改hadoop文件的权限 sudo chmod -R 777 hadoop

  3. 打开浏览器,查看namenode界面

http://localhost:50070/

<img src='nmgui.png'>

  1. 创建HDFS文件目录来执行MapReduce作业

    bin/hdfs dfs -mkdir /user
    bin/hdfs dfs -mkdir /user/<username>
  2. 将文件上传到hdfs

    bin/hdfs dfs -put etc/hadoop/*.xml input

  3. 运行自带程序wordcount

    bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.0.jar wordcout input/*.xml  output/a.txt(hdfs)(这两个都是hdfs的目录)
  4. 将hdfs文件复制到本地

    bin/hdfs dfs -get output(hdfs) output(local)
  5. 关闭hdfs

     sbin/stop-dfs.sh

    2.2使用yarn作为资源管理器

  6. 配置etc/hadoop/mapred-site.xml:

    <configuration>
       <property>
           <name>mapreduce.framework.name</name>
           <value>yarn</value>
       </property>
    </configuration>
  7. 配置etc/hadoop/yarn-site.xml:

    <configuration>
       <property>
           <name>yarn.nodemanager.aux-services</name>
           <value>mapreduce_shuffle</value>
       </property>
       <property>
           <name>yarn.nodemanager.env-whitelist</name>
           <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
       </property>
    </configuration>
  8. 启动yarn作为RM

    sbin/start-yarn.sh
  9. 打开浏览器查看

    http://localhost:8088/

    <img src='3.png'>

  10. 在yarn上运行wordcount 跟上面的流程一样

  11. 关闭yarn

    sbin/stop-yarn.sh

可能踩到的坑:

1.出现下面的情况说明在配置文件件中的编码有问题,尤其是在配置mapred-site.xml的时候,从模板复制过来的文件中前两行没有指定编码方式,打开其他文件,把前两行copy以下放进去就行了

<img src='1.png'>

2.bin/hadoop命令无法使用

<img src='binhadoop.png'>

这个命令必须在hadoop的安装目录下使用,而不是在任意目录下使用

3.配置好免密登录ssh后,ssh localhost还是要输入密码?

ssh免密登录是针对不同用户的。比如root下设置的ssh免密对于普通身份就是不可用的

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值