准备工作
需要的工具有:yum rpm scp curl wget pdsh 前几个一般系统都自带了,pdsh需要自己装
使用如下命令:
sudo yum -y install epel-release
sudo yum install pdsh
配置hosts
执行命令:
sudo vi /etc/hosts
部分需要编辑vi /etc/sysconfig/network
:HOSTNAME=kindoserver41
。
添加如下内容(根据情况修改,dn1这名字最好和节点服务器的主机名相同,以防后期可能会出主机名不一致的错):
192.168.1.49 master master.hadoop.test
192.168.1.48 dn1 dn1.hadoop.test
192.168.1.47 dn2 dn2.hadoop.test
配置ssh免登录
选定master.hadoop.test作为ambari server,需要配置该节点到其它节点的ssh免登录
cd ~
ssh-keygen
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
一直敲回车,遇到(y/n)?敲y 回车
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
配置本地的免登录
scp ~/.ssh/authorized_keys root@kindoserver42:/root/.ssh/
scp ~/.ssh/authorized_keys root@kindoserver43:/root/.ssh/
其他
setenforce 0
chkconfig iptables off
/etc/init.d/iptables stop
umask 022
永久关闭:
vi /etc/yum/pluginconf.d/refresh-packagekit.conf
修改enable=0
vi /etc/selinux/config
修改SELINUX=disabled
安装Ambari Server
添加yum资源库
wget -nv http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.6.1.3/ambari.repo -O /etc/yum.repos.d/ambari.repo
yum repolist
yum install ambari-server
资源库部分参见官网:https://docs.hortonworks.com/HDPDocuments/Ambari-2.6.1.3/bk_ambari-installation/content/download_the_ambari_repo_lnx6.html 。可以根据自己的版本选择。我的centos6.
创建mysql用户
#注意此处的密码不能设置特殊符号,ambari不认识
create user 'ambari'@'%' IDENTIFIED BY 'ambari';
#设置ambari的用户权限
GRANT ALL ON ambari.* TO 'ambari'@'%';
tips:如果报错MySQL-1819,
#更改MySQL密码强度
set global validate_password_policy=0;
#设置mysql最低长度
set global validate_password_length=4;
设置ambari
ambari-server setup
设置时注意填MySQL中ambari库的用户名和密码。
导入ambari数据库
MySQL命令行:
use ambari;
alter database ambari character set latin1;
source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
启动Ambari
ambari-server start
然后就启动成功了。
登录
登录http://ip:8080
,出现ambari的登录页面,admin/admin
进行登录。
配置界面填写数据库密码时,注意选择已存在的数据库!!!!
设置数据库驱动:
全局shell命令
ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java-5.1.46.jar
注意在创建数据库用户时,要使用192.168.1.13
,不要使用localhost
。(hive数据库出错)
hive的数据库hive:hive,ambari metrics的用户admin:admin;activity analysis的用户admin:admin。
在装Hive时,会出现没有该表,但提示Table xxx not exist
。
改hive数据库的编码:alter database hive character set latin1;
在/etc/my.cnf
里添加:
#最大连接数,根据情况
max_connections=500
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
[mysql]
default-character-set=utf8
#sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
重新创建该库。
然后启动全部。
期间修改了一次主机,重启之后,需要修改每台服务器的/etc/ambari-agent/conf/ambari-agent.ini
文件中的主机。
问题
修改配置:(datanode节点启动不起来)
echo "@hdfs - core unlimited" >> /etc/security/limits.conf
cat >> /etc/security/limits.conf << EOF
* - nofile 128000
* - noproc 65535
EOF
然后重启该服务器。
安装Impala
Impala的安装包是在CDH中,在线安装的话,在许多环境中是不可行的,需要制作离线镜像源。
1)添加cdh的repo
在/etc/yum.repos.d/中创建cdh.repo
[cloudera-cdh5]
# Packages for Cloudera's Distribution for Hadoop, Version 5, on RedHat or CentOS 6 x86_64
name=Cloudera's Distribution for Hadoop, Version 5
baseurl=https://archive.cloudera.com/cdh5/redhat/6/x86_64/cdh/5/
gpgkey =https://archive.cloudera.com/cdh5/redhat/6/x86_64/cdh/RPM-GPG-KEY-cloudera
gpgcheck = 1
- git下载impala:
VERSION=`hdp-select status hadoop-client | sed 's/hadoop-client - \([0-9]\.[0-9]\).*/\1/'`
sudo git clone https://github.com/cas-bigdatalab/ambari-impala-service.git /var/lib/ambari-server/resources/stacks/HDP/$VERSION/services/IMPALA
3)web页面
重启ambariambari-server restart
,Actions-->Add service -->impala,然后一步一步安装
- 配置文件/etc/hadoop/conf/core-site.xml添加内容
dfs.client.read.shortcircuit
true
dfs.client.read.shortcircuit.skip.checksum
false
dfs.datanode.hdfs-blocks-metadata.enabled
true
/etc/hadoop/conf/hdfs-site.xml
dfs.datanode.hdfs-blocks-metadata.enabled
true
dfs.block.local-path-access.user
impala
dfs.client.file-block-storage-locations.timeout.millis
60000
将配置文件复制到/etc/impala/conf
-
页面安装启动impala
。
期间还参照http://www.cnblogs.com/zwgblog/p/6846030.html这个网址复制了hbase的jar包,但看别的都没有说jar包的移动,所以不确定有没有。
其中的错误:
1. 错误:部分py脚本会执行超时,然后报错Python script has been killed due to timeout after waiting 1800 secs
。解决:比如:/usr/bin/yum -d 0 -e 0 -y install hadoop_2_6_4_0_91-mapreduce
。
需要单独手动在对应的服务器上执行yum install hadoop_2_6_4_0_91-mapreduce
。然后在页面上点击Retry。
2. 在安装完impala之后,会出现jar包找不到的情况,而页面的显示为impala连接上之后又断开了。提示为Connection failed: [Errno 111] Connection refused to kindoserver43:22000
.
错误日志查看路径:/var/log/impala/
。
执行ll -rt
,有个impalad.ERROR -> 软连接到一个文件,cat该文件,则能看到异常。
把以下jar包放到 /usr/lib/impala/lib/ 目录下,并创建软连接:
ln -sf /usr/hdp/2.6.4.0-91/hadoop/hadoop-common-2.7.3.2.6.4.0-91.jar hadoop-common.jar
ln -sf /usr/hdp/2.6.4.0-91/hadoop/hadoop-auth-2.7.3.2.6.4.0-91.jar hadoop-auth.jar
ln -sf /usr/hdp/2.6.4.0-91/hive/lib/hive-metastore-1.2.1000.2.6.4.0-91.jar hive-metastore.jar
ln -sf /usr/hdp/2.6.4.0-91/hive/lib/hive-common-1.2.1000.2.6.4.0-91.jar hive-common.jar
ln -sf /usr/hdp/2.6.4.0-91/hive/lib/hive-shims-common-1.2.1000.2.6.4.0-91.jar hive-shims-common.jar
ln -sf /usr/hdp/2.6.4.0-91/hive/lib/hive-exec-1.2.1000.2.6.4.0-91.jar hive-exec.jar
ln -sf /usr/hdp/2.6.4.0-91/hadoop-mapreduce/hadoop-mapreduce-client-core-2.7.3.2.6.4.0-91.jar hadoop-mapreduce-client-core.jar
ln -sf /usr/hdp/2.6.4.0-91/hadoop-hdfs/hadoop-hdfs-2.7.3.2.6.4.0-91.jar hadoop-hdfs.jar
参考文献:https://www.jianshu.com/p/6e59df5f2461 。(因文中添加yum资源库开始行不通了,所以自行写了一篇)
http://blog.csdn.net/maxsky/article/details/51171474 。(MySQL部分)
https://community.hortonworks.com/questions/113748/hive-metastore-start.html 。(Hive Metastore Start)
http://www.mamicode.com/info-detail-2214089.html 。(没什么用,但是提供了灵感)
http://www.voidcn.com/article/p-rhriyovp-bhh.html 。(impala部分参考)