大数据平台搭建踩坑第二弹,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查看了