软件准备
操作系统:CENTOS7(mini)https://www.centos.org/
CDH下载:http://archive.cloudera.com/CDH6/
CM下载:http://archive.cloudera.com/cm6/
主要组件下载地址,需注意配合版本
DATAX下载:https://github.com/alibaba/DataX/blob/master/userGuid.md
(需注意下载的DATAX使用PYTHON2.X 如要用PYTHON3 需要源码重新编译)
HADOOP下载:https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/ 镜像下载(清华、阿里、163均可)
HIVE下载:http://mirrors.tuna.tsinghua.edu.cn/apache/hive/ 镜像下载(清华、阿里、163均可)
HBASE下载: http://mirror.bit.edu.cn/apache/hbase/镜像下载(清华、阿里、163均可)
MYSQL下载:(注意MYSQL与MariaDB)
http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
POSTGRESQL下载: https://yum.postgresql.org/ (GREENPLUM 分布式集成POSTGRESQL)
SPARK下载:http://spark.apache.org/downloads.html (需注意HADOOP版本)
KAFKA下载:https://kafka.apache.org
KETTLE下载:https://sourceforge.net/projects/pentaho/files/Data%20Integration/
ZOOKEEPER下载:https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/(清华、阿里、163均可)
DBearver下载:https://dbeaver.io/
硬件:三台服务器:主服务器 MASTER\从服务器SLAVE1\从服务器SLAVE2
系统安装
yum install -y gcc libxml2-devel libxslt-devel cyrus-sasl-devel mysql-devel python-devel python-setuptools python-simplejson sqlite-devel ant gmp-devel
yum install -y cyrus-sasl-plain cyrus-sasl-devel cyrus-sasl-gssapi
yum -y install libffi-devel
yum -y install openldap-devel (重新编译)
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.10.93
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
[root@master ~]# rm -rf /etc/udev/rules.d/70-persistent-net.rules
[root@master ~]# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=master
[root@master ~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.93 master
192.168.1.94 slave1
192.168.1.95 slave2
[root@master ~]#service iptables stop 关闭
[root@master ~]#chkconfig iptables off 开机自动关闭
[root@master ~]#setenforce 0 临时关闭
[root@master ~]#vi /etc/selinux/config
SELINUX=disabled
yum install -y openssl openssh-server
找到permitrootlogin将其前面的注释去掉
[root@master ~]#ssh-keygen -t rsa
中间3次回车
Slave1机器上执行 # scp -r /root/.ssh/id_rsa.pub master:/root/.ssh/slave1 .pub
Slave2机器上执行 # scp -r /root/.ssh/id_rsa.pub master:/root/.ssh/slave2 .pub
在master上执行
#进入/root/.ssh目录
[root@master ~]# cd .ssh/
#复制master生成的公钥到authorized_keys
[root@master .ssh]# cat id_rsa.pub >> authorized_keys
#复制slave1生成的公钥到authorized_keys
[root@master .ssh]# cat slave1.pub >> authorized_keys
#复制slave2生成的公钥到authorized_keys
[root@master .ssh]# cat slave2.pub >> authorized_keys
#发送到slave1服务器
[root@master .ssh]# scp -r authorized_keys slave1:$PWD
#发送到slave2服务器
[root@master .ssh]# scp -r authorized_keys slave2:$PWD
[root@master -]# chmod -R 700 .ssh
[root@master -]# cd .ssh
[root@master .ssh]# chmod 600 authorized_keys
权限700和600功能参考如下:
第一次登录要求输入YES确认一下,之后就可以直接进行登录,所以机器都要进行登录一遍
[root@master .ssh]# ssh master
[root@master .ssh]# ssh slave1
[root@master .ssh]# ssh slave2
#更新yum源ntp
Yum -y install ntp
#查询机器时间
Date
#时间同步
ntpdate pool.ntp.org
#查看时间同步服务
service ntpd status
#临时启用时间同步服务
service ntpd start
#配置ntpd永久生效(重启生效)
chkconfig ntpd on
从节点
使用crontab定时任务
crontab -e
添加定时任务(每分钟和主机同步)内容如下:
0-59/1 * * * * /usr/sbin/ntpdate cdh01.cm
#更新yum源httpd
yum -y install httpd
#查看httpd状态
systemctl status httpd.service
#启动httpd
service httpd start
#配置httpd永久生效(重启生效)
chkconfig httpd on
#更新yum源yum-utils createrepo
yum -y install yum-utils createrepo
安装系统依赖组件:(每台服务器均要)
6.1新建SOFT文件夹
#mkdir /usr/local/soft
6.2上传JDK安装包
(注意hadoop2.x只支持1.7 hadoop3支持1.8)
6.3解压到JAVA目录
#tar -zxvf JDK-8u221-linux-x64.tar.gz -C /opt/java
#vi /etc/profile 配置环境变量 在文件最后加上
#JAVA_HOME
export JAVA_HOME=/opt/java/jdk1.8.0_221
export PATH=$PATH:$JAVA_HOME/bin
修改后,使profile文件重新生效
#source /etc/profile
验证JAVA版本
#java -version
java version "1.8.1_221"
Java(TM) SE Runtime Environment (build 1.8.1_221-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
ZOOKEEEPER组件安装
ZooKeeper软件的文件和目录
运行配置
上面提到,conf目录下提供了配置的样例zoo_sample.cfg,要将zk运行起来,需要将其名称修改为zoo.cfg。
打开zoo.cfg,可以看到默认的一些配置。
集群模式
单机模式的zk进程虽然便于开发与测试,但并不适合在生产环境使用。在生产环境下,我们需要使用集群模式来对zk进行部署。
注意
在集群模式下,建议至少部署3个zk进程,或者部署奇数个zk进程。如果只部署2个zk进程,当其中一个zk进程挂掉后,剩下的一个进程并不能构成一个quorum的大多数。因此,部署2个进程甚至比单机模式更不可靠,因为2个进程其中一个不可用的可能性比一个进程不可用的可能性还大。
5. 1 运行配置
在集群模式下,所有的zk进程可以使用相同的配置文件(是指各个zk进程部署在不同的机器上面),例如如下配置:
tickTime=2000
dataDir=/home/myname/zookeeper
clientPort=2181
initLimit=5
syncLimit=2
server.1=192.168.229.160:2888:3888
server.2=192.168.229.161:2888:3888
server.3=192.168.229.162:2888:3888
注意
如果仅为了测试部署集群模式而在同一台机器上部署zk进程,server.id=host:port1:port2配置中的port参数必须不同。但是,为了减少机器宕机的风险,强烈建议在部署集群模式时,将zk进程部署不同的物理机器上面。
5.2 启动
假如我们打算在三台不同的机器 192.168.229.160,192.168.229.161,192.168.229.162上各部署一个zk进程,以构成一个zk集群。
三个zk进程均使用相同的 zoo.cfg 配置:
tickTime=2000
dataDir=/home/myname/zookeeper
clientPort=2181
initLimit=5
syncLimit=2
server.1=192.168.229.160:2888:3888
server.2=192.168.229.161:2888:3888
server.3=192.168.229.162:2888:3888
在三台机器dataDir目录( /home/myname/zookeeper 目录)下,分别生成一个myid文件,其内容分别为1,2,3。然后分别在这三台机器上启动zk进程,这样我们便将zk集群启动了起来。
5.3 连接
可以使用以下命令来连接一个zk集群:
bin/zkCli.sh -server 192.168.229.160:2181,192.168.229.161:2181,192.168.229.162:2181
成功连接后,可以看到如下输出:
2016-06-28 19:29:18,074 [myid:] - INFO [main:ZooKeeper@438] - Initiating client connection, connectString=192.168.229.160:2181,192.168.229.161:2181,192.168.229.162:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@770537e4
Welcome to ZooKeeper!
2016-06-28 19:29:18,146 [myid:] - INFO [main-SendThread(192.168.229.162:2181):ClientCnxn$SendThread@975] - Opening socket connection to server 192.168.229.162/192.168.229.162:2181. Will not attempt to authenticate using SASL (unknown error)
JLine support is enabled
2016-06-28 19:29:18,161 [myid:] - INFO [main-SendThread(192.168.229.162:2181):ClientCnxn$SendThread@852] - Socket connection established to 192.168.229.162/192.168.229.162:2181, initiating session
2016-06-28 19:29:18,199 [myid:] - INFO [main-SendThread(192.168.229.162:2181):ClientCnxn$SendThread@1235] - Session establishment complete on server 192.168.229.162/192.168.229.162:2181, sessionid = 0x3557c39d2810029, negotiated timeout = 30000
WATCHER::
WatchedEvent state:SyncConnected type:None path:null
[zk: 192.168.229.160:2181,192.168.229.161:2181,192.168.229.162:2181(CONNECTED) 0]
图2:客户端连接zk集群的输出日志
从日志输出可以看到,客户端连接的是192.168.229.162:2181进程(连接上哪台机器的zk进程是随机的),客户端已成功连接上zk集群。
HADOOP组件安装
#tar -zxvf hadoop-2.8.5.tar.gz -C /opt/hadoop
Hadoop-env.sh core-site.xml hdfs-site.xml yarn-site.xml mapred-site.xml workers
Hadoop-env.sh添加内容
export JAVA_HOME=/opt/java/jdk1.8.0_221
#Set HADOOP
export HDFS_NAMENODE_USER="root"
export HDFS_DATANODE_USER="root"
export HDFS_SECONDARYNAMENODE_USER="root"
export YARN_RESOURCEMANAGER_USER="root"
export YARN_NODEMANAGER_USER="root"
core-site.xml 添加内容
<configuration>
<!—指定hdfs的nameservice为NS1-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
</configuration>
hdfs-site.xml添加内容
<configuration>
<!—configurations for NameNode -->
<property>
<name>dfs.namenode.name.dir</name>
<value>/var/lib/Hadoop/hdfs/name/</value>
</property>
<property>
<name>dfs.blocksize</name>
<value>268435456</value>
</property>
<property>
<name>dfs.namenode.handler.count</name>
<value>100</value>
</property>
<!—configurations for DataNode -->
<property>
<name>dfs.datanode.data.dir</name>
<value>/var/lib/Hadoop/hdfs/data/</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
yarn-site.xml 添加内容
<configuration>
<!—Site specific YARN configuration properties -->
<!-Configurations for ResourceManager and NodeManager ->
<!-Configurations for ResourceManager.->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<!—配置外网只需替换外网IP为真实IP,否则默认为localhost:8088 ->
<!--<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>外网IP:8088</value>
</property> -->
<!—Configurations for NodeManager -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-configurations for History Server(Needs to be moved elsewhere) -->
</configuration>
mapred-site.xml配置
<configuration>
<!-Configurations for MapReduce Applications ->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
Worker 配置
slave1
slave2
/opt/Hadoop/hadoop2.8.5
#vim /etc/profile.d/Hadoop-2.8.5.sh
export HADOOP_HOME=”/opt/Hadoop/Hadoop-2.8.5”
export PATH=”$PATH:$HADOOP_HOME/bin”
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/Hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/Hadoop
重新生效profile
source /etc/profile
/opt/hadoop/hadoop-2.8.5/bin/hdfs namenode -format myClusterName
/opt/hadoop/hadoop-2.8.5/sbin/start-dfs.sh
/opt/hadoop/Hadoop-2.8.5/sbin/start-yarn.sh
/opt/hadoop/hadoop-2.8.5/sbin/stop-dfs.sh
/opt/hadoop/hadoop-2.8.5/sbin/stop-yarn.sh
rm -rf /opt/hadoop/hadoop-2.8.5/logs/*
rm -rf /var/lib/hadoop/
Namenode \datanode 启动不了,主要检查6个配置文件
HIVE组件安装
– 下载 Hive 2.3.4 到 Master 的 /home/dc2-user 并解压
wget http : //mirror.bit.edu.cn/apache/hive/hive-2.3.4/apache-hive-2.3.4-bin.tar.gz
tar zxvf apache - hive - 2.3.4 - bin . tar . gz
编辑 /etc/profile.d/hive.sh 文件, 在其中添加以下内容:
使环境变量生效:
source / etc / profile
重命名以下配置文件:
修改 hive-env.sh:
修改 hive-site.xml
修改对应属性的 value 值
Hive Metastore 是用来获取 Hive 表和分区的元数据,本例中使用 MariaDB 来存储此类元数据。
下载 mysql-connector-java-5.1.40-bin.jar 放入 $HIVE_HOME/lib 下并在 hive-site.xml 中添加 MySQL 数据库连接信息。
MYSQL组件安装
下载并安装MySQL官方的 Yum Repository
[root@localhost ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
使用上面的命令就直接下载了安装用的Yum Repository,大概25KB的样子,然后就可以直接yum安装了。
[root@localhost ~]# yum -y install mysql57-community-release-el7-10.noarch.rpm
开始安装
[root@localhost ~]# yum -y install mysql-community-server
这步可能会花些时间,安装完成后就会覆盖掉之前的mariadb
至此MySQL就安装完成了,然后是对MySQL的一些设置。
MySQL数据库设置
首先启动MySQL
[root@localhost ~]# systemctl start mysqld.service
查看MySQL运行状态,运行状态如图:
[root@localhost ~]# systemctl status mysqld.service
https://blog.csdn.net/lmss82/article/details/4414178
MySQL 重置密码
如果你忘记 MySQL 密码,可以通过修改 my.cnf 文件添加 skip-grant-tables 来重置密码,步骤如下:
1、打开 my.cnf 配置文件,找到 [mysqld] ,然后在该行下面添加以下参数:
skip-grant-tables
重启 MySQL 服务:
service mysql restart
登录 MySQL,此时不需要密码,直接回车:
# mysql -u root -p
更改 root 密码 为 123456:
mysql> use mysql;
mysql> update user set authentication_string=password("123456") where user=‘root‘;
mysql> flush privileges; # 刷新权限
注意密码字段名 5.7 版本的是 authentication_string,之前的为 password。
修改完后,记得注释掉 my.cnf 中的 skip-grant-tables 参数,重启 MySQL 服务,就可以用你设置的密码登录了。
如果你想要设置一个简单的测试密码的话,比如设置为123456,会提示这个错误,报错的意思就是你的密码不符合要求
mysql> alter user ‘root‘@‘localhost‘ identified by ‘123456‘;
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
1
2
3
.
这个其实与validate_password_policy的值有关。
validate_password_policy有以下取值:
默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。
有时候,只是为了自己测试,不想密码设置得那么复杂,譬如说,我只想设置root的密码为123456。
必须修改两个全局参数:
首先,修改validate_password_policy参数的值
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)
1
2
validate_password_length(密码长度)参数默认为8,我们修改为1
mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)
1
2
4,完成之后再次执行修改密码语句即可成功
mysql> alter user ‘root‘@‘localhost‘ identified by ‘123456‘;
Query OK, 0 rows affected (0.00 sec)
————————————————
版权声明:本文为CSDN博主「谁还不是小白鼠」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/memory6364/article/details/82426052
此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的密码,通过如下命令可以在日志文件中找出密码:
[root@localhost ~]# grep "password" /var/log/mysqld.log
如下命令进入数据库:[root@localhost ~]# mysql -uroot -p
输入初始密码(是上面图片最后面的 no;e!5>>alfg),此时不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库:mysql> ALTER USER ‘root‘@‘localhost‘ IDENTIFIED BY ‘new password‘;
其中‘new password’替换成你要设置的密码,注意:密码设置必须要大小写字母数字和特殊符号(,/‘;:等),不然不能配置成功开启mysql的远程访问
执行以下命令开启远程访问限制(注意:下面命令开启的IP是 192.168.0.1,如要开启所有的,用%代替IP):
grant all privileges on *.* to ‘root‘@‘192.168.0.1‘ identified by ‘password‘ with grant option;
然后再输入下面两行命令
mysql> flush privileges;
mysql> exit
4 为firewalld添加开放端口
添加mysql端口3306和Tomcat端口8080
[root@localhost ~]# firewall-cmd --zone=public --add-port=3306/tcp –permanent
[root@localhost ~]# firewall-cmd --zone=public --add-port=8080/tcp --permanent
然后再重新载入
[root@localhost ~]# firewall-cmd --reload
5 更改mysql的语言
首先重新登录mysql,然后输入status:
可以看到,绿色箭头处不是utf-8
因此我们先退出mysql,然后再到、etc目录下的my.cnf文件下修改一下文件内容
进入文件后,新增四行代码:
保存更改后的my.cnf文件后,重启下mysql,然后输入status再次查看,就会发现变化
HBASE集群安装(处理非结构化数据)必需先安装ZOOKEEPER
解压HBASE
#tar -zxvf /usr/local/soft/hbase-2.1.7-bin.tar.gz
配置conf/hbase-site.xml 及hbase_env.sh
PIG安装
OOZIE安装
hue安装(HADOOP UI系统)
sudo yum install ant asciidoc cyrus-sasl-devel cyrus-sasl-gssapi cyrus-sasl-plain gcc gcc-c++ krb5-devel libffi-devel libxml2-devel libxslt-devel make mysql mysql-devel openldap-devel python-devel sqlite-devel gmp-devel
cat /etc/redhat-release
git clone https://github.com/cloudera/hue.git
cd hue
增加CDH中的CM界面管理HADOOP集群(待测试)
DATAX操作
原文:https://www.cnblogs.com/peter-lau/p/12424763.html