Hadoop集群安装(3个节点)

1. 网络配置【所有节点】

修改hostname

在每个节点上执行hostname [主机名]

配置网络

vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=node4  #【每个节点改成相应的hostname】
NETWORKING_IPV6=no
PEERNTP=no

保存退出

重启网络服务

service network restart

配置hosts

192.168.138.134 node4
192.168.138.135 node5
192.168.138.136 node6

2. 设置ssh免密登陆【所有节点】

生成无密码的密钥对

ssh-keygen -t rsa

一路回车

将公钥添加到本地认证文件中

cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

设置authorized_keys的访问权限

chmod 600 /root/.ssh/authorized_keys

**以上步骤先在每个节点上先执行一遍,然后执行下面操作

将每个节点上生成的id_rsa.pub复制到其他所有节点并添加到它们的认证文件中

比如:node4上生成的id_rsa.pub,复制到node5和node6上

scp /root/.ssh/id_rsa.pub node5:/root/(node4上执行)
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys(在node5上执行)
scp /root/.ssh/id_rsa.pub node6:/root/(node4上执行)
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys(在node6上执行)

其余节点类似操作

验证是否配置免密登录成功:ssh root@node5看是否需要输入密码

3. 安装Oracle的JDK【所有节点】

如果CentOS装有OpenJDK,卸载之

卸载自带的OpenJDK

使用rpm -qa  |  grep java查询java相关的包

使用rpm -qa  |  grep openjdk  |  xargs rpm -e --nodeps卸载之

安装oracle jdk

采用的tar.gz包安装,解压压缩包jdk1.7.0_80.tar.gz,并且将解压的到的文件夹jdk1.7.0_80复制到/usr/java/jdk1.7(该目录是Cloudera Manager查找JAVA_HOME的一个路径)

tar zxvf jdk1.7.0_80.tar.gz
mkdir -p /usr/java/jdk1.7
mv jdk1.7.0_80/* /usr/java/jdk1.7
rmdir jdk1.7.0_80

配置环境变量

vi /etc/profile

将以下内容添加到profile

export JAVA_HOME=/usr/java/jdk1.7
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

然后刷新

source /etc/profile

4. 安装Hadoop集群

在node4主机上安装hadoop

安装位置自定,例如安装在/usr目录下面

下载hadoop包,放在/usr目录下,解压hadoop

tar -zxvf /opt/hadoop/hadoop-2.6.4.tar.gz

在usr下面生成hadoop-2.6.4目录

配置环境变量:

vi /etc/profile

在末尾添加:

export HADOOP_HOME=/usr/ hadoop-2.6.4
export PATH=$PATH:$HADOOP_HOME/bin

保存后使新编辑的profile生效:

source /etc/profile

5. 配置hadoop

配置hadoop配置文件

需要配置的文件的位置为/hadoop-2.6.4/etc/hadoop,需要修改的有以下几个:

hadoop-env.sh、yarn-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml、slaves

详细操作:

(1)vi hadoop-env.sh -->配置JAVA_HOME,JAVA_HOME的值是jdk的安装路径

在hadoop-env.sh文件中增加:export JAVA_HOME=jdk的安装路径,如下图示例。

(2)vi yarn-env.sh -->配置JAVA_HOME,JAVA_HOME的值是jdk的安装路径

(3)vi core-site.xml -->增加hadoop核心配置

<!--fs.dafaultFS-这是一个描述集群中NameNode节点的URI(包括协议、主机名称、端口号),集群里面的每一台机器都需要知道NameNode的地址。DataNode节点会先在NameNode上注册,这样他们的数据才可以被使用。独立的客户端程序通过这个URI跟DataNode交互,以取得文件的块列表-->

<!--hadoop.tmp.dir是hadoop文件系统依赖的基础配置,很多路径都依赖它。如果hdfs-site.xml中不配置namenode和datanode的存放位置,默认就放在这个路径中-->

补充:

<property>
        <name>hadoop.tmp.dir</name>
        <value> /opt/module/hadoop/hadoop-2.6.4/tmp </value>
        (备注:请先在 /usr/hadoop 目录下建立 tmp 文件夹)
        <description>A base for other temporary directories.</description>
</property>

备注:如没有配置hadoop.tmp.dir参数,此时系统默认的临时目录为:/tmp/hadoo-hadoop。而这个目录在每次重启后都会被删掉,必须重新执行format才行,否则会出错。

(4)vi hdfs-site.xml --->增加hdfs配置信息(namenode、datanode端口和目录位置)

<!--dfs.replication -它决定着 系统里面的文件块的数据备份个数。对于一个实际的应用,它 应该被设为3(这个数字并没有上限,但更多的备份可能并没有作用,而且会占用更多的空间)。少于三个的备份,可能会影响到数据的可靠性(系统故障时,也许会造成数据丢失)-->   

<property>
      <name>dfs.replication</name>
      <value>3</value>
</property>

<!-- dfs.data.dir - 这是DataNode结点被指定要存储数据的本地文件系统路径。DataNode结点上的这个路径没有必要完全相同,因为每台机器的环境很可能是不一样的。但如果每台机器上的这个路径都是统一配置的话,会使工作变得简单一些。默认的情况下,它的值hadoop.tmp.dir, 这个路径只能用于测试的目的,因为,它很可能会丢失掉一些数据。所以,这个值最好还是被覆盖。

dfs.name.dir - 这是NameNode结点存储hadoop文件系统信息的本地系统路径。这个值只对NameNode有效,DataNode并不需要使用到它。上面对于/temp类型的警告,同样也适用于这里。在实际应用中,它最好被覆盖掉-->

<!--解决:org.apache.hadoop.security.AccessControlException:Permission                                           denied:user=Administrator,access=WRITE,inode="tmp":root:supergroup:rwxr-xr-x。因为Eclipse使用hadoop插件提交作业时,会默认以 DrWho身份去将作业写入hdfs文件系统中,对应的也就是 HDFS 上的/user/hadoop ,  由于 DrWho用户对hadoop目录并没有写入权限,所以导致异常的发生。

解决方法为:放开 hadoop 目录的权限, 命令如下 :

$ hadoop fs -chmod 777 /user/hadoop

<property>
     <name>dfs.permissions</name>
     <value>false</value>
     <description>
     If "true", enable permission checking in HDFS. If "false", permission checking is 
     turned off,but all other behavior is unchanged. Switching from one parameter value to 
     the other does not change the mode, owner or group of files or directories
     </description>
</property>

(5)cp mapred-site.xml.template mapred-site.xml

vi mapred-site.xml -->增加mapreduce配置(使用yarn框架、jobhistory地址、webapp地址)

(6)vi yarn-site.xml -->增加yarn功能

(7)vi slaves -->增加slaves节点(子节点)

node5
node6

(8)将配置好的hadoop文件copy到子节点上

scp slaves node5:/opt/module/hadoop/hadoop-2.6.4/etc/hadoop
scp slaves node6:/opt/module/hadoop/hadoop-2.6.4/etc/hadoop

如果子节点node5、node6上还没有Hadoop环境,可以把node4上整个Hadoop复制到node5、node6:

scp /opt/module/hadoop node5:/opt/module/
scp /opt/module/hadoop node6:/opt/module/

(9)格式化namenode

hdfs namenode –format

(10)启动hdfs:sbin/start-all.sh

(11)验证是否配置成功:jps

HDFS的守护进程

主节点:Namenode、SecondaryNamenode

从节点:Datanode

YARN的守护进程

主节点:ResourceManager

从节点:NodeManager

集群配置成功标识:

主节点上jps进程有:

NameNode

SecondaryNameNode

ResourceManager

每个子节点上的jps进程有:

DataNode

NodeManager

如果像上述这样,表示hadoop集群配置成功

(12)查看hdfs -->http://192.168.138.134:50070

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

AllenGd

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

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

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

打赏作者

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

抵扣说明:

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

余额充值