ubuntu 16.04下搭建hadoop-3.0.3

大数据平台搭建踩坑第二弹,Hadoop平台搭建,2.x版本已经有很多教程了,3.0以上版本加入了新特性猛得一匹,所以就来踩踩坑吧——Hadoop3.0.3搭建

安装环境

UBUNTU 16.04 虚拟机4台,一台master,三台segment,以下都是在greenplum搭建的第二步集群配置的基础上进行的

JDK安装

这一步在所有虚拟机上操作都是一样的

-下载安装

添加ppa并安装java1.8

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer  

完成后java -version查看是否成功

-环境配置

使用apt-get下载得扎瓦需要自己去找一下他的位置,一般在/usr/lib/jvm文件夹下,java的文件夹名看自己的,我的是java-8-oracle

打开终端

sudo gedit /etc/profile

加上下面几句话

export JAVA_HOME=/usr/lib/jvm/java-8-oralce
export JRE_HOME=${JAVA_HOME}/jre   
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export PATH=${JAVA_HOME}/bin:$PATH

保存退出 source /etc/profile就ok了

Hadoop3.0.3

以下步骤先在master上进行,完成后将文件夹拷贝到其他机器即可

-下载

我的用户名为gpadmin,在/home/gpadmin/文件夹下新建文件夹local

cd /home/gpadmin
mkdir local

下载镜像

wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-3.0.3/hadoop-3.0.3.tar.gz

原地解压

tar zxvf hadoop-3.0.3.tar.gz

或者双击打开拖出来

-文件配置

进入/home/gpadmin/hadoop-3.0.3/etc文件夹下,配置文件全在这里

—core-site.xml

用sudo gedit core-site.xml或者双击打开
配置如下

<configuration>
<property>
    <name>fs.default.name</name>
    <value>hdfs://master:9000</value>
</property>
<property>
    <name>hadoop.tmp.dir</name>
    <value>/home/hadoop3/tmp</value>
</configuration>

其中master为hostname

—hdfs-site.xml

配置如下

<configuration>
<property>
    <name>dfs.replication</name>
    <value>4</value>
</property>
<property>
    <name>dfs.namenode.name.dir</name>
    <value>/home/hadoop3/hdfs/name</value>
</property>
<property>
    <name>dfs.namenode.data.dir</name>
    <value>/home/hadoop3/hdfs/data</value>
</property>
</configuration>

—mapred-site.xml

<configuration>
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
<property>
    <name>mapreduce.application.classpath</name>
    <value>
        /usr/local/hadoop3/etc/hadoop,
        /usr/local/hadoop3/share/hadoop/common/*,
        /usr/local/hadoop3/share/hadoop/common/lib/*,
        /usr/local/hadoop3/share/hadoop/hdfs/*,
        /usr/local/hadoop3/share/hadoop/hdfs/lib/*,
        /usr/local/hadoop3/share/hadoop/mapreduce/*,
        /usr/local/hadoop3/share/hadoop/mapreduce/lib/*,
        /usr/local/hadoop3/share/hadoop/yarn/*,
        /usr/local/hadoop3/share/hadoop/yarn/lib/*
    </value>
</property>
</configuration>

—yarn-site.xml

<configuration>
<!-- Site specific YARN configuration properties -->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>ha01</value>
</property>
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
</configuration>

—workers

添加从机得hostname,稍后会配置

segment1
segment2
segment3

—hadoop-env.sh

JAVA_HOME=/usr/lib/jvm/java-8-oracle

—环境变量

sudo gedit /etc/profile编辑环境变量
export HADOOP_HOME=/home/hadoop/hadoop3.03
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

source /etc/profile生效

-拷贝分发

使用scp命令scp -r 源地址 目的地址
在master机器的/home/gpadmin/local文件夹下打开终端

scp -r hadoop-3.0.3 gpadmin@segment1:/home/gpadmin/local
scp -r hadoop-3.0.3 gpadmin@segment2:/home/gpadmin/local
scp -r hadoop-3.0.3 gpadmin@segment3:/home/gpadmin/local

免密ssh登陆配置

这里有一个带坑 hadoop3.0以上的版本需要在root权限下进行运行,否则会出现 namenode can only be executred by root 。
ssh和普通用户的ssh是分开的,普通用户就在/home/用户名/.ssh下,root用户在/root/.ssh下。

-生成密钥

在master打开终端su进root

apt-get install ssh
cd /root/.ssh
ssh-keygen -t rsa -P ''

如果没有authorized_keys文件就touch authorized_keys新建一个
之后继续把公钥加入authorized——keys

cat id_rsa.pub >> authorized_keys

验证是否成功

ssh localhost

在每台机器上重复以上步骤

这里又有一个带坑,如果root的ssh登陆显示permission denied, please try again则需要sudo gedit /etc/ssh/sshd_config,把PermitRootLogin without-password 改为PermitRootLogin yes

-交换密钥

在master打开终端su进root,用以下语句把master的公钥发送到segment下,并重命名为master.pub

scp /root/.ssh/ida_rsa.pub root@segment1:/root/.ssh/master.pub
scp /root/.ssh/ida_rsa.pub root@segment2:/root/.ssh/master.pub
scp /root/.ssh/ida_rsa.pub root@segment3:/root/.ssh/master.pub

分别在每台segment机上打开终端,可以直接打开虚拟机,也可以在master机上 ssh segment1登陆上去进行操作

su
cd /root/.ssh
cat master.pub >> authorized_keys

这样就把master的公钥加入到segment的授权名单里了,理论上master就可以免密登陆segment了。

启动

在hadoop-3.0.3文件夹下打开终端su成root

./bin/hdfs namenode -format
./sbin/start-dfs.sh

之后就能登陆localhost:8088和9870查看了

0%