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 /us r
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



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

草宝虫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值