centos7 hadoop3.0.1安装

安装JDK

rpm -qa | grep java
找出OPENJDK
yum -y remove java 上一步复制的jdk文件名
卸载openjdk
rpm -ivh jdk文件名
安装jdk

设置jdk环境变量
需要修改配置文件/etc/profile,追加
export JAVA_HOME="/usr/java/jdk-10"
export PATH=$JAVA_HOME/bin:$PATH
修改完毕后,执行 source /etc/profile

检查ssh

rpm -qa | grep openssh
rpm -qa | grep rsync

[hadoop@localhost .ssh]$ rpm -qa | grep openssh
openssh-clients-6.6.1p1-22.el7.x86_64
openssh-server-6.6.1p1-22.el7.x86_64
openssh-6.6.1p1-22.el7.x86_64
[hadoop@localhost .ssh]$ rpm -qa | grep rsync
rsync-3.0.9-17.el7.x86_64
假设没有安装ssh和rsync,可以通过下面命令进行安装。
yum install ssh 安装SSH协议
yum install rsync (rsync是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件)
service sshd restart 启动服务

设置网络

关闭selinux
vim /etc/sysconfig/selinux
修改
SELINUX=disabled

三台机器分别设置IP
192.168.10.10
192.168.10.11
192.168.10.12

修改三个机器名分别为master.hadoop、slaver1.hadoop、slaver2.hadoop
vim /etc/sysconfig/network
添加
NETWORKING=yes #使用网络
HOSTNAME=master.hadoop #设置主机名

修改Hosts
vim /etc/hosts
添加
192.168.10.10 master.hadoop
192.168.10.11 slaver1.hadoop
192.168.10.12 slaver2.hadoop

设置SSH无密码登录


添加用户
useradd hadoop
passwd hadoop
设置权限
visudo修改
root ALL=(ALL) ALL
hadoop ALL=(root) NOPASSWD:ALL


su hadoop
以hadoop用户身份登录

仅主机操作
ssh-keygen -t rsa -P ''
生成无密码密钥对,询问保存路径直接输入回车,生成的密钥对:id_rsa和id_rsa.pub,默认存储在"/home/hadoop/.ssh"目录下。
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
把id_rsa.pub追加到授权的key里面去。
chmod 600 ~/.ssh/authorized_keys
修改权限

三台机器操作
vim /etc/ssh/sshd_config
修改ssh配置
RSAAuthentication yes # 启用 RSA 认证
PubkeyAuthentication yes # 启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径(和上面生成的文件同)

service sshd restart
重启ssh


仅从机用hadoop用户操作
mkdir ~/.ssh
chmod 700 ~/.ssh
#cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
#rm -r ~/id_rsa.pub
生成从机的公钥
ssh-keygen -t rsa -P ""
slave1上执行
scp ~/.ssh/id_rsa.pub 192.168.10.10:~/.ssh/id_rsa.pub.s1
slave2上执行
scp ~/.ssh/id_rsa.pub 192.168.10.10:~/.ssh/id_rsa.pub.s2

主机上hadoop用户执行
cd ~/.ssh
cat id_rsa.pub.s1 >> authorized_keys
cat id_rsa.pub.s2 >> authorized_keys
scp ~/.ssh/authorized_keys 192.168.10.11:~/.ssh
scp ~/.ssh/authorized_keys 192.168.10.12:~/.ssh
从机操作
chmod 600 ~/.ssh/authorized_keys

配置hadoop

cd /usr
tar -zxvf hadoop-3.0.1.tar.gz #解压"hadoop-3.0.1.tar.gz"安装包
mv hadoop-3.0.1 hadoop #将"hadoop-3.0.1"文件夹重命名"hadoop"

给hadoop目录赋所有者权限
chown -R hadoop:hadoop /usr/hadoop/


配置路径在/usr/hadoop/etc/hadoop
1)配置hadoop-env.sh、yarn-env.sh
修改
export JAVA_HOME=/usr/java/jdk-10
2)配置core-site.xml文件
<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/hadoop/tmp</value>
        (备注:请先在 /usr/hadoop 目录下建立 tmp 文件夹)
        <description>A base for other temporary directories.</description>
    </property>
<!-- file system properties -->
    <property>
        <name>fs.default.name</name>
        <value>hdfs://192.168.10.10:9000</value>
    </property>
</configuration>
3)配置hdfs-site.xml文件
修改Hadoop中HDFS的配置,配置的备份方式默认为3。
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
        (备注:replication 是数据副本数量,默认为3,salve少于3台就会报错)
    </property>
<configuration>
4)配置mapred-site.xml文件
修改Hadoop中MapReduce的配置文件,配置的是JobTracker的地址和端口。
<configuration>
    <property>
        <name>mapred.job.tracker</name>
        <value>http://192.168.10.10:9001</value>
    </property>
</configuration> 
5)配置masters文件
创建masters文件并添加内容为主机IP
192.168.10.10
6)配置slaves文件(Master主机特有
修改slaves文件并添加内容为各从机IP
192.168.10.11
192.168.10.12

将主机上的目录拷贝到从机上
scp -r /usr/hadoop root@服务器IP:/usr/
在从机上用root用户设置/usr/hadoop目录权限
chown -R hadoop:hadoop hadoop
把Hadoop的安装路径添加到"/etc/profile"中,并使其有效:
# set hadoop path
export HADOOP_HOME=/usr/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
重启profile
source /etc/profile

启动及验证

1)格式化HDFS文件系统
  在"Master.Hadoop"上使用普通用户hadoop进行操作。(备注:只需一次,下次启动不再需要格式化,只需 start-all.sh)
hadoop namenode -format
如果报错文件夹无法创建,看看/usr/hadoop/tmp目录权限是不是不够
2)启动hadoop 
在启动前关闭集群中所有机器的防火墙,不然会出现datanode开后又自动关闭。
service iptables stop
三台机器均使用下面命令启动。
${HADOOP_HOME}/sbin/start-all.sh
启动 hadoop成功后,在 Master 中的 tmp 文件夹中生成了 dfs 文件夹,在Slave 中的 tmp 文件夹中均生成了 dfs 文件夹和 mapred 文件夹。
停止命令
stop-all.sh
3)验证hadoop
用jps命令查看进程
主机上
[hadoop@Master hadoop]$ jps
12989 Jps
12599 NameNode
12776 SecondaryNameNode
12920 ResourceManager
从机上
[root@Slave1 hadoop]# jps
3270 DataNode
3482 Jps
3382 NodeManager

wordcount测试

cd /usr/hadoop

bin/hdfs dfs -mkdir -p /user/hadoop
创建目录
bin/hdfs dfs -mkdir input
创建/user/hadoop/input目录
bin/hdfs dfs -put etc/hadoop/*.xml input
挪一批xml文件到input目录中
bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.1.jar wordcount /user/hadoop/input /user/hadoop/output
执行wordcount示例
bin/hdfs dfs -cat output/*
查看wordcount结果

问题

如果运行脚本报如下错误,
ERROR: Attempting to launch hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting launch.
Starting datanodes
ERROR: Attempting to launch hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting launch.
Starting secondary namenodes [localhost.localdomain]
ERROR: Attempting to launch hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting launch.

解决方案
(缺少用户定义而造成的)因此编辑启动和关闭
$ vim sbin/start-dfs.sh
$ vim sbin/stop-dfs.sh
顶部空白处
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

如果启动时报如下错误,
Starting resourcemanager
ERROR: Attempting to launch yarn resourcemanager as root
ERROR: but there is no YARN_RESOURCEMANAGER_USER defined. Aborting launch.

解决方案
(也是由于缺少用户定义)

是因为缺少用户定义造成的,所以分别编辑开始和关闭脚本 
$ vim sbin/start-yarn.sh 
$ vim sbin/stop-yarn.sh 
顶部添加
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/417106.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

excel函数怎么用android,在Android中阅读Excel

对于那些需要使用全功能excel文件(即绘图,VBA等等)的应用程序,你应该使用Apache POI,它很简单,但现在仍然是最好的解决方案.但是,如果您只需要阅读Excel,那么使用JavaScript解决方案可能会更好.使用js-xlsx库,您可以将Excel文件传输到JSON.库大小很小,只有395KB(仅包括xlsx.cor…

.net core2.0 Memcached.ClientLibrary

Memcached的.net core2.0驱动dll 引用了nuget包log4net和SharpZipLib.NETStandard nuget包名为Memcached.ClientLibrary.NetStandard 可以直接通过nuget搜索安装 地址https://www.nuget.org/packages/Memcached.ClientLibrary.NetStandard/ 源码详见 https://github.com/wa…

python设置格式模板

# -*- coding: utf-8 -*- """ __mktime__ ${DATE} __author__ ${USER} __filename__ ${NAME} """ if __name__ "__main__": pass 转载于:https://www.cnblogs.com/BigFishFly/p/6580692.html

给android应用程序默认的菜单添加一个菜单项关于,android菜单详解

1.菜单的生成对一个Android应用中的每一个屏幕&#xff0c;也就是说&#xff0c;对每一个Activity类&#xff0c;都会拥有一个默认菜单。在Activity类中&#xff0c;定义了几个与菜单有关的方法&#xff0c;供继承于Activity类的子类去重载&#xff0c;从而定制我们自己的菜单。…

Eclipse Memory Analysis分析Java运行内存情况

获取java进程的dump文件jmap -dump:formatb,file<dumpfile.hprof> <pid>安装Eclipse Memory AnalysisHelp 》 Install New Software输入地址&#xff1a;http://archive.eclipse.org/mat/1.0/update-site/安装点击右侧Open Perspective选Memory Analysis插件&#…

C#对用户密码使用MD5加密与解密

C#中常涉及到对用户密码的加密于解密的算法&#xff0c;其中使用MD5加密是最常见的的实现方式。本文总结了通用的算法并结合了自己的一点小经验&#xff0c;分享给大家。 一.使用16位、32位、64位MD5方法对用户名加密 1&#xff09;16位的MD5加密 ?123456789101112/// <sum…

android默认代码混淆,Android SDK默认混淆配置文件

一.介绍通常情况下编译后的字节码包含了大量调试信息(如源类名/行号等)混淆代码就能删除这些调试信息&#xff0c;并用无意义字符替换所有名字&#xff0c;增加反编译难度&#xff01;ProGuard是一个混淆代码的开源项目&#xff0c;主要作用如下&#xff1a;混淆Obfuscate 用无…

前端学习(2334):angular之内置属性指令ngclass

child.html <p>child4 works!</p><div class"us">我是歌谣</div> <div [ngClass]"currentClass" class"col">我是歌谣</div>child.ts import { Component, OnInit } from angular/core;Component({select…

spring cloud consul整合

本文基于spring cloud Finchley.SR1 consul如何搭建可以看文章consul docker方式搭建 本文章源码位置&#xff1a;https://github.com/wanghongqi/springcloudconsul_test/ 目录 服务端 客户端 测试 服务端 pom.xml <properties><project.build.sourceEncodin…

event android,androidEvent 对 android 事件分发机制的一点个人理解,将事件机制进行了简单化处理,刚方便理解! @codeKK Android开源站...

android 中的事件处理一直以来困扰不少刚刚从事 android 开发的同学&#xff0c;网上也有不少讲解 android 事件分发的文章&#xff0c;然而讲解的都不够简洁&#xff01;现在我将用另一种简洁的方式来讲解 android 事件的分发机制&#xff01;android 的事件分发可以简单的归位…

consul docker方式搭建

目录 获取镜像 运行 集群搭建 官网&#xff1a;https://www.consul.io/ 文档&#xff1a;https://www.consul.io/docs/index.html 获取镜像 docker pull consul:1.3.0 运行 如果已存在dev-consul先移除 docker rm -f dev-consul 创建容器&#xff0c;守护进程方式启动&…

锁屏壁纸开发 Android,Android开发自己的锁屏壁纸

SurfaceView SurfaceHolder MediaPlayer Service BroadcastReceiver KeyguardManager PowerManager思路&#xff1a;启动一个服务&#xff0c;监听灭屏广播&#xff0c;当收到广播的时候&#xff0c;点亮屏幕&#xff0c;禁用锁屏&#xff0c;调用使用SurfaceV…

[转载来之雨松:NGUI研究院之为什么打开界面太慢(十三)]

本文固定链接: http://www.xuanyusong.com/archives/2799转载于:https://www.cnblogs.com/yexiaopeng/p/6591482.html

前端学习(2335):angular之内置结构指令ngif

child.html <p>child4 works!</p><div class"us">我是歌谣</div> <div [ngClass]"currentClass" class"col">我是歌谣</div><div *ngIf"true">aaaa</div> <div *ngIf"false…

centos7 postgresql安装

安装 Install the repository RPM: yum install https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-centos11-11-2.noarch.rpm Install the client packages: yum install postgresql11 Optionally install the server packages: yum install …

android密码可见不可见的光标控制,Android EditText 在设置为输入密码的时候 密码是否可见 光标在最后显示...

释放双眼&#xff0c;带上耳机&#xff0c;听听看~&#xff01;今天在开发登录注册模块的时候&#xff0c;用EditText实现密码的输入&#xff0c;项目需要密码是可以选择可见或者默认的隐藏模式&#xff0c;很简单&#xff0c;但是第一次遇到就记录下来分享给大家。布局文件and…

centos6 postgresql安装

安装 Install the repository RPM: yum install https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-6-x86_64/pgdg-centos11-11-2.noarch.rpm Install the client packages: yum install postgresql11 Optionally install the server packages: yum install…

l2-006 树的遍历

L2-006. 树的遍历 时间限制400 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者陈越给定一棵二叉树的后序遍历和中序遍历&#xff0c;请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。 输入格式&#xff1a; 输入第一行给出一个正整数N&#xff08;&l…

Ant Design Pro 2.0/umijs站点配置到非站点根目录下处理

1.config/config.js中 export default {中加上如下&#xff1a; history: hash, //采用hash路由&#xff1a;#/xxx的形式 base:./, publicPath:./, &#xff08;会自动将/static/xxx.jpg之类的和umi.js中的a.p"/"及index.html中window.routerBase中该值进行替换…