设置网络
创建用户
使用ambari用户进行操作,避免安装出现目录没有权限访问API的问题
分配IP
直接在linux的图形界面进行设置比较简单 示例ip为192.168.1.101-103
设置hostname
vi /etc/hostname bdai.node1 #第一台配置 bdai.node2 #第二台配置 bdai.node3 #第三台配置
设置hosts
vim /etc/hosts 192.168.1.101 bdai.node1 192.168.1.102 bdai.node2 192.168.1.103 bdai.node3 scp -r /etc/hosts root@bdai.node2:/etc scp -r /etc/hosts root@bdai.node3:/etc
关闭防火墙
systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall开机启动 firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
关闭selinux
vim /etc/sysconfig/selinux 修改selinux=disabled setenforce 0 #临时关闭selinux getenforce #查看selinux状态 配置完成,需重启后生效
关闭Transparent HugePages(这一步可以不配置,如果环境冲突有平台报错的时候才配置)
在linux的root用户下执行 echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled echo never > /sys/kernel/mm/transparent_hugepage/enabled echo never > /sys/kernel/mm/transparent_hugepage/defrag
配置免密登录
对所有的机器执行 ssh-keygen -t rsa ssh-copy-id -i bdai.node1 ssh-copy-id -i bdai.node2 ssh-copy-id -i bdai.node3
配置时间同步
yum -y install ntp #(ntpdate ntp1.aliyun.com可以进行单次的使用) service ntpd start chkconfig ntpd on #设置开机启动 切换时区(装机的时候如果选择的时区是上海,则不用管这一步) ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
构建仓库
配置httpd仓库(只有仓库所在节点有这个步骤)
service httpd status查看是否开启这个服务,如果没有httpd服务,先安装Httpd服务 yum -y install httpd #安装httpd服务 将安装包丢到/car/www/html下,这是httpd的挂载目录 mkdir /var/www/html/ambari cd /var/www/html/ambari 上传安装包 解压HDP/Ambari相关安装包 yum clean all yum makecache yum repolist 访问主机ip即可访问到httpd服务地址 192.168.1.101/ambari
配置yum源文件
cd /etc/yum.repos.d vim ambari.repo #VERSION_NUMBER=2.7.0.0-897 [ambari-2.7.0.0] #json.url = http://192.168.1.101/yum/HDP/hdp_urlinfo.json name=ambari Version - ambari-2.7.0.0 baseurl=http://192.168.1.101/ambari/ambari/centos7/2.7.0.0-897/ gpgcheck=1 gpgkey=http://192.168.1.101/ambari/ambari/centos7/2.7.0.0-897/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins enabled=1 priority=1 scp -r ambari.repo root@192.168.1.102:$PWD scp -r ambari.repo root@192.168.1.103:$PWD
安装jdk
将jdk拖到/software目录下进行解压 vim /etc/profile 添加如下内容 export JAVA_HOME=/software/jdk1.8.0_151 export PATH=$JAVA_HOME/bin:$PATH: source /etc/profile
安装mysql
1.到/software/mysql目录 mkdir /software/mysql cd /software/mysql 2.到本地仓库下载 wget http://192.168.1.101/ambari/mysql-community-libs-compat-5.7.23-1.el7.x86_64.rpm wget http://192.168.1.101/ambari/mysql-community-common-5.7.23-1.el7.x86_64.rpm wget http://192.168.1.101/ambari/mysql-community-libs-5.7.23-1.el7.x86_64.rpm wget http://192.168.1.101/ambari/mysql-community-server-5.7.23-1.el7.x86_64.rpm wget http://192.168.1.101/ambari/mysql-community-client-5.7.23-1.el7.x86_64.rpm 注意: 先查看本机是否存在其他数据库,系统自带数据库为:mariadb。 可以通过命令: >>rpm -aq | grep mariadb 进行查看,如果有则把查出来的结果卸载。 >>rpm -e --nodeps <上条命令查出的结果包> 3.按下面次序安装依赖包 rpm -ivh mysql-community-common-5.7.23-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-5.7.23-1.el7.x86_64.rpm rpm -ivh mysql-community-client-5.7.23-1.el7.x86_64.rpm rpm -ivh mysql-community-server-5.7.23-1.el7.x86_64.rpm 4.开启mysql服务并查看状态 systemctl start mysqld systemctl status mysqld 5.设置开机自启动 systemctl enable mysqld chkconfig mysqld on systemctl daemon-reload 6.用root用户登录,修改密码 6.1生成一个临时密码 grep 'temporary password' /var/log/mysqld.log 此时会生成一个密码的密文复制之后进行登录即可 6.2root用户登录,修改密码 mysql -u root -p 输入前面生成的临时密码,回车 set global validate_password_policy=0; set global validate_password_length=1; mysql> set password for 'root'@'localhost'=password('root');
安装ambari
安装服务(安装之后执行下一章节中创建mysql数据库和用户后再继续后续步骤) sudo yum install ambari-server ================(先执行下一章节内容)===================== cd /usr/share/java wget 仓库mysql-connector.jar地址 cp /usr/share/java/mysql-connector-java.jar /var/lib/ambari-server/resources/mysql-jdbc-driver.jar 把connector的jar包放到目录下 ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar ambari-server setup 下面是配置执行流程,按照提示操作 (1) 提示是否自定义设置。输入:y Customize user account for ambari-server daemon [y/n] (n)? y (2)ambari-server 账号。 Enter user account for ambari-server daemon (root): 如果直接回车就是默认选择root用户 如果输入已经创建的用户就会显示: Enter user account for ambari-server daemon (root):ambari Adjusting ambari-server permissions and ownership... (3)检查防火墙是否关闭 Adjusting ambari-server permissions and ownership... Checking firewall... WARNING: iptables is running. Confirm the necessary Ambari ports are accessible. Refer to the Ambari documentation for more details on ports. OK to continue [y/n] (y)? 直接回车 (4)设置JDK。输入:3 Checking JDK... Do you want to change Oracle JDK [y/n] (n)? y [1] Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8 [2] Oracle JDK 1.7 + Java Cryptography Extension (JCE) Policy Files 7 [3] Custom JDK ============================================================================== Enter choice (1): 3 如果上面选择3自定义JDK,则需要设置JAVA_HOME。输入:/usr/java/jdk1.8.0_161 WARNING: JDK must be installed on all hosts and JAVA_HOME must be valid on all hosts. WARNING: JCE Policy files are required for configuring Kerberos security. If you plan to use Kerberos,please make sure JCE Unlimited Strength Jurisdiction Policy Files are valid on all hosts. Path to JAVA_HOME: /usr/java/jdk1.8.0_131 Validating JDK on Ambari Server...done. Completing setup... (5)数据库配置。选择:y Configuring database... Enter advanced database configuration [y/n] (n)? y (6)选择数据库类型。输入:3 Configuring database... ============================================================================== Choose one of the following options: [1] - PostgreSQL (Embedded) [2] - Oracle [3] - MySQL [4] - PostgreSQL [5] - Microsoft SQL Server (Tech Preview) [6] - SQL Anywhere ============================================================================== Enter choice (3): 3 (7)设置数据库的具体配置信息,根据实际情况输入,如果和括号内相同,则可以直接回车。如果想重命名,就输入。 Hostname (localhost): Port (3306): Database name (ambari): Username (ambari): Enter Database Password (bigdata):ambarizk123 Re-Enter password: ambarizk123 (8)将Ambari数据库脚本导入到数据库 WARNING: Before starting Ambari Server, you must run the following DDL against the database to create the schema: /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql Proceed with configuring remote database connection properties [y/n] (y)? [root@master ~]# ambari-server start
创建mysql数据库和用户(先安装ambari之后再进行读取脚本的操作)
mysql -uroot -proot CREATE DATABASE ambari; use ambari; CREATE USER 'ambari'@'%' IDENTIFIED BY 'ambari'; GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'%'; CREATE USER 'ambari'@'localhost' IDENTIFIED BY 'ambari'; GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'localhost'; CREATE USER 'ambari'@'bdai.node1' IDENTIFIED BY 'ambari'; GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'bdai.node1'; FLUSH PRIVILEGES; source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql show tables; CREATE DATABASE hive; use hive; CREATE USER 'hive'@'%' IDENTIFIED BY 'hive'; GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%'; CREATE USER 'hive'@'localhost' IDENTIFIED BY 'hive'; GRANT ALL PRIVILEGES ON *.* TO 'hive'@'localhost'; CREATE USER 'hive'@' bdai.node1' IDENTIFIED BY 'hive'; GRANT ALL PRIVILEGES ON *.* TO 'hive'@'bdai.node1'; FLUSH PRIVILEGES;
安装集群
输入集群名称:自定例如Hdp 输入加入的host名称,这里使用bdai.node1 配置安装包的url HDP: http://192.168.1.101/ambari/HDP/centos7/3.0.0.0-1634/ hdp-gpl: http://192.168.1.101/ambari/HDP-GPL/centos7/3.0.0.0-1634/ HDP-UTIL http://192.168.1.101/ambari/HDP-UTILS/centos7/1.1.0.22/ 选择/root/.ssh/id_rsa作为秘钥 点击下一步,选择HDFS和ZOOKEEPER作为集群安装服务(服务节点规划参考服务规划章节),点击下一步直到安装完成 这里如果报错没有api执行权限 在server端执行 chown -R ambari:ambari /var/run/ambari-server 后返回上一步再重新点击next即可解决 Yarn RegistryDNS无法启动将设置中默认的53端口改成60重启服务即可
添加新节点(将新机器配置之后加入到集群中)
#配置节点基础环境的步骤从设置网络到安装jdk都一样 #不需要安装mysql #不需要安装ambari-server 安装ambari-agent yum -y install ambari-agent 修改ambari-agent配置文件 vim /etc/ambari-agent/conf/ambari-agent.ini hostname=rails-server(主节点名字) exp:hostname=bdai.node1 启动ambari-agent service ambari-agent start 2.8 登录ambari页面 2.8.1 host--Action--Add New Hosts 输入节点hostname,为新增节点的hostname,这里是bdai.node2/bdai.node3,不选择ssh,选择Perform manual registration on hosts and do not use SSH,后确定 服务规划选择datanode和client作为子节点安装的服务,点击next等待安装完成
HDF整合
//安装 cd /tmp //下载安装包 wget (hdf-ambari-mpack-3.2.0.0-520.tar.gz地址) ambari-server install-mpack --mpack=/tmp/hdf-ambari-mpack-<version>.tar.gz --verbose ambari-server restart //填入HDF的URL地址 点击右上角admin下的manage ambari,点击左侧菜单栏version,中间列表选择集群名字点进去,拖到最下方,填入HDF URL到对应的位置(URL参考yum源配置) http://192.168.1.101/ambari/HDF/centos7/3.2.0.0-520/ //出现安装时候API权限调用问题 chown -R ambari /var/run/ambari-server
配置高可用集群
点击左侧HDFS之后按照下图选择右上角action选项,按照提示进行安装即可(服务重启过程中可能会进入安全模式,此时首先切换到hdfs用户,然后执行hdfs dfsadmin -safemode leave退出安全模式即可)
服务规划
bdai.node1 | bdai.node2 | bdai.node3 |
---|---|---|
namenode | namenode | |
resource manager | ||
zookeeper server | zookeeper server | zookeeper server |
JN | JN | JN |
hive | ||
hbase | ||
pig | ||
sqoop | ||
kafka | ||
spark | ||
nifi | nifi CC | |
H2O |
端口规划
服务 | 端口 |
---|---|
ambari访问端口 | 8080 |
HDFS webUI | 50070 |
Yarn 任务监控UI | 8088 |
Hive Server2连接端口 | 10000 |
hbase_webUI | 16010 |
zookeeper数据访问 | 2181 |
spark 任务监控UI端口 | 18081 |
HDFS_RPC端口 | 8082 |
kafka_bootstrap端口 | 6667 |
H2O安装
安装包直接放到目录/software下切换到h2o文件夹根目录,使用下列命令后台启动 java -Xmx20g -jar h2o.jar -flatfile flatfile.txt -port 54321 1>h2o.out 2>h2o.err &
重装系统备注
针对不同的bios进行设置参考以下链接 http://www.udashi.com/jc/2.html 注意设置硬盘启动的时候不要设置快速启动
Demo测试问题
spark2.3.0和kafka2.11会有冲突,注意pom文件中spark2.3.0放在前边,使用低版本的jackson包,否则spark程序无法构建RDD