Linux下Hadoop环境配置


一、系统环境

四台虚拟机器一些配置如下

修改主机名

hostnamectl set-hostname node01

修改IP地址

terminal写的太麻烦,可以直接用交会时桌面进行配置

想用terminal, https://jingyan.baidu.com/article/e4d08ffdd417660fd3f60d70.html

二、准备操作

1、安装Xshell并熟悉几个xshell中命令

https://jingyan.baidu.com/article/e75057f210c6dcebc91a89dd.html

登录主机

ssh  主机用户@主机名

例子  ssh root@xu

输入主机密码

2、安装xftp---便于向centos系统传输文件

三、具体步骤

1、centos上安装jdk----------hadoop需要jdk的支持,因此jdk正确安装至关重要

(1)jdk

通过xshell中xftp将jdk传到centos上面(只要传过去就ok,什么方式随意)

(2)解压jdk---根据包的类型进行解压

解压

jdk的安装路径

(3)配置环境变量(类比window 上面的配置环境变量这里只是在terminal下工作本质不变)

vi /etc/profile

(4)测试jdk是否正确安装,出现类似下图在表面jdk安装成功

2、安装hadoop

(1)

(2)配置环境变量

环境变量

(3)配置Hadoop文件

            

  首先进入Hadoop配置文件夹

关于java路径的配置

vi hadoop-env.sh

 

vi mapred-env.sh

vi yarn-env.sh

配置core-site.xml

namenode

vi core-site.xml

 

    <property>

        <name>fs.defaultFS</name>

        <value>hdfs://node01:9000</value>

    </property>

    <property>

        <name>hadoop.tmp.dir</name>

        <value>/var/sxt/hadoop/local</value>

    </property>

配置hdfs-site.xml

Secondarynode

 

 

 <property>

        <name>dfs.replication</name>

        <value>1</value>

    </property>

    <property>

        <name>dfs.namenode.secondary.http-address</name>

        <value>node01:50090</value>

    </property>

配置slaves文件

datanode

vi slaves node01

(4)格式化+启动

格式化hdfs

hdfs namenode -format  (只能格式化一次,再次启动集群不要执行)

 

启动集群

start-dfs.sh

如果出现

说明-------本质原因:namenode的id 与datanode id 不一致,导致datanode自杀(这里的id用于标识namenode和datanode是否一致)

表象原因:core-site.xml中的,hadoop.tem.dir下的目录不干净,将其删除并重启格式化启动就可以了具体见: https://blog.csdn.net/love666666shen/article/details/74350358

   

四、优化处理--------免密钥登录

1、在四台centos和主机上的hosts文件中互相配置各子的别名(用别名替代主机名,便于访问各个主机)

在主机上进行配置

在centos上配置

centos本机

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

 

传播

scp ~/.ssh/id_dsa.pub root@node02:`pwd`/node01.pub           这里的'pwd'是一个参数

到目标主机将发送过去的公钥发送到该主机的

cat node01.pub >> ~/.ssh/authorized_keys

 

方便的方法

for i in `seq 4`; do

cat k | sed "s/\(node0\)1\(,192\.168\.9\.1\)1\(.*\)/\1$i\2$i\3/gi"

>> known_hosts;

done

 

 

 

 

发布了26 篇原创文章 · 获赞 4 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_41926640/article/details/101396104