从jdk安装到hadoop集群安装全部过程

文章目录

    • jdk的安装
    • hadoop安装和jdk修改
    • linux主机之间实现免密登录
    • 安装过程中遇到的问题
      • hadoop 3.1.2集群启动过程中 出现Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
      • ./sbin/start-dfs.sh 出现Starting namenodes on [hadoop1] hadoop1: ssh: connect to host hadoop1 port 22: Connection timed out问题
      • nginx配置成功后,外网无法访问的问题

jdk的安装

注意,hadoop3以上的版本,jdk必须为1.8及以上
1、运用rpm安装,rpm -ivh jdk-7u67-linux-x64.rpm(具体的jdk自己改)
2、修改 profile里面的内容 vi /etc/profile,保存退出
在这里插入图片描述

export JAVA_HOME=/usr/java/jdk1.8.0_11(自己的jdk)
export PATH=$PATH:$JAVA_HOME/bin

如何知道自己的jdk的具体版本:通过 :! ls /usr/java 查询
在这里插入图片描述
3、source /etc/profile 进行生效,输入jps,出现数字,表示成功

在这里插入图片描述

hadoop安装和jdk修改

1、解压Hadoop安装包
将Hadoop的安装包上传到Linux后,先在根目录下创建一个/bigdata目录用于保存以后要安装的大数据相关程序

mkdir /bigdata(也可以不用创建目录)
tar -zxvf hadoop-3.1.2.tar.gz -C /bigdata/

2、进入Hadoop里面

cd /bigdata/hadoop-3.1.2/etc/hadoop/(如果直接放在根目录,那么命令是:cd hadoop-3.1.2/etc/hadoop/)

3、修改Hadoop的环境变量配置文件
vi hadoop-env.sh
在文件的最后面进行添加四个内容,其中,java-home=?可以根据:! echo $JAVA_HOME知道
在这里插入图片描述
export JAVA_HOME=/usr/java/jdk1.8.0_11
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root

4、修改Hadoop的核心配置文件
core-site.xml是Hadoop的核心配置文件,里面可以配置HDFS(Hadoop分布式文件系统)的NameNode的地址和数据存储目录,使用vi编辑器修改该配置文件,然后保存退出

vi core-site.xml

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop1:9820</value>(备注,hadoop1是主机的名字,如果主机名是Hadoop2,就修改为hadoop2)
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/var/sxt/hadoop/peseudo</value>
    </property>
</configuration>

5、修改HDFS的配置文件(伪分布式,副本为1,全分布副本可以大一些)

vi hdfs-site.xml

<configuration>
    <!-- HDFS的副本为1,即数据只保存一份 -->
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop1:9868</value>
    </property>

</configuration>

6、配置workers

vi workers

vi workers
修改为 hadoop1
保存并退出

7.在hadoop-3.1.2下执行

./bin/hdfs namenode -format

在这里插入图片描述
8、在hadoop-3.1.2下执行

./sbin/start-dfs.sh
再输入jps,出现如图所示,说明成功

从jdk安装到hadoop集群安装全部过程_第1张图片

linux主机之间实现免密登录

linux主机配置ssh免密钥登录,具体配置如下:
1、执行命令ssh-keygen -t rsa,生成公钥和私钥(具体步骤详见下图)
从jdk安装到hadoop集群安装全部过程_第2张图片
2、会在当前用户的家目录的.ssh/生成公钥和私钥,
从jdk安装到hadoop集群安装全部过程_第3张图片
3、执行ssh-copy-id -i 将公钥文件传输给远程的主机,输入远程主机对应的密码。命令如下:
ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected](本机的IP地址),在password处,填写192.168.23.131的登录密码
从jdk安装到hadoop集群安装全部过程_第4张图片
3、此时在执行登录远程主机 ssh [email protected],不会再输入密码:

在这里插入图片描述
原文链接:https://blog.csdn.net/xiaoyi23000/article/details/80597516
各节点都能够免密登录的方法:https://blog.csdn.net/huanbia/article/details/51322677

安装过程中遇到的问题

hadoop 3.1.2集群启动过程中 出现Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).

原因是因为没有配置ssh 免密登录。

./sbin/start-dfs.sh 出现Starting namenodes on [hadoop1] hadoop1: ssh: connect to host hadoop1 port 22: Connection timed out问题

解决过程:
1、ifconfig看了下ip地址
2、在cmd上ping了下,发现并无问题
3、使用sudo service iptables status命令查看防火墙状态(防火墙永久关闭,chkconfig iptables off),也没有问题
最后看了下 sudo vi /etc/hosts
终于找到问题,原来是ip被修改了
删去127.0.1和::1这两行,填上自己的IP地址和主机名如
192.168.23.131 hadoop1
192.168.23.130 Hadoop2
从jdk安装到hadoop集群安装全部过程_第5张图片

nginx配置成功后,外网无法访问的问题

检查了服务器端的80端口不可以访问的到 ,发现是防火墙的问题。
所以:
[root@localhost ]# /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
[root@localhost ]# /etc/init.d/iptables save
[root@localhost ]# /etc/init.d/iptables restart

查找防火墙的文件命令:
vim /etc/sysconfig/iptables
打开文件之后会有:-A INPUT -p -tcp -m --dport 80 -j ACCEPT 此为打开了80端口
修改之后重启:service iptables restart
之后就可以了
转载:https://www.cnblogs.com/mswangblog/p/6622410.html

你可能感兴趣的:(hadoop学习)