美文网首页Hadoop
hadoop搭便车指南(1)-hadoop生产环境安装

hadoop搭便车指南(1)-hadoop生产环境安装

作者: 有赞洪斌 | 来源:发表于2018-08-15 17:43 被阅读1次

## 安装方式的选择

hadoop以服务过多且互补兼容出名. 这导致使用apache的官方方式安装hadoop集群是件非常吃力的事情. 即使可以做到自己探索并成功完成hadoop各个服务的安装和测试也会又隐患. 因为机器将来需要安装的服务有可能和你的版本不兼容.

所以生产环境推荐使用CDH等商业发行版本. 好处是:

1. 简单不易出错

2. 测试过hadoop的版本兼容性

3. 使用广泛, 其他开源服务基本上都会在主流发行版本上进行测试

cloudera安装过程需要联网,对于大陆上网环境来说可能是个重要瓶颈。本文档使用了代理, 不过也可以使用离线下载的方式(把安装把全部下载到本地).

## 机器的部署方案

hadoop集群安装至少要4台机器,这里我们假设有10台机器编号yun[00-09]。

yun00机器为master机器, 安装cloudera-server, 然后所有机器(包括master)安装cloudera-agent. master为总控机器, 负责发号施令. agent负责在本地执行命令.

主机的规划如下:

主机的规划

1. zookeeper 一般是三台

2. zookeeper 不要和yarn部署在同一台机器上, 因为zookeeper负责yarn的HA方案, 如果混合部署极容易出现yarn和zookeeper同时出问题的情况.

3. HDFS 的NameNode和SecondaryNameNode部署在不同的机器上.

4. NodeManager和DataNode一起部署.

## 修改系统hostname

目标机器: 所有

## 系统间ssh免监权

目标机器: 所有

## 操作系统的优化

目标机器: 所有

我们使用centos 7.4 需要做的优化很少.

首先是关闭所谓的透明大页内存管理(Transparent HugePage). THP会给运行时动态内存分配打来延迟. 所以不仅仅是hadoop, mysql, oracle的部署都是建议关闭THP的.

立即生效:

echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled

重启生效:

将上两句追加到 /etc/rc.local 中。

其次,关闭swap分区(略)。

最后安装下必要的依赖:

yum -y install psmisc libxslt screen telnet
yum -y install httpd mod_ssl

## 安装 java1.7

目标机器: 所有

hadoop目前稳定支持的java版本还是1.7。

wgethttps://mirror.its.sfu.ca/mirror/CentOS-Third-Party/NSG/common/x86_64/jdk-7u80-linux-x64.rpm
rpm -ivh jdk-7u80-linux-x64.rpm
wget https://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.14.1/RPMS/x86_64/oracle-j2sdk1.7-1.7.0+update67-1.x86_64.rpm
rpm -ivh oracle-j2sdk1.7-1.7.0+update67-1.x86_64.rpm

将如下两句追加到/etc/profile:

export JAVA_HOME=/usr/java/jdk1.7.0_80
export CLASSPATH=.:$CLASSPTAH:$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin
java -version可以验证java是否安装正确。

其次需要安装mysql的javaconnect。

wget https://cdn.mysql.com//Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz
tar -xvf mysql-connector-java-5.1.46.tar.gz
mkdir -p /usr/share/java
cp mysql-connector-java-5.1.46/mysql-connector-java-5.1.46.jar /usr/share/java/mysql-connector-java.jar

## 保证各个机器时间同步

目标机器:所有

hadoop对于各个机器的时钟要求非常严格,必须安装ntp保证时钟同步。

yum install ntp -y

如果是阿里云机器不需要其他设置,会自动和阿里云同步时间。

安装 mysql 5.6

目标机器: master

如果有条件, 准备一个国外机器, 用于下载文件. 不然在大陆的网络环境下, 下载数G的文件将是一个灾难.

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm

yum install mysql-community-server.x86_64 -y

启动mysql:

systemctl start mysqld
systemctl enable mysqld

配置mysql:

mysql_secure_installation #  配置mysqlroot等

使用root登陆mysql并创建用户和database:

grant all privileges on cm.* to cm@'%' identified by 'dHuuj3JE';
grant all privileges on hive.* to hive@'%' identified by 'dHuuj3JE';
grant all privileges on hue.* to hue@'%' identified by 'dHuuj3JE';
grant all privileges on oozie.* to oozie@'%' identified by 'dHuuj3JE';
flush privileges;

create database cm DEFAULT CHARACTER SET utf8;
create database hive DEFAULT CHARACTER SET utf8;
create database hue DEFAULT CHARACTER SET utf8;
create database oozie DEFAULT CHARACTER SET utf8;

其中cm用户和cm数据库是给cloudera服务本身使用的。其他账号和数据库看名字就知道了。

准备安装需要的包和文件

目标机器: 所有

cd /tmp

wget https://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.13.3/RPMS/x86_64/cloudera-manager-agent-5.13.3-1.cm5133.p0.6.el7.x86_64.rpm

wget https://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.13.3/RPMS/x86_64/cloudera-manager-daemons-5.13.3-1.cm5133.p0.6.el7.x86_64.rpm

wget https://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.13.3/RPMS/x86_64/cloudera-manager-server-5.13.3-1.cm5133.p0.6.el7.x86_64.rpm

yum -y install cloudera-manager-daemons-5.13.3-1.cm5133.p0.6.el7.x86_64.rpm

yum -y install cloudera-manager-server-5.13.3-1.cm5133.p0.6.el7.x86_64.rpm

yum -y install cloudera-manager-agent-5.13.3-1.cm5133.p0.6.el7.x86_64.rpm

启动cloudera-cm-server

目标机器:master

初始化数据库配置:

/opt/cm-5.13.3/share/cmf/schema/scm_prepare_database.sh --host yun00 mysql cm cm dHuuj3JE

启动scm-server:

systemctl start cloudera-scm-server
systemctl enable cloudera-scm-server

启动cloudera-server-agent

目标机器:agent

配置:

vim /opt/cm-5.13.3/etc/cloudera-scm-agent/config.ini

# Hostname of the CM server.

server_host=yun00

启动scm-agent:

systemctl start cloudera-scm-agent
systemctl enable cloudera-scm-agent

添加cloudera帐号

目标机器: 所有

useradd  --home=/opt/cm-5.13.3/run/cloudera-scm-server --no-create-home --shell=/bin/bash --comment "Cloudera SCM User" cloudera-scm 

usermod -a -G root cloudera-scm

echo USER=\"cloudera-scm\" >> /etc/default/cloudera-scm-agent

echo "Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin" >> /etc/sudoers

启动cm server

目标机器: master

/opt/cm-5.13.3/etc/init.d/cloudera-scm-server start
tail -f /opt/cm-5.13.3/log/cloudera-scm-server/cloudera-scm-server.log

启动cm agent

目标机器: 所有

mkdir -p /opt/cm-5.13.3/run/cloudera-scm-agent; chown cloudera-scm:cloudera-scm /opt/cm-5.13.3/run/cloudera-scm-agent
/opt/cm-5.13.3/etc/init.d/cloudera-scm-agent start

至此cloudera安装完毕, 下面的步骤就是使用cloudera安装hadoop了, 安装过程非常简单, 基本上是一路回车.

安装hadoop

配置hdfs权限

su hdfs
hdfs dfs -chmod -R 777 /user

开发机的安装

使用cdh搭建hadoop集群后需要安装客户端机器, 才能安全的给团队成员使用. CDH可以支持安装客户端机器. 在CDH中客户端机器叫gateway. 只需要将客户端机器加入集群并设计角色为各个服务的gateway就可以了. 这样就实现了服务与使用的分离.

相关文章

网友评论

    本文标题:hadoop搭便车指南(1)-hadoop生产环境安装

    本文链接:https://www.haomeiwen.com/subject/zxnwbftx.html