1、基础环境配置

主机名 IP地址 角色 Hadoop用户
centos05 192.168.48.105

NameNode、ResourceManager、SecondaryNameNode、

DataNode、NodeManager

hadoop

1.1、关闭防火墙和SELinux

1.1.1、关闭防火墙

    略

1.1.2、关闭SELinux

    略

    注:以上操作需要使用root用户

1.2、hosts配置

  

 | [root@centos05 ~]#  vim/etc/hosts
| ##hadoop host####
| 192.168.48.105 centos05

  

 | [root@centos05 ~]#  vim /etc/sysconfig//network

3 | HOSTNAME=centos05

  注:以上操作需要使用root用户,通过ping 主机名可以返回对应的IP即可

1.3、创建主机账号及配置无密码访问

  

新建用户,建议用adduser命令
sudo adduser hadoop
passwd hadoop 输入密码后一直按回车即可,最后输入y确定。
在创建hadoop用户的同时也创建了hadoop用户组,下面我们把hadoop用户加入到hadoop用户组
输入
sudo usermod -a -G hadoop hadoop 前面一个hadoop是组名,后面一个hadoop是用户名。完成后输入一下命令查询结果。
cat /etc/group 然后再把hadoop用户赋予root权限,让他可以使用sudo命令
切换到可以root的用户输入
sudo gedit /etc/sudoers
sudo vi /etc/sudoers
在图形界面可以用第一个命令,是ubuntu自带的一个文字编辑器,终端命令界面使用第二个命令。有关vi编辑器的使用自行百度。 修改文件如下:
# User privilege specification
root ALL=(ALL) ALL
hadoop ALL=(ALL) ALL
保存退出,hadoop用户就拥有了root权限
生成私钥和公钥
ssh-keygen -t rsa
拷贝公钥到主机(需要输入密码)
ssh-copy-id hadoop@hadoop
注:以上操作需要在hadoop用户,通过hadoop用户ssh到本机主机不需要密码即可

1.4、Java环境配置

1.4.1、下载JDK

  略

1.4.2、安装java

  略

2、安装hadoop

2.1、下载安装CDH版本的hadoop

  下载链接:http://archive-primary.cloudera.com/cdh5/cdh/5/

2.2、安装配置hadoop

  hadoop的安装配置使用hadoop用户操作;

  • 创建目录,用于存放hadoop数据;
[hadoop@centos05 ~]$ mkdir -p /home/hadoop/app/hadoop/hdfs/{name,data}

2.2.1、配置core-site.xml

[hadoop@centos05 ~]$vim  /opt/hadoop/hadoop-2.6./etc/hadoop/core-site.xml

<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/opt/hadoop/tmp</value>
</property>
</configuration>

2.2.2、配置hdfs-site.xml

[hadoop@centos05 hadoop]$ vim /opt/hadoop/hadoop-2.6./etc/hadoop/hdfs-site.xml

<configuration>
<property>
<name>dfs.replication</name>
<value></value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop/hdfs/data</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>

2.2.3、配置mapred-site.xml

[hadoop@centos05 hadoop]$cd /opt/hadoop/hadoop-2.6./etc/hadoop

[hadoop@centos05 hadoop]$cp mapred-site.xml.template mapred-site.xml

[hadoop@centos05 hadoop]$vim /opt/hadoop/hadoop-2.6./etc/hadoop/mapred-site.xml

<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>

2.2.4、配置yarn-site.xml

[hadoop@centos05 hadoop]$  vim /opt/hadoop/hadoop-2.6./etc/hadoop/yarn-site.xml

<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>

2.2.5、配置slaves

[hadoop@centos05 hadoop]$ vim /opt/hadoop/hadoop-2.6./etc/hadoop/slaves

centos05

2.2.6、配置hadoop-env

  修改hadoop-env.sh文件的JAVA_HOME环境变量,操作如下:  

[hadoop@centos05 hadoop]$ vim /opt/hadoop/hadoop-2.6./etc/hadoop/hadoop-env.sh

export JAVA_HOME=/opt/java/jdk1..0_191

2.2.7、配置yarn-env

  修改yarn-env.sh文件的JAVA_HOME环境变量,操作如下:

[hadoop@centos05 hadoop]$ vim /opt/hadoop/hadoop-2.6./etc/hadoop/hadoop-env.sh

export JAVA_HOME=/opt/java/jdk1..0_191

2.2.8、配置mapred-env

  修改mapred-env.sh文件的JAVA_HOME环境变量,操作如下:

[hadoop@centos05 hadoop]$ vim /opt/hadoop/hadoop-2.6./etc/hadoop/hadoop-env.sh

export JAVA_HOME=/opt/java/jdk1..0_191

2.2.9、配置HADOOP_PREFIX

  配置HADOOP主机用户环境变量:

[hadoop@centos05 ~]$ vim .bash_profile

####HADOOP_PREFIX####
export HADOOP_PREFIX=/opt/hadoop/hadoop-2.6.
export PATH=$PATH:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin

  启用环境变量

[hadoop@centos05 ~]$ source .bash_profile 

  注:通过echo $HADOOP_PREFIX命令返回hadoop的安装目录

3、启动hadoop伪分布式

3.1、启动hdfs和yarn

  • 格式化hdfs

    [hadoop@centos05 ~]$  hdfs namenode -format
  • 启动dfs

  • 启动yarn

    [hadoop@centos05 ~]$  start-dfs.sh
    
    [hadoop@centos05 ~]$  start-yarn.sh

      

  • 查看启动的进程

    [hadoop@centos05 ~]$ jps
    DataNode
    ResourceManager
    SecondaryNameNode
    Jps
    NodeManager
    NameNode

    注:关闭dfs命令为:stop-dfs.sh     stop-yarn.sh

3.3、启动集群

  hdfs和yarn的启动可以使用一条命令执行:  

启动:start-all.sh
关闭: stop-all.sh
  • 启动后的所有进程:  

[hadoop@centos05 ~]$ start-all.sh
This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh
Starting namenodes on [centos05]
centos05: starting namenode, logging to /opt/hadoop/hadoop-2.6./logs/hadoop-hadoop-namenode-centos05.out
centos05: starting datanode, logging to /opt/hadoop/hadoop-2.6./logs/hadoop-hadoop-datanode-centos05.out
Starting secondary namenodes [0.0.0.0]
0.0.0.0: starting secondarynamenode, logging to
      /opt/hadoop/hadoop-2.6./logs/hadoop-hadoop-secondarynamenode-centos05.out
starting yarn daemons
starting resourcemanager, logging to /opt/hadoop/hadoop-2.6./logs/yarn-hadoop-resourcemanager-centos05.out
centos05: starting nodemanager, logging to /opt/hadoop/hadoop-2.6./logs/yarn-hadoop-nodemanager-centos05.out
[hadoop@centos05 ~]$

 

  • 启动后的所有进程:

[hadoop@centos05 ~]$ jps
NodeManager
Jps
NameNode
ResourceManager
SecondaryNameNode
DataNode

4、hdfs的shell操作和Wordcount演示

4.1、简单的hdfs shell操作

  • 创建目录

    [hadoop@centos05 ~]$ hadoop fs -mkdir /input_test
    $ hadoop fs -mkdir /output_test
  • 查看目录

    [hadoop@centos05 ~]$ hadoop fs -ls /
    Found items
    drwxr-xr-x - hadoop supergroup -- : /input_test
    drwxr-xr-x - hadoop supergroup -- : /output_test
    drwx------ - hadoop supergroup -- : /tmp
  • 上传文件

    [hadoop@centos05 /]$ hadoop fs -put  /opt/hadoop/hadoop-2.6./share/doc/index.html  /input_test
  • 查看上传文件
  • [hadoop@centos05 /]$ hadoop fs -ls    /input_test/index.html
    -rw-r--r-- hadoop supergroup -- : /input_test/index.html

      

  • 查看文本文件内容

    [hadoop@centos05 /]$ hadoop fs -cat    /input_test/index.html

4.2、Wordcount

  将HDFS上/input_text/index.html 使用hadoop内置Wordcount的jar包统计文档的Wordcount

  • 启动测试

    [hadoop@centos05 /]$ hadoop jar /opt/hadoop/hadoop-2.6./share/hadoop/mapreduce/
    hadoop-mapreduce-examples-2.6.-cdh5.15.1.jar wordcount
       /input_test/index.html /output_test/runcount
    // :: INFO client.RMProxy: Connecting to ResourceManager at /0.0.0.0:
    // :: INFO input.FileInputFormat: Total input paths to process :
    // :: INFO mapreduce.JobSubmitter: number of splits:
    // :: INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1543369969234_0002
    // :: INFO impl.YarnClientImpl: Submitted application application_1543369969234_0002
    // :: INFO mapreduce.Job: The url to track the job:
    http://centos05:/proxy/application_1543369969234_0002/
    // :: INFO mapreduce.Job: Running job: job_1543369969234_0002
    // :: INFO mapreduce.Job: Job job_1543369969234_0002 running in uber mode : false
    // :: INFO mapreduce.Job: map % reduce %
    // :: INFO mapreduce.Job: map % reduce %
    // :: INFO mapreduce.Job: map % reduce %
    // :: INFO mapreduce.Job: Job job_1543369969234_0002 completed successfully
    // :: INFO mapreduce.Job: Counters:
    File System Counters
    FILE: Number of bytes read=
    FILE: Number of bytes written=
    FILE: Number of read operations=
    FILE: Number of large read operations=
    FILE: Number of write operations=
    HDFS: Number of bytes read=
    HDFS: Number of bytes written=
    HDFS: Number of read operations=
    HDFS: Number of large read operations=
    HDFS: Number of write operations=
    Job Counters
    Launched map tasks=
    Launched reduce tasks=
    Data-local map tasks=
    Total time spent by all maps in occupied slots (ms)=
    Total time spent by all reduces in occupied slots (ms)=
    Total time spent by all map tasks (ms)=
    Total time spent by all reduce tasks (ms)=
    Total vcore-milliseconds taken by all map tasks=
    Total vcore-milliseconds taken by all reduce tasks=
    Total megabyte-milliseconds taken by all map tasks=
    Total megabyte-milliseconds taken by all reduce tasks=
    Map-Reduce Framework
    Map input records=
    Map output records=
    Map output bytes=
    Map output materialized bytes=
    Input split bytes=
    Combine input records=
    Combine output records=
    Reduce input groups=
    Reduce shuffle bytes=
    Reduce input records=
    Reduce output records=
    Spilled Records=
    Shuffled Maps =
    Failed Shuffles=
    Merged Map outputs=
    GC time elapsed (ms)=
    CPU time spent (ms)=
    Physical memory (bytes) snapshot=
    Virtual memory (bytes) snapshot=
    Total committed heap usage (bytes)=
    Shuffle Errors
    BAD_ID=
    CONNECTION=
    IO_ERROR=
    WRONG_LENGTH=
    WRONG_MAP=
    WRONG_REDUCE=
    File Input Format Counters
    Bytes Read=
    File Output Format Counters
    Bytes Written=
    [hadoop@centos05 /]$
  • 查看结果
    [hadoop@centos05 /]$ hadoop fs -ls /output_test/runcount/
    
    Found  items
    -rw-r--r-- hadoop supergroup -- : /output_test/runcount/_SUCCESS
    -rw-r--r-- hadoop supergroup -- : /output_test/runcount/part-r- [hadoop@centos05 /]$ hadoop fs -cat /output_test/runcount/part-r-
    --
    <!--
    <!DOCTYPE
    </a>
    </body>
    </div>
    </head>
    </html>
    </li>
    </style>
    </ul>
    <a
    <body
    <div
    ......略

5、遇到的问题

5.1、WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

解决:导致该问题的改版本是因为${HADOOP_PREFIX}/lib/native目录没有lib库,解决办法是到hadoop官网下载2.6的包,把lib/native目录下的数据拷贝过去。

5.2、openssl: false Cannot load libcrypto.so (libcrypto.so: 无法打开共享对象文件: 没有那个文件或目录)!

解决:/usr/lib64/目录下做一个libcrypto.so软连

cd /usr/lib64/
ln -s /usr/lib64/libcrypto.so.1.0.1e libcrypto.so
  • 使用命令export HADOOP_ROOT_LOGGER=DEBUG,console可以在终端上看到更详细的日志信息方便排查问题;
  • 以上两个问题可以使用命令检查是否为true:hadoop checknative

注:${HADOOP_PREFIX}表示hadoop的安装目录,或者说是${HADOOP_HOME}

6、参考资料

http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.7.5/hadoop-project-dist/hadoop-common/SingleCluster.html

CDH版本hadoop2.6伪分布式安装的更多相关文章

  1. Hadoop单机和伪分布式安装

    本教程为单机版+伪分布式的Hadoop,安装过程写的有些简单,只作为笔记方便自己研究Hadoop用. 环境 操作系统 Centos 6.5_64bit   本机名称 hadoop001   本机IP ...

  2. 一.Kylin的伪分布式安装

    一.伪分布式安装kylin 2018年4月15日 15:06 安装需要的环境 1. hadoop集群环境:由于安装的是CDH5.14.0的版本,所以相关组件都是跟5.14.0相关 2. spark采用 ...

  3. Hadoop大数据初入门----haddop伪分布式安装

    一.hadoop解决了什么问题 hdfs 解决了海量数据的分布式存储,高可靠,易扩展,高吞吐量mapreduce 解决了海量数据的分析处理,通用性强,易开发,健壮性 yarn 解决了资源管理调度 二. ...

  4. HBase伪分布式安装(HDFS)+ZooKeeper安装+HBase数据操作+HBase架构体系

    HBase1.2.2伪分布式安装(HDFS)+ZooKeeper-3.4.8安装配置+HBase表和数据操作+HBase的架构体系+单例安装,记录了在Ubuntu下对HBase1.2.2的实践操作,H ...

  5. 【Hadoop】伪分布式安装

    创建hadoop用户 创建用户命令: sudo useradd -m hadoop -s /bin/bash 创建好后需要更改hadoop用户的密码,命令如下: sudo passwd hadoop ...

  6. HBase基础和伪分布式安装配置

    一.HBase(NoSQL)的数据模型 1.1 表(table),是存储管理数据的. 1.2 行键(row key),类似于MySQL中的主键,行键是HBase表天然自带的,创建表时不需要指定 1.3 ...

  7. Zookeeper 初体验之——伪分布式安装(转)

    原文地址: http://blog.csdn.net/salonzhou/article/details/47401069 简介 Apache Zookeeper 是由 Apache Hadoop 的 ...

  8. hadoop2.6完全分布式安装HBase1.1

    本文出自:http://wuyudong.com/archives/119 对于全分布式的HBase安装,需要通过hbase-site.xml文档来配置本机的HBase特性,由于各个HBase之间通过 ...

  9. ZooKeeper:win7上安装单机及伪分布式安装

    zookeeper是一个为分布式应用所设计的分布式的.开源的调度服务,它主要用来解决分布式应用中经常遇到的一些数据管理问题,简化分布式应用,协调及其管理的难度,提高性能的分布式服务. 本章的目的:如何 ...

随机推荐

  1. ZOJ 3829 Known Notation(字符串处理 数学 牡丹江现场赛)

    题目链接:problemId=5383">http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5383 Do you ...

  2. luogu1955 [NOI2015] 程序自动分析

    题目大意 假设x1,x2,x3...代表程序中出现的变量,给定n个形如xi=xj或xi≠xj的变量相等/不等的约束条件,请判定是否可以分别为每一个变量赋予恰当的值,使得上述所有约束条件同时被满足.i, ...

  3. POJ3570 Fund Management 动态规划

    题目大意 Frank从个人投资者获得了c美元的资金,可用于m天的投资.Frank可以对n(n<=8)支股票进行投资.对于每一支股票:都有一个交易上限si,表示一天最多能交易的股数:还有一个上限k ...

  4. python spark 随机森林入门demo

    class pyspark.mllib.tree.RandomForest[source] Learning algorithm for a random forest model for class ...

  5. Nginx实现负载均衡 + Keepalived实现Nginx的高可用

    前言 使用集群是大中型网站解决高并发.海量数据问题的常用手段.当一台服务器的处理能力.存储空间不足时,不要企图去换更强大的服务器,对大型网站而言,不管多么强大的服务器,都满足不了网站持续增长的业务需求 ...

  6. Hadoop MapReduce编程 API入门系列之join(二十六)(未完)

    不多说,直接上代码. 天气记录数据库 Station ID Timestamp Temperature 气象站数据库 Station ID Station Name 气象站和天气记录合并之后的示意图如 ...

  7. 第5章分布式系统模式 Data Transfer Object(数据传输对象)

    正在设计一个分布式应用程序,为了满足单个客户端请求,您发现自己对一个远程接口发出了多个调用,而这些调用所增加的响应时间超出了可接受的程度. 影响因素 在与远程对象通信时,请考虑下列需要权衡的因素: 远 ...

  8. 了解jQuery的$符号

    $是什么? 可以使用typeof关键字来观察$的本质. console.log(type of $); //输出结果为function 因此可以得出结论,$其实就是一个函数.$(); 只是根据所给参数 ...

  9. Android Google 地图 API for Android

    从健康类 app Runkeeper 到游戏 app 精灵宝可梦,位置服务对现代 app 来说越来越重要. 在本文中,我们将创建一个 app,名字就叫做 City Guide.这个 app 允许用户搜 ...

  10. (转载) android studio library生成jar包和aar的方法总结

    android studio library生成jar包和aar的方法总结 标签: android学习文档jar和aar的使用与生成gradle 2016-11-25 10:39 1782人阅读 评论 ...