当前位置: 首页 > news >正文

hadoop3.0.0测验

下载地址:

  hadoop: http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-3.0.0/

准备工作:

1.master节点与其他节点需要建立免密登录,这个很简单,两句话搞定:

ssh-keygen
ssh-copy-id 10.1.4.58

2.安装jdk

3.配置/etc/hosts(如果配置为ip ip将会导致datanode无法识别master,下面会讲)

4.关闭防火墙

新建用户

  useradd sri_udap
  passwd sri_udap

  输入密码

方便起见,全部采用root用户操作,新建用户只是独立出目录,后续如果需要权限管理则重新赋权

解压hadoop-3.0.0.tar.gz

tar -zxvf hadoop-3.0.0.tar.gz

加入环境变量

vi /etc/profile

  添加如下内容:

export HADOOP_HOME=/home/sri_udap/app/hadoop-3.0.0
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile

修改配置文件:

cd /home/sri_udap/app/hadoop-3.0.0/etc/hadoop/
vi hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_121
vi core-site.xml


core-site.xml

<configuration>
    <!-- 指定HDFS老大(namenode)的通信地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://10.1.4.57:9000</value>
    </property>
    <!-- 指定hadoop运行时产生文件的存储路径 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/sri_udap/app/hadoop-3.0.0/temp</value>
    </property>
</configuration>

hdfs-site.xml

<configuration>

    <!-- 设置namenode的http通讯地址 -->
    <property>
        <name>dfs.namenode.http-address</name>
        <value>master:50070</value>
    </property>

    <!-- 设置secondarynamenode的http通讯地址 -->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>slave1:50090</value>
    </property>

    <!-- 设置namenode存放的路径 -->
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/opt/soft/hadoop-2.7.2/name</value>
    </property>

    <!-- 设置hdfs副本数量 -->
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <!-- 设置datanode存放的路径 -->
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/opt/soft/hadoop-2.7.2/data</value>
    </property>
</configuration>

mapred-site.xml

<configuration>
    <!-- 通知框架MR使用YARN -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>
 

yarn-site.xml

<configuration>
    <!-- 设置 resourcemanager 在哪个节点-->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>

    <!-- reducer取数据的方式是mapreduce_shuffle -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>

    <property>
         <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
         <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
</configuration>
新建worker文件:
vi workers

添加如下:

10.1.4.58
10.1.4.59

将整个包拷贝到其他两台主机的相同位置

格式化:(格式化一次就好,多次格式化可能导致datanode无法识别,如果想要多次格式化,需要先删除数据再格式化)

./bin/hdfs namenode -format


启动

[root@10 sbin]# ./start-dfs.sh 

报错:

Starting namenodes on [10.1.4.57]
ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
Starting datanodes
ERROR: Attempting to operate on hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation.
Starting secondary namenodes [10.1.4.57]
ERROR: Attempting to operate on hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation.

 

把缺少的环境变量加上:hadoop-env.sh

export HDFS_DATANODE_SECURE_USER=root
export HDFS_DATANODE_SECURE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root

再启动:

又报错:

Starting namenodes on [10.1.4.57]
上一次登录:二 12月 26 15:06:36 CST 2017pts/2 上
Starting datanodes
10.1.4.58: ERROR: Cannot set priority of datanode process 5752
10.1.4.59: ERROR: Cannot set priority of datanode process 9788
Starting secondary namenodes [10.1.4.58]
上一次登录:二 12月 26 15:10:16 CST 2017pts/210.1.4.58: secondarynamenode is running as process 5304.  Stop it first.

这个问题,查阅了各个方面的文档始终无法解决,不知道会不会跟hostname的写法有关系,我的/etc/hosts配置方法是,这种写法在hadoopdatanode节点启动是无法识别到master_ip的,这个问题在后面尝试中改掉了,最后会导致集群没有可用datanode,要避免这样写

10.1.4.57 10.1.4.57
10.1.4.58 10.1.4.58
10.1.4.59 10.1.4.59

尝试失败..不过据说这个问题在2.*版本中是没有出现的,所以回退一下版本

退到2.7.2,把配置拷贝过去,并在配置目录下 etc/hadoop添加两个文件

vi masters

内容:

10.1.4.57
vi slaves

内容:

10.1.4.58
10.1.4.59

启动

[root@10 sbin]# ./start-dfs.sh
Starting namenodes on [10.1.4.57]
10.1.4.57: starting namenode, logging to /home/sri_udap/app/hadoop-2.7.2/logs/hadoop-root-namenode-10.1.4.57.out
10.1.4.59: starting datanode, logging to /home/sri_udap/app/hadoop-2.7.2/logs/hadoop-root-datanode-10.1.4.59.out
10.1.4.58: starting datanode, logging to /home/sri_udap/app/hadoop-2.7.2/logs/hadoop-root-datanode-10.1.4.58.out
Starting secondary namenodes [10.1.4.57]
10.1.4.57: starting secondarynamenode, logging to /home/sri_udap/app/hadoop-2.7.2/logs/hadoop-root-secondarynamenode-10.1.4.57.out
[root@10 sbin]# ./start-yarn.sh
starting yarn daemons
starting resourcemanager, logging to /home/sri_udap/app/hadoop-2.7.2/logs/yarn-root-resourcemanager-10.1.4.57.out
10.1.4.59: starting nodemanager, logging to /home/sri_udap/app/hadoop-2.7.2/logs/yarn-root-nodemanager-10.1.4.59.out
10.1.4.58: starting nodemanager, logging to /home/sri_udap/app/hadoop-2.7.2/logs/yarn-root-nodemanager-10.1.4.58.out

 

登录http://10.1.4.57:50070 查看hadoop作业情况

 

查看yarn 10.1.4.57:8088

 

 

 测验:

测验可以等到安装hive后一起,因为复杂的hive语句将会产生MapReduce作业在hdfs

hdfs dfs -mkdir /input
hdfs dfs -put 1.txt /input
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /input /output

 这样就产生了一个作业,其中1.txt是随便写的一个文件,我们运行一个单词计数作业

 

转载于:https://www.cnblogs.com/garfieldcgf/p/8119506.html

相关文章:

  • 安装oracle数据库字符集编码
  • Kubernetes 中的服务发现与负载均衡
  • hdu2045
  • 高阶函数、返回函数、闭包、匿名函数、装饰器、偏函数
  • 应用脚手架创建一个React项目
  • Swift中字典的实现原理
  • mybatis之trim prefix= suffix= suffixOverrides= prefixOverrides=/trim的含义
  • derby常用语法
  • express中使用高德地图
  • 学习linux年薪轻松20万
  • 使用Notepad++开发C#,一个复杂点的csscript脚本
  • 如何像阿里巴巴一样高效跨企业项目协作
  • Python之多线程爬虫抓取网页图片
  • js获取页面宽度高度及屏幕分辨率
  • C#设计模式之一单例模式(Singleton Pattern)【创建型】
  • 230. Kth Smallest Element in a BST
  • Android交互
  • eclipse的离线汉化
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • Ruby 2.x 源代码分析:扩展 概述
  • Spark学习笔记之相关记录
  • vue:响应原理
  • 编写高质量JavaScript代码之并发
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 那些被忽略的 JavaScript 数组方法细节
  • 判断客户端类型,Android,iOS,PC
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 区块链将重新定义世界
  • 如何编写一个可升级的智能合约
  • 探索 JS 中的模块化
  • 小李飞刀:SQL题目刷起来!
  • 学习使用ExpressJS 4.0中的新Router
  • FaaS 的简单实践
  • Spring Batch JSON 支持
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​ubuntu下安装kvm虚拟机
  • #Z0458. 树的中心2
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (02)Hive SQL编译成MapReduce任务的过程
  • (6)设计一个TimeMap
  • (8)STL算法之替换
  • (floyd+补集) poj 3275
  • (二)换源+apt-get基础配置+搜狗拼音
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (附源码)ssm航空客运订票系统 毕业设计 141612
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (南京观海微电子)——I3C协议介绍
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu
  • ./configure、make、make install 命令
  • .a文件和.so文件
  • .NET Standard / dotnet-core / net472 —— .NET 究竟应该如何大小写?
  • .NET 跨平台图形库 SkiaSharp 基础应用