说明:本机是在win10系统下,安装用的是VMware15, centOS7, JDK1.8, spark-2.4.0,hadoop-2.7.7, apache-hive-2.3.4, scala-2.12.8。在VMware里创建了node01, node02, node03, node04四个节点(或者叫四个虚拟机)。注意 在使用vm14版本的时候出现黑屏,情况如下: 在vm上安装好4个节点后,用管理员身份打开VM,启动节点有时候会碰到启动的节点是黑屏的情况,一直挂起,解决方法: 以管理员身份运行cmd控制台程序 输入命令netsh winsock reset 作用是重置winsock网络规范,然后重启系统,在打开VMware就可以了。vm15目前没有出现过黑屏。

~/.bashrc 和 /etc/profile的区别: 符号 ~ 在Linux中表示当前用户目录: /是目录分隔符。 ~是一个代位符,表明的是个人目录的地址。 /是根节点, ~是 home 如果以root账号登陆 ~ 是 /root/ 如果以普通用户登陆 ~ 是 /home/name/ /etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc四个文件在环境变量中的区别与作用: 1、/etc/profile 用来设置系统环境(参)变(数)量,比如$PATH. 这里面的环境变量是对系统内所有用户生效的。 2、/etc/bashrc 这个文件设置系统-bash shell相关的,对系统内所有用户生效。只要用户运行bash命令,那么这里面的东西就在起作用。 3、~/.bash_profile: 用来设置一些环境变量,功能和/etc/profile 类似,但是这个是用户级别来设定的,也就是说,你在/home/{username}/.bash_profile 中设定了环境变量,那么这个环境变量只针对这个用户生效. 4、~/.bashrc: 作用类似于/etc/bashrc, 只是针对当前用户有效,不对其他用户生效。 另外/etc/profile中设定的变量是全局的可以作用于任何用户, 而~/.bashrc等中设定的变量是局部只能继承/etc/profile中的变量,他们是"父子"关系。 ~/.bash_profile 是交互式、login 方式进入 bash 运行的意思是只有用户登录时才会生效。 ~/.bashrc 是交互式 non-login 方式进入 bash 运行的,用户不一定登录,只要以该用户身份运行命令行就会读取该文件。 本机是在~/.bashrc里配置的环境变量,也可以在 /etc/profile 里配置环境变量

安装好CentOS7后 关闭防火墙: 查看防火墙状态命令: systemctl status firewalld.service 关闭防火墙命令: systemctl stop firewalld.service 禁用防火墙命令: systemctl disable firewalld.service 查看ip地址命令: ip addr 设置网络为静态Ip 命令: vi /etc/sysconfig/network-scripts/ifcfg-ens33 修改: BOOTPROTO = dhcp 改为 BOOTPROTO = static 添加下面内容: IPADDR = 用ip addr命令查的ip地址 NETMASK=255.255.255.0 GATEWAY=用ip addr命令查的ip地址的网关 DNS1=119.29.29.29 重启网卡: systemctl restart network.service 测试外网: ping –c 4 www.baidu.com

安装好CentOS7后,网络配置配好,并且能ping通百度,固定IP 一:安装SSH

  1. 检查SSH是否开启 命令: yum list installed | grep openssh-server 此处显示已经安装了openssh-server, 如果没有任何输出显示表示没有安装openssh-server,通过输入 yum install openssh-server来安装openssh-server
  2. 找到/etc/ssh/目录下的sshd服务配置文件sshd_config,用vi编辑打开。将文件中,关于监听端口,监听地址前的#号去掉 然后开启允许远程登陆 开启使用用户密码来作为连接登录 保持文件,退出
  3. 开启sshd服务,输入sudo service sshd start 检查sshd服务是否已经开启,输入ps –e | grep sshd 或者输入netstat –an | grep 22 检查22号端口是否开启监听
  4. 生成访问密钥 cd ~/ ssh-keygen –t rsa –P ‘’ –f ~/.ssh/id_rsa cd .ssh cat id_rsa.pub >> authorized_keys 查看SSH服务是否启动: ps aux | grep ssh 检查是否安装SSH: which ssh 或者 which sshd

二:安装JDK 本机安装的是JDK1.8 在/usr下建java文件夹(mkdir java),上传jdk的安装包 命令: tar –xzvf jdk-8u191-linux-x64.tar.gz 解压jdk到当前目录/usr/java中,解压后目录为jdk1.8.0_191,给解压后的JDK赋最大权限(命令: chmod 777 jdk1.8.0_191) 配置jdk的环境变量 命令: vi ~/.bashrc 添加:export JAVA_HOME=/usr/java/jdk1.8.0_191 export PATH=$PATH:$JAVA_HOME/bin 保存退出 后执行命令: source ~/.bashrc 用命令检查是否安装成功: java –version 删除压缩安装包: rm –f jdk-8u191-linux-x64.tar.gz

 三:安装scala(如果不是用scala语言写的可以不用装)

本机安装的是scala-2.12.8, 同时也是安装在目录/usr/java下的 解压命令: tar –xzvf scala-2.12.8.tgz, 解压后给scala-2.12.8赋权限 chmod 777 scala-2.12.8 配置scala的环境变量 命令: vi ~/.bashrc 添加: export SCALA_HOME=/usr/java/scala-2.12.8 export PATH=$PATH:$SCALA_HOME/bin 保存退出,执行命令: source ~/.bashrc 用命令检查是否安装成功: scala -version 删除压缩安装包: rm –f scala-2.12.8.tgz

四:按照上面的步骤分别安装4个节点,本机起名为node01,node02,node03,node04 本机每个节点对应IP地址: node01: 192.168.213.128 node02 : 192.168.213.129 node03 : 192.168.213.130 node04 : 192.168.213.131 配置每个节点的hostname: 分别在node01 到 node04 四个节点 /etc/hosts文件中把每个ip对于的hostname配置上,后面在配置hadoop的配置文件时候可以直接使用hostname

配置SSH在节点中互相免密切换: 同样的需要分别在四个节点都配置,把其他三个节点的 ~/.ssh/authorized_keys拷贝到本节点中即可

五:在node02,node03, node04 上安装zookeeper,zookeeper必须保证是奇数个 解压命令: tar –xzvf zookeeper-3.4.12.tar.gz, 解压后给zookeeper-3.4.12赋权限 chmod 777 zookeeper-3.4.12 配置zookeeper的环境变量 命令: vi ~/.bashrc 添加: export ZOOKEEPER_HOME=/usr/java/ zookeeper-3.4.12 export PATH=$PATH:$ZOOKEEPER_HOME/bin 保存退出,执行命令: source ~/.bashrc 修改zookeeper的配置文件

  1. 先在/usr目录下建一个zookeeperData文件夹,zookeeperData文件夹里再建tmp文件夹,tmp文件夹里建个myid文件 在/usr路径下执行命令: mkdir zookeeperData ; 在/usr/zookeeperData路径下执行: mkdir tmp; 在/usr/zookeeperData/tmp路径下执行命令:touch myid Node02节点在 /usr/zookeeperData/tmp路径下执行: echo 1 > myid 往myid文件里写标识 Node03节点在 /usr/zookeeperData/tmp路径下执行: echo 2 > myid 往myid文件里写标识 Node04节点在 /usr/zookeeperData/tmp路径下执行: echo 3 > myid 往myid文件里写标识

  2. 在zookeeper安装目录/zookeeper-3.4.12/conf目录下,执行命令: cp zoo_sample.cfg zoo.cfg ; (node02, node03, node04 三个节点都要改)

  3. 修改zoo.cfg文件(node02, node03, node04 三个节点都要改) 修改dataDir的路径,和添加server 测试zookeeper是否配置正确: node02中在路径/usr/java/zookeeper/bin执行命令./zkServer.sh start node03中在路径/usr/java/zookeeper/bin执行命令./zkServer.sh start node04中在路径/usr/java/zookeeper/bin执行命令./zkServer.sh start 查看节点状态: node02中在路径/usr/java/zookeeper/bin执行命令./zkServer.sh status node03中在路径/usr/java/zookeeper/bin执行命令./zkServer.sh status node04中在路径/usr/java/zookeeper/bin执行命令./zkServer.sh status

六:安装hadoop 分别在node01, node02, node03, node04四个节点上配置hadoop的环境变量 解压命令: tar –xzvf hadoop-2.7.7.tar.gz, 解压后给hadoop-2.7.7赋权限 chmod 777 hadoop-2.7.7 配置hadoop的环境变量 命令: vi ~/.bashrc 添加: export HADOOP_HOME=/usr/java/ hadoop-2.7.7 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin 保存退出,执行命令: source ~/.bashrc

修改hadoop中的配置文件: 1.在路径/usr/java/hadoop-2.7.7/etc/hadoop 执行命令 vi hadoop-env.sh 修改hadoop-env.sh配置文件中jdk的路径: #修改JAVA_HOME export JAVA_HOE=/usr/java/jdk1.8.0_191 2. node01节点上在路径/usr/java/hadoop-2.7.7/etc/hadoop/core-site.xml, 修改core-site.xml core-site.xml内容如下: <configuration>

<property> <name>fs.defaultFS</name> <value>hdfs://mycluster</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/var/testHadoop/haTest</value> <!—自己建好路径--> </property> <property> <name>ha.zookeeper.quorum</name> <value>node02:2181,node03:2181,node04:2181</value> <!—之前安装好的zk--> </property>

<property> <name>hadoop.proxyuser.root.hosts</name> <value>*</value> </property>

<property> <name>hadoop.proxyuser.root.groups</name> <value>*</value> </property>

</configuration> 3. node01节点上在路径/usr/java/hadoop-2.7.7/etc/hadoop/hdfs-site.xml, 修改hdfs-site.xml 修改内容如下: <configuration>

<property>
    <name>dfs.replication</name>
    <value>2</value>
</property>

<property> <name>dfs.nameservices</name> <value>mycluster</value> </property>

<property> <name>dfs.ha.namenodes.mycluster</name> <value>nn1,nn2</value> </property>

<property>
     <name>dfs.namenode.rpc-address.mycluster.nn1</name>
     <value>node01:8020</value>
</property>

 <property>
       <name>dfs.namenode.rpc-address.mycluster.nn2</name>
       <value>node02:8020</value>
  </property>

  <property>
       <name>dfs.namenode.http-address.mycluster.nn1</name>
       <value>node01:50070</value>
   </property>

  <property>
       <name>dfs.namenode.http-address.mycluster.nn2</name>
       <value>node02:50070</value>
   </property>

   <property>
     <name>dfs.namenode.shared.edits.dir</name>
     <value>qjournal://node01:8485;node02:8485;node03:8485/mycluster</value>
  </property>

<property> <name>dfs.journalnode.edits.dir</name> <value>/var/testHadoop/haTest/jn</value> </property>

<property> <name>dfs.client.failover.proxy.provider.mycluster</name> <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value> </property> <property> <name>dfs.ha.fencing.methods</name> <value>sshfence</value> </property> <property> <name>dfs.ha.fencing.ssh.private-key-files</name> <value>/root/.ssh/id_rsa</value> </property>

<property> <name>dfs.ha.automatic-failover.enabled</name> <value>true</value> </property>

</configuration> 4. node01节点上在路径/usr/java/hadoop-2.7.7/etc/hadoop/yarn-site.xml, 修改yarn-site.xml 修改内容如下: <configuration>

<!-- Site specific YARN configuration properties -->

<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>

<property> <name>yarn.resourcemanager.ha.enabled</name> <value>true</value> </property> <property> <name>yarn.resourcemanager.cluster-id</name> <value>cluster1</value> </property> <property> <name>yarn.resourcemanager.ha.rm-ids</name> <value>rm1,rm2</value> </property> <property> <name>yarn.resourcemanager.hostname.rm1</name> <value>node03</value> </property> <property> <name>yarn.resourcemanager.hostname.rm2</name> <value>node04</value> </property> <property> <name>yarn.resourcemanager.zk-address</name> <value>node02:2181,node03:2181,node04:2181</value> </property> <property> <name>yarn.nodemanager.pmem-check-enabled</name> <value>false</value> </property> <property> <name>yarn.nodemanager.vmem-check-enabled</name> <value>false</value> <description>Whether virtual memory limits will be enforced for containers</description> </property> <property> <name>yarn.nodemanager.vmem-pmem-ratio</name> <value>4</value> <description>Ratio between virtual memory to physical memory when setting memory limits for containers</description> </property>

<property> <name>yarn.log-aggregation.retain-seconds</name> <value>10080</value> <description>save logs time</description> </property>

<property> <name>yarn.log-aggregation-enable</name> <value>true</value> <description>turn on logs</description> </property>

<property> <name>yarn.nodemanager.remote-app-log-dir</name> <value>/tmp/logs</value> <description>application is end, logs save dirPath</description> </property>

<property> <name> yarn.nodemanager.remote-app-log-dir-suffix</name> <value>logs</value> </property>

<property> <name>mapreduce.jobhistory.address</name>
<value>node03:10020</value>
</property>
<property> <name>mapreduce.jobhistory.webapp.address</name>
<value>node03:19888</value>
</property>

</configuration> 5. node01节点上在路径/usr/java/hadoop-2.7.7/etc/hadoop/mapred-site.xml, 修改mapred-site.xml 修改内容如下: <configuration>

<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>

</configuration>

  1. node01节点上在路径/usr/java/hadoop-2.7.7/etc/hadoop修改slaves配置文件 node02 node03 node04

在node02节点上配置hadoop的配置文件 也是在路径/usr/java/hadoop-2.7.7/etc/hadoop下修改 修改core-site.xml: <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://mycluster</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/var/testHadoop/haTest</value> </property> <property> <name>ha.zookeeper.quorum</name> <value>node02:2181, node03:2181, node04:2181</value> </property> <property> <name>hadoop.proxyuser.root.hosts</name> <value></value> </property> <property> <name>hadoop.proxyuser.root.groups</name> <value></value> </property> </configuration>

修改hdfs-site.xml配置文件: <configuration> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.nameservices</name> <value>mycluster</value> </property> <property> <name>dfs.ha.namenodes.mycluster</name> <value>nn1,nn2</value> </property> <property> <name>dfs.namenode.rpc-address.mycluster.nn1</name> <value>node01:8020</value> </property> <property> <name>dfs.namenode.rpc-address.mycluster.nn2</name> <value>node02:8020</value> </property> <property> <name>dfs.namenode.http-address.mycluster.nn1</name> <value>node01:50070</value> </property> <property> <name>dfs.namenode.http-address.mycluster.nn2</name> <value>node02:50070</value> </property> <property> <name>dfs.namenode.shared.edits.dir</name> <value>qjournal://node01:8485;node02:8485;node03:8485/mycluster</value> </property> <property> <name>dfs.journalnode.edits.dir</name> <value>/var/testHadoop/haTest/jn</value> </property> <property> <name>dfs.client.failover.proxy.provider.mycluster</name> <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value> </property> <property> <name>dfs.ha.fencing.methods</name> <value>sshfence</value> </property> <property> <name>dfs.ha.fencing.ssh.private-key-files</name> <value>/root/.ssh/id_rsa</value> </property> <property> <name>dfs.ha.automatic-failover.enabled</name> <value>true</value> </property> </configuration>

修改mapred-site.xml配置文件: <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>

修改slaves配置文件 node02 node03 node04 修改yarn-site.xml的配置: <configuration>

<!-- Site specific YARN configuration properties -->

<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>

<property> <name>yarn.resourcemanager.ha.enabled</name> <value>true</value> </property> <property> <name>yarn.resourcemanager.cluster-id</name> <value>cluster1</value> </property> <property> <name>yarn.resourcemanager.ha.rm-ids</name> <value>rm1,rm2</value> </property> <property> <name>yarn.resourcemanager.hostname.rm1</name> <value>node03</value> </property> <property> <name>yarn.resourcemanager.hostname.rm2</name> <value>node04</value> </property> <property> <name>yarn.resourcemanager.zk-address</name> <value>node02:2181,node03:2181,node04:2181</value> </property> <property> <name>yarn.nodemanager.pmem-check-enabled</name> <value>false</value> </property> <property> <name>yarn.nodemanager.vmem-check-enabled</name> <value>false</value> <description>Whether virtual memory limits will be enforced for containers</description> </property> <property> <name>yarn.nodemanager.vmem-pmem-ratio</name> <value>4</value> <description>Ratio between virtual memory to physical memory when setting memory limits for containers</description> </property> <property> <name>yarn.log-aggregation.retain-seconds</name> <value>10080</value> <description>save logs time</description> </property> <property> <name>yarn.log-aggregation-enable</name> <value>true</value> <description>turn on logs</description> </property> <property> <name>yarn.nodemanager.remote-app-log-dir</name> <value>/tmp/logs</value> <description>application is end, logs save dirPath</description> </property> <property> <name> yarn.nodemanager.remote-app-log-dir-suffix</name> <value>logs</value> </property> <property> <name>mapreduce.jobhistory.address</name>
<value>node03:10020</value>
</property>
<property> <name>mapreduce.jobhistory.webapp.address</name>
<value>node03:19888</value>
</property> </configuration>

node03, node04节点的配置和node02一样 第一次启动顺序(初次启动): a) 在node01, node02, node03 上路径/usr/java/hadoop-2.7.7/sbin执行./hadoop-daemon.sh start journalnode b) 在node01上路径/usr/java/hadoop-2.7.7/sbin下执行命令: 命令: ./hadoop-daemon.sh start namenode c) 在node01上路径/usr/java/hadoop-2.7.7/bin下执行格式化命令: 命令: ./hdfs namenode –format c ) 在node02上路径/usr/java/hadoop-2.7.7/bin下执行命令: 命令: ./hdfs namenode -bootstrapStandby d) 在node01上路径/usr/java/hadoop-2.7.7/bin下执行格式化命令: 命令: ./hdfs zkfc –formatZK 注意: 第一次如果不格式化的访问http://node01:50070/,http://node02:50070/ 两个的页面的状态都是standby e) 在node01上路径/usr/java/hadoop-2.7.7/sbin下执行命令: 命令: ./ start-dfs.sh 命令:./ start-yarn.sh f) 在node03, node04上在路径 /usr/java/hadoop-2.7.7/sbin下执行命令: 命令: ./yarn-daemon.sh start resourcemanager g) 在node03上路径 /usr/java/hadoop-2.7.7/sbin执行命令: 命令: mr-jobhistory-daemon.sh start historyserver 访问页面: http://node01的ip地址:50070 状态为active(yarm) http://node02的ip地址:50070 状态为standby http://node03的ip地址: 8088/cluster/cluster 状态为active(hdfs) http://node04的ip地址: 8088/cluster/cluster 状态为standby http://192.168.180.130:19888/jobhistory 历史日志查询

   第二次之后的启动顺序就可以按
     node02, node03, node04节点上的 zookeeper启动

如果hadoop的hdfs已经装好了,并且有元数据得时候,重启的方式按道理讲直接start-all.sh 就可以,千万不能格式化,但本机重启的时候 可以用下面方式: node01, node02, node03 执行命令: ./hadoop-daemon.sh start journalnode node01执行: ./ Hadoop-daemon.sh start namenode node02执行: ./hdfs namenode -bootstrapStandby node01执行: ./start-dfs.sh node01上执行命令: ./start-yarn.sh node03, node04上执行 ./yarn-daemon.sh start resourcemanager node03执行:mr-jobhistory-daemon.sh start historyserver

完成后用jps查询

七:安装spark集群: Spark集群安装在node01, node02, node03, node04四个节点上, 其中node01为spark主节点,node02为spark的备用主节点,node02,node03,node04为worker节点 命令tar-zxvf spark-2.4.0-bin-hadoop2.7.tgz 在宿主机~/.bashrc添加scala的参数(命令: vi ~/.bashrc) export SPARK_HOME=/usr/java/spark-2.4.0-bin-hadoop2.7 export PATH=PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin 修改Spark的配置文件: 在路径/usr/java/spark-2.4.0-bin-hadoop2.7/conf路径下,执行命令: cp spark-env.sh.template spark-env.sh 修改spark-env.sh配置文件,在此配置文件中添加: export SPARK_MASTER_IP=node01 export SPARK_WORKER_MEMORY=1G export SPARK_MASTER_PROT=7077 export SPARK_WORKER_CORES=2 export SPARK_WORKER_INSTANCES=1 export SPARK_MASTER_WEBUI_PORT=8888 export JAVA_HOME=/usr/java/jdk1.8.0_191 export HADOOP_CONF_DIR=/usr/java/hadoop-2.7.7/etc/hadoop export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=node02:2181,node03:2181,node04:2181 -Dspark.deploy.zookeeper.dir=/var/testSpark/data" export SPARK_WORKER_OPTS="-Dspark.worker.cleanup.enabled=true -Dspark.worker.cleanup.interval=1800 -Dspark.worker.cleanup.appDataTtl=3600"

在路径下/usr/java/spark-2.4.0-bin-hadoop2.7/conf下,修改slaves文件,此文件是配置worker节点的 配置内容如下: node02 node03 node04

hadoop集群启动下,在命令行先执行命令: hdfs dfs –mkdir –p /spark/log 创建sparklog目录 在路径/usr/java/spark-2.4.0-bin-hadoop2.7/conf路径下,执行命令: cp spark-defaults.conf.template spark-defaults.conf 修改spark-defaults.conf配置文件,添加内容如下: spark.eventLog.enabled true spark.eventLog.dir hdfs://mycluster/spark/log spark.history.fs.logDirectory hdfs://mycluster/spark/log spark.eventLog.compress true

把之前配置好的hadoop文件,路径/usr/java/hadoop2.7.7/etc/hadoop 下的core-site.xml,hdfs-site.xml,yarn-site.xml拷贝到路径/usr/java/spark-2.4.0-bin-hadoop2.7/conf下

Node02, node03, node04节点分别按上述执行,注意node02节点的spark-env.sh配置文件,要把SPARK_MASTER_IP改成node02,其他节点不用变。

Spark启动顺序: Node01在路径/usr/java/spark-2.4.0-bin-hadoop2.7/sbin下执行命令: 命令:./start-master.sh ./start-all.sh Node02在路径/usr/java/spark-2.4.0-bin-hadoop2.7/sbin下执行命令: 命令: ./start-master.sh Node03在路径/usr/java/spark-2.4.0-bin-hadoop2.7/sbin下执行命令: 命令: ./start-history-server.sh (日志服务)

Jps查看进程:

访问页面地址:http://node01节点IP地址:8888/ 状态:active http:// node02节点IP地址:8888/ 状态:standby http:// node03节点IP地址:18080/ 日志查询页面

八安装hive 8.1 先安装mysql在node01上 1.CentOS7上如果没有wget命令,可执行命令: yum -y install wget 安装wget命令 2.下载mysql源安装包 命令:wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm 3.安装mysql源: yum localinstall mysql57-community-release-el7-8.noarch.rpm 4.查看mysql源是否安装成功 yum repolist enabled | grep "mysql.-community." 5. 如果想修改mysql版本的话:修改 vim /etc/yum.repos.d/mysql-community.repo源 ,改变默认安装的mysql版本。比如要安装5.6版本,将5.7源的enabled=1改成enabled=0。然后再将5.6源的enabled=0改成enabled=1即可。 6.安装mysql: yum install mysql-community-server 7.启动mysql服务: systemctl start mysqld 8.开机启动: shell>systemctl enable mysqld shell>systemctl daemon-reload 9. 修改root本地登录密码 1)查看mysql密码 shell> grep 'temporary password' /var/log/mysqld.log 2)连接mysql shell> mysql -uroot -p 3)修改密码[注意:后面的分号一定要跟上] mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!'; 或者: mysql> set password for 'root'@'localhost'=password('MyNewPass4!');

mysql> show variables like '%password%'; 3.1: 首先需要设置密码的验证强度等级,设置validate_password_policy的全局参数为 LOW 即可, 输入设值语句 “ set global validate_password_policy=LOW; ” 进行设值 当前密码长度为 8 ,如果不介意的话就不用修改了,按照通用的来讲,设置为 6 位的密码,设置validate_password_length的全局参数为 6 即可,设置长度是4的话root就可以 输入设值语句 “ set global validate_password_length=6; ” 进行设值 10:添加远程登陆用户 mysql> GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION; mysql> flush privileges; ---刷新我本机没有执行此命令 11.查看数据库字符集 mysql> show variables like '%character%'; 12.修改数据库字符集: 退出mysql,在 /etc/my.cnf 命令: vi my.cnf 在[mysqld]下面添加: character-set-server=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 --设置支持groupby预计 default-time_zone = '+8:00' --设置时区为东八区 然后重启mysql,命令: systemctl restart mysqld 13. 查看数据库权限 use mysql ==> desc user ==》select user,host,password from user; 8.2 安装hive,本机安装的是apache-hive-2.3.4-bin.tar.gz,此处安装的是hive多用户模式,在node01节点安装 1.上传hive包到node01,解压,配置环境变量,node01是服务端 解压命令: tar –xzvf apache-hive-2.3.4-bin.tar.gz 赋权限: chmod 777 apache-hive-2.3.4-bin 配置环境变量: vi ~/.bashrc 添加: export HIVE_HOME=/usr/java/apache-hive-2.3.4-bin export PATH=$PATH:$HIVE_HOME/bin 保存,并执行命令: source ~/.bashrc 生效 在node01上路径/usr/java/apache-hive-2.3.4-bin/conf 下执行: 命令: scp hive-default.xml.template hive-site.xml 编辑修改hive-site.xml文件,修改内容如下: <configuration> <property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>

<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://node01:3306/hive?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=UTF-8</value>
</property>

<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.cj.jdbc.Driver</value> <!-5.7以上新的驱动包-> <value>com.mysql.jdbc.Driver</value> <!-5.7以下老的驱动包-> </property>

<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>

<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
</property>

<property> <name>datanucleus.schema.autoCreateAll</name> <value>true</value> </property>

<property> <name>hive.support.sql11.reserved.keywords</name> <value>false</value> <!—不校验sql中的关键字--> </property>

<property> <name>hive.exec.dynamic.partition</name> <value>true</value> </property>

<property> <name>hive.exec.dynamic.partition.mode</name> <value>nonstrict</value> </property>

</configuration> 把mysql的驱动包添加到node01节点上 /usr/java/ apache-hive-2.3.4-bin/lib 路径下; 检查/usr/java/apache-hive-2.3.4-bin/lib 路径下的jlinejar包和hadoop中路径:${HADOOP_HOME}/share/hadoop/yarn/lib目录下jline.jar包版本是否一致,如果两个不一致的话启动会报: [ERROR] Terminal initialization failed; falling back to unsupported java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected at jline.TerminalFactory.create(TerminalFactory.java:101) 保存hive和hadoop中jline.jar包版本一致,把hive中的jline.jar拷贝到hadoop中; (选择配置)如果找不到hadoop的配置话,在conf路径下有个hive-env.sh里配置; 在hdfs里添加 /user/hive/warehouse目录 创建这个目录命令:hdfs dfs -mkdir /user hdfs dfs -mkdir /user/hive hdfsd fs -mkdir /user/hive/warehouse

在node02上安装hive客户端:

  1. 和node01一样,上传安装包,解压,配置环境变量
  2. 修改${HIVE_HOME}/conf路径下的hive-site.xml文件内容: 内容为; <configuration> <property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/user/hive/warehouse</value>
    </property>
    <property>
    <name>hive.metastore.local</name>
    <value>false</value>
    </property>
    <property>
    <name>hive.metastore.uris</name>
    <value>thrift://node01:9083</value>
    </property>
    <property> <name>hive.support.sql11.reserved.keywords</name> <value>false</value> </property>
  3. 把mysql的驱动包添加到node02节点上 /usr/java/ apache-hive-2.3.4-bin/lib 路径下; 检查/usr/java/apache-hive-2.3.4-bin/lib 路径下的jlinejar包和hadoop中路径:${HADOOP_HOME}/share/hadoop/yarn/lib目录下jline.jar包版本是否一致,如果两个不一致的话启动会报
  4. 在node02 路径/usr/java/apache-hive-2.3.4-bin/conf下执行命令: cp hive-env.sh.template hive-env.sh, 修改hive-env.sh配置文件,在文件中添加HADOOP_HOME=/usr/java/hadoop-2.7.7.

启动hive顺序: 在node01路径/usr/java/ apache-hive-2.3.4-bin/bin 下执行命令: ./schematool -dbType mysql –initSchema 进行初始化,初始化后在mysql中就有一个hive的数据库 在node01路径下/usr/java/apache-hive-2.3.4-bin/bin下执行命令: [root@node01 bin]# ./hive --service metastore 启动hive ./hive --service metastore& 后台运行方式 查看端口号:ss –nal 在node02路径/usr/java/apache-hive-2.3.4-bin/bin 执行命令: hive 就可以进入 Hive进入后在node02上进行测试,create table testPsn(id int, age int); 在hdfs中(http://node01IP地址:50070) /user/hive/warehouse中也可以看到创建的testPsn表

九:SPARK整合HIVE 把hive路径/usr/java/ apache-hive-2.3.4-bin/hive-site.xml文件放到/usr/java/ spark-2.4.0-bin-hadoop2.7/conf 路径下,此路径下的hive-site.xml的内容如下: <configuration> <property>
<name>hive.metastore.uris</name>
<value>thrift://node01:9083</value>
</property>
</configuration> node01,node02, node03,node04四个节点都要在/usr/java/ spark-2.4.0-bin-hadoop2.7/conf路径下放置hive-site.xml