「hadoop」cdh5.12离线安装(未完成)

cdh 5.12.1 安装

目前还未成功,仅供个人记录。

【下载必备工具】
当前系统为win7_x64
1、vmware虚拟机12.5
2、ubuntu16.04服务器版本
3、windows下的ssh工具,采用git bash
4、jdk安装包jdk-8u144-linux-x64.tar.gz
5、mysql java驱动包 mysql-connector-java-5.1.44-bin.jar
6、Cloudera Manager安装包 http://archive.cloudera.com/cm5/cm/5/cloudera-manager-xenial-cm5.12.1_amd64.tar.gz
7、cdh 安装包,三个文件:CDH-5.12.1-1.cdh5.12.1.p0.3-xenial.parcel,CDH-5.12.1-1.cdh5.12.1.p0.3-xenial.parcel.sha1,manifest.json, http://archive.cloudera.com/cdh5/parcels/5.12.1.3/

【注意事项】
1、按默认路径安装,比如/opt
2、各节点用户名和密码保持一致
3、/opt/cm-5.12.1的文件名不要改,否则会重新下载cm
4、hosts里的主机名必须小写,没有别名,没有重复IP
5、最好用root操作
6、该文档提到的7180网页是指namenode:7180网页
7、jdk最好按照在默认路径/usr/java/jdk1.8.0-<version>,如果按照在自定义路径,则需要在7180网页上配置jdk路径

【安装vmware虚拟机】
按正常安装并注册即可。

【虚拟机安装ubuntu16.04】
虚拟机安装服务器版本16.04。

【虚拟机网路适配】
按默认的NAT连接模式。

【安装vim】
替代vi编辑器,必备
$sudo apt-get install vim

【设置host】
$sudo vim /etc/hostname
注释掉 127.0.1.1的映射,改为具体IP地址到host的映射,如192.168.211.131 namenode
重启生效,$hostname 显示当前主机名

其中,1、主节点hosts增加子节点的映射
192.168.211.132 datanode1
192.168.211.133 datanode2
192.168.211.134 datanode3
192.168.211.135 datanode4

2、子节点增加主节点的映射
192.168.211.131 namenode

3、修改windowns下的host映射,位于C:WindowsSystem32driversetchosts文件
增加
192.168.211.131    namenode
192.168.211.132    datanode1
192.168.211.133    datanode2
192.168.211.134    datanode3
192.168.211.135    datanode4

【禁止IPv6】
cdh只支持IPv4,不支持IPv6,并且要禁止IPv6

$sudo vim /etc/sysctrl.conf 末尾增加内容:
#IPv6 disabled
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

【启用root账号】
设置密码 $sudo su,$passwd
设置允许远程root登录 $sudo vim /etc/ssh/sshd_config
PermitRootLogin项 改为 yes

【安装ping工具】
服务器版已默认安装,如果没安装,安装即可:$sudo apt-get install net-tools

【配置IP地址】
需要固定IP地址,由于是虚拟机,略

【安装ssh以及免登录】
安装ssh,包括服务器端:$sudo apt-get install ssh

免证书登录:
A 想ssh无密码登录 B
在A中生成公钥 #ssh-keygen -t rsa
把公钥添加到B中 #ssh-copy-id root@B // root为用户名

注意:需要配置namenode到所有datanode节点的ssh免登录,以及windows到namenode和所有datanode节点的ssh免登录

【替换源】
官方的源网络很慢,可以替换成国内源,比如阿里巴巴
$ sudo vim /etc/apt/sources.list
文件内容为:
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu xenial-security main restricted
deb http://mirrors.aliyun.com/ubuntu xenial-security universe
deb http://mirrors.aliyun.com/ubuntu xenial-security multiverse

【关闭防火墙】
默认防火墙处于关闭状态,查看防火墙状态$sudo ufw status

【安装python2.7】
$sudo apt-get install python
通过 $python 测试安装结果

【安装perl】
$sudo apt-get install perl

【安装iproute】
5.12及以上版本需要安装iproute
$sudo apt-get install iproute

【同步时区】
默认不是中国时区,需要设置
安装更新时间工具 $sudo apt-get install ntpdate
查看当前时区 $date -R
设置中国时区(Shanghai) $sudo tzselect 一步步选择
复制文件到/etc目录下 $sudo cp /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime
更新时间 $sudo ntpdate time.windows.com

【设置共享目录】(可选)
设置win主机与虚拟机共享目录
ubuntu中安装VMware Tools,参考“http://www.cnblogs.com/ftrako/p/7654773.html”
在虚拟机上设置共享文件夹,具体步骤网上搜索
目标,在ubuntu中可以直接访问windows下的共享文件夹

【安装java】
假设安装包已存放到共享文件夹中
创建安装目录 $sudo mkdir /usr/lib/jvm
解压安装包 $sudo tar -zxvf /mnt/hgfs/SharedFiles/jdk-8u144-linux-x64.tar.gz -C /usr/lib/jvm/
重命名 $sudo mv jdk1.8.0_144/ jdk
添加环境变量 $sudo vim /etc/profile
export JAVA_HOME=/usr/lib/jvm/jdk
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH

环境变量生效 $source /etc/profile
修改权限 $sudo chown -R chendajian /usr/lib/jvm/jdk/
测试安装是否成功 $javac -version

【集群时间同步】
安装ntp $sudo apt-get install ntp   // 主节点
同步时间 $sudo ntpdate -u time.windows.com

【解决Cloudera 建议将 /proc/sys/vm/swappiness 设置为最大值 10。当前设置为 60,所有节点】
#echo 10 > /proc/sys/vm/swappiness
主机重启,该值会恢复到默认值60

【安装数据库驱动,仅主节点】
假设mysql已安装在windows主机中。
安装mysql客户端  $sudo apt-get install mysql-client-core-5.7
安装mysql驱动 $sudo apt-get install libmysql-java
测试登录  $mysql -h192.168.211.1 -P3306 -uchendajian -p123456 (h表示主机,P表示端口,u表示用户名,p表示密码)

【CDH包拷贝,主节点】
创建预设目录
$sudo mkdir /opt/cloudera
$sudo mkdir /opt/cloudera/parcel-repo
依次拷贝cdh包的三个文件到parcel-repo目录下
$sudo cp /mnt/hgfs/SharedFiles/hadoopcdh/CDH-5.12.1-1.cdh5.12.1.p0.3-xenial.parcel /opt/cloudera/parcel-repo/
$sudo cp /mnt/hgfs/SharedFiles/hadoopcdh/CDH-5.12.1-1.cdh5.12.1.p0.3-xenial.parcel.sha1 /opt/cloudera/parcel-repo/
$sudo cp /mnt/hgfs/SharedFiles/hadoopcdh/manifest.json /opt/cloudera/parcel-repo/

修改权限 $sudo chown -R chendajian /opt/cloudera

sha1改名,不然会重新下载
$sudo mv /opt/cloudera/parcel-repo/CDH-5.12.1-1.cdh5.12.1.p0.3-xenial.parcel.sha1 /opt/cloudera/parcel-repo/CDH-5.12.1-1.cdh5.12.1.p0.3-xenial.parcel.sha

【CM安装,所有节点】
解压cm包到/opt后注意修改权限
添加mysql java jar包 $sudo cp /mnt/hgfs/SharedFiles/mysql-connector-java-5.1.44-bin.jar /opt/cm-5.12.1/share/cmf/lib
修改成主节点名称 /opt/cm-5.12.1/etc/cloudera-scm-agent/config.ini, 设置server_host=namenode
修改java路径
/opt/cm-5.12.1/share/cmf/schema/scm_prepare_database.sh
/opt/cm-5.12.1/share/cmf/bin/cmf-server

备注:主节点配置好cm后,通过scp传到其它节点

【初始化CM数据库,仅主节点】
$sudo /opt/cm-5.12.1/share/cmf/schema/scm_prepare_database.sh mysql cm -h192.168.211.1 -P3306 -uchendajian -p123456 --scm-host localhost root 123456
说明:最后三个参数分别是 主机名 用户名 密码
数据库连接配置文件位于 /etc/cloudera-scm-server/db.properties

【解决DNS反向解析问题】
网上暴力方法: #mv /usr/bin/host /usr/bin/host.bak

【创建预设数据库】
mysql中依次创建hive, activity,oozie,hue等数据库,参考代码:create database activity DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

【启动Cloudera Manager】
agent需要等待server完全启动后才能启动
主节点
$sudo /opt/cm-5.12.1/etc/init.d/cloudera-scm-server start
$sudo /opt/cm-5.12.1/etc/init.d/cloudera-scm-agent start

从节点
$sudo /opt/cm-5.12.1/etc/init.d/cloudera-scm-agent start
当cloudera-scm-server、cloudera-scm-agent start启动成功之后,可通过http://主节点IP:7180来访问CM,用户名密码都为admin。剩下的就是一直点下一步和根据具体的需求来配置集群了。


【配置】
服务启动几分钟后,浏览器打开配置网页 http://namenode:7180
用户名密码都为admin

修改jdk路径
CDH的jdk默认路径是/usr/java/xxxx,需要改为自定义的/usr/lib/jvm/jdk,在7180的网页配置的高级选项中找到java相关的配置修改。

页面显示 Inspector did not run successfully.
几种可能:
1、IPv6没有禁止导致DNS反向查找失败
2、可能是由于jdk路径没有识别

问题集
检查agent日志,发现
 ERROR    Error, CM server guid updated, expected 26e2c7d5-dd47-4368-811f-a7d1d13e1b9a, received 24171d15-06a4-43f1-b237-cb0e0540017
解决办法:
删除/opt/cm-5.12.1/lib/cloudera-scm-agent/cm_guid

原文地址:https://www.cnblogs.com/ftrako/p/7660747.html