mav本地源
- l 发信号给yum进程:pkill -9 yum
- l 进入yum源配置文件:cd /etc/yum.repos.d
- l 删除所有文件:rm -rf *
- l 下载yum源:wget http://10.10.88.2:8000/bigdata/repofile/bigdata.repo
- l 清除YUM缓存:yum clean all
下载ifconfig命令
- 先查看是否因为环境变量没有ifconfig。ls /sbin/ifconfig
- yum -y install net-tools
安装vimshh
yum -y install vim
安装ntp服务
yum install -y ntp
systemctl enable/disable ntpd.service
master 配置/etc/ntp.conf
server 127.127.1.0
fudge 127.127.1.0
slave手动同步时间
ntpdate master
crontab -e 定时任务
*/10 * * * * usr/sbin/ntpdate master
安装rsync服务
安装
- yum -y install rsync
- systemctl start rsyncd.service
- systemctl enable rsyncd.service
- netstat -lnp|grep 873 查看
配置
vim /etc/rsyncd.conf
uid = root
# //设置运行rsync 进程的用户
gid = root
use chroot = no
max connections = 4
# pid file = /var/run/rsyncd.pid
#//CentOS7中yum安装不需指定pid file 否则报错
lock file=/var/run/rsyncd.lock
log file = /var/log/rsyncd.log
# //此文件定义完成后系统会自动创建
exclude = lost+found/
transfer logging = yes
timeout = 900
ignore nonreadable = yes
# //同步时跳过没有权限的目录
dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
编写远程同步脚本(xsync)
- 安装前需要有rsync服务
- 在bin目录下创建xsync文件
- chmod 777 xsync
#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0)); then
echo no args;
exit;
fi
#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname
#3 获取上级目录的真实绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
#4 获取当前用户名称
user=`whoami`
#5 循环
for((host=103; host<201; host++)); do
echo ------------------- hadoop$host --------------
rsync -alv $pdir/$fname $user@hadoop$host:$pdir
done
mysql安装
下载安装包
官网下载红帽安装
依次安装下列组件
必须依次安装
可能遇到错误红帽安装 Centos安装yum有旧版本的GPJ keys造成;
解决 --force --nodeps
解决:卸载冲突rpm组件
rpm -qa | grep postfix
rpm -qa | grep mariadb
rpm -ev postfix-2.10.1-6.el7.x86_64
rpm -ev mariadb-libs-5.5.52-1.el7.x86_64
安装依赖
yum -y install libaio
yum -y install net-tools
yum -y install perl
centos6.5问题
参考:https://blog.csdn.net/wyl9527/article/details/78256066?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase
https://blog.csdn.net/whatday/article/details/84304677
-
首先安装mysql-community-common(服务器和客户端库的公共文件),使用命令:
rpm -ivh mysql-community-common-5.7.25-1.el7.x86_64.rpm
-
其次安装mysql-community-libs(MySQL数据库客户端应用程序的共享库),使用命令
rpm -ivh mysql-community-libs-5.7.25-1.el7.x86_64.rpm
-
之后安装mysql-community-libs-compat(MySQL之前版本的共享兼容库),使用命令:
rpm -ivh mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm
-
之后安装mysql-community-client(MySQL客户端应用程序和工具),使用命令:
rpm -ivh mysql-community-client-5.7.25-1.el7.x86_64.rpm
-
最后安装mysql-community-server(数据库服务器和相关工具),使用命令:
rpm -ivh mysql-community-server-5.7.25-1.el7.x86_64.rpm
初始化数据库
安装好MySQL后,我们需要初始化数据库,初始化和启动数据库时最好不要使用root用户,或者使用MySQL用户启动。
/usr/sbin/mysqld --initialize-insecure --user=mysql
启动MySQL服务
&后台执行
/usr/sbin/mysqld --user=mysql &
登录mysql
mysql -uroot
重置MySQL密码
alter user 'root'@'localhost' identified by '123456';
修改完成 后 exit 重新登录
mysql -uroot -p123456
增加远程登录权限
mysql> use mysql; # 切换成mysql数据库
mysql> select user,host from user; # 查询用户信息
mysql> update user set host='%' where host='localhost';
mysql> flush privileges;
jdk安装
查看当前是否存在jdk
-
java -version
-
rpm -qa | grep java
删除当前jdk
rpm -qa | grep java | xargs sudo rpm -e --nodeps
解压jdk
tar -zxvf jdkname -C /opt/module
配置环境变量
vim /etc/profile
最后一行添加
export JAVA_HOME=/opt/module/jdk
export PATH=$PATH:$JAVA_HOME/bin
文件生效 source /etc/profile
集群同步
xsync jdk
xsync /etc/profile
同步完成后各个机器,执邢文件生效
hadoop安装hdfs的配置
解压hadoop
tar -zxvf hadoop -C /opt/module
配置环境变量
vim /etc/profile
最后一行添加
export HADOOP_HOME=/opt/module/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP/sbin
文件生效 source /etc/profile
配置core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://ysy101:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/hadoop/hdfs/tmp</value>
</property>
<property>
<name>fs.checkpoint.period</name>
<value>3600</value>
</property>
</configuration>
配置hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.dir</name>
<value>file:/usr/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.dir</name>
<value>file:/usr/hadoop/hdfs/data</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>ysy102:50090</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
配置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.hostname</name>
<value>ysy101</value>
</property>
</configuration>
配置mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>ysy101:10020</value>
</property>
<property> <name>mapreduce.jobhistory.webapp.address</name>
<value>ysy101:19888</value>
</property>
</configuration>
配置slaves
添加结点地址
slave1
slave2
slave3
配置hadoop-env.sh 和yarn-env.sh
在文件中添加
export JAVA_HOME=/opt/module/jdk
启动与停止
命令 | 功能 |
---|---|
start-dfs.sh | 群启hdfs集群 |
stop-dfs.sh | 停止hdfs集群 |
start-yarn.sh | 启动yarn服务 |
stop-yarn.sh | 停止yarn服务 |
hadoop-daemon.sh start namenode | 启动NN |
hadoop-daemon.sh start secondarynamenode | 启动SN |
yarn-daemon.sh start resourcemanager | 启动rm |
yarn-daemon.sh start nodemanager | 启动NM |
mr-jobhistory-daemon.sh start historyserver | 启动历史服务器 |
zookeeper安装配置
解压zookeeper
tar -zxvf zookeeper -C /opt/module
配置服务器编号
- 在zookeeper目录下创建zkData
mkdir zkData
- 在zkData上常见myid编写对应编号
vim myid
- 每台积极的myid里写一个对应的id 1
配置zoo.cfg
cd conf
mv zoo_sample.cfg zoo.cfg
vim zoo.cfg
- 增加如下配置
dataDir=/opt/module/zookeeper-3.4.10/zkData
#######################cluster##########################
server.2=hadoop102:2888:3888
server.3=hadoop103:2888:3888
server.4=hadoop104:2888:3888
配置参数解读:
server.A=B:C:D。
**A**是一个数字,表示这个是第几号服务器;
集群模式下配置一个文件myid,这个文件在dataDir目录下,这个文件里面有一个数据就是A的值,
Zookeeper启动时读取此文件,拿到里面的数据与zoo.cfg里面的配置信息比较从而判断到底是哪个server。
**B**是这个服务器的ip地址;
**C**是这个服务器与集群中的Leader服务器交换信息的端口;
**D**是万一集群中的Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就
是用来执行选举时服务器相互通信的端口。
同步zoo.cfg配置文件
同步集群
xsync zookeeper
注意:每个机器的myid内容不同
启动与停止
命令 | 功能 |
---|---|
bin/zkServer.sh start | 群启zookeeper服务 |
bin/zkServer.sh stop | 停止zookeeper服务 |
HIVE安装配置
参考:https://www.cnblogs.com/dxxblog/p/8193967.html
下载地址:http://mirror.bit.edu.cn/apache/hive/
下载安装包
解压安装包
tar -zxvf apache-hive-2.1.1-bin.tar.gz -C /opt/module/
将mysql驱动拷贝
到${HIVE_HOME}/lib目录下
驱动包myqsql-connector-java-5.1.47-bin.jar
配置环境变量
# 配置Hive的安装目录
export HIVE_HOME=/root/software/apache-hive-2.3.4-bin
# 在原PATH的基础上加入Hive的bin目录
export PATH=$PATH:$HIVE_HOME/bin
hive --version 检测
修改配置hive-env.sh
- cp hive-env.sh.template hive-env.sh
- vim hive-env.sh
# 配置Hadoop安装路径
HADOOP_HOME=/opt/module/hadoop
# 配置Hive配置文件存放路径
export HIVE_CONF_DIR=/opt/module/hive/conf
# 配置Hive运行资源库路径
export HIVE_AUX_JARS_PATH=/opt/module/hive/lib
配置hive-site.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!--数据库默认存储位置-->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
<description>location of default database for the warehouse</description>
</property>
<!--客户端显示当前数据库信息-->
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
<description>Whether to include the current database in the Hive prompt.</description>
</property>
<!--客户端查询显示表头信息 -->
<property>
<name>hive.cli.print.header</name>
<value>true</value>
<description>Whether to print the names of the columns in query output.</description>
</property>
</configuration>
Hive元数据配置到MySQL
在conf目录下创建
- touch hive-site.xml
- vim hive-site.xml
参考官方文档配置https://cwiki.apache.org/confluence/display/Hive/AdminManual+Metastore+Administration
<configuration>
<!--配置hive元数据存储路径 -->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/opt/module/hive-2.1/warehouse</value>
</property>
<!--客户端显示当前数据库信息-->
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
<description>Whether to include the current database in the Hive prompt.</description>
</property>
<!--客户端查询显示表头信息 -->
<property>
<name>hive.cli.print.header</name>
<value>true</value>
<description>Whether to print the names of the columns in query output.</description>
</property>
<!--连接元数据库的链接信息 -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hivedb?createDatabaseIfNotExist=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
<!--连接数据库驱动 -->
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<!--连接数据库用户名称 -->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>username to use against metastore database</description>
</property>
<!--连接数据库用户密码 -->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
<description>password to use against metastore database</description>
</property>
</configuration>
自动覆盖默认值
hive -hiveconf 属性=值
进入hive客户端
可以直接set 属性=值
初始化元数据库
-
schematool -dbType mysql -initSchema
-
schematool -dbType derby -initSchema
需要 将metastore_db更名为:metastore_db.tmp
内嵌模式使用自带数据库
若是出现“ schemaTool complete”则初始化成功。
启动hive server
hive --service metastore &
蜂巢链接
- hive
或者
hive --service cli - exit;
HBaes安装配置
解压安装包
配置hbase-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144 export HBASE_MANAGES_ZK=false #若不设置成false,则使用自带的ZooKeeper
如果使用jdk1.8注释掉以下俩行
#export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -XX:PermSize=128m - XX:MaxPermSize=128m" #export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -XX:PermSize=128m - XX:MaxPermSize=128m"
配置hbase-site.xml
<configuration>
<property> <!-- 指定Hbase的数据放到HDFS的哪个目录下 --> <name>hbase.rootdir</name> <value>hdfs://hadoop102:9000/HBase</value>
</property>
<property>
<name>hbase.cluster.distributed</name> <value>true</value>
</property>
<!-- 0.98 后的新变动,之前版本没有.port,默认端口为 60000 --> <property>
<name>hbase.master.port</name>
<value>16000</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name> <value>hadoop102,hadoop103,hadoop104</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name> <value>/opt/module/zookeeper-3.4.10/zkData</value> </property>
</configuration>
配置regionservers
ysy101
ysy102
ysy103
将Hadoop得配置文件软连接到HBase
ln -s opt/module/hadoop-2.7.2/etc/hadoop/core-site.xml /opt/module/hbase/conf/core-site.xml
ln -s opt/module/hadoop-2.7.2/etc/hadoop/hdfs-site.xml /opt/module/hbase/conf/hdfs-site.xml
同步到集群
xsync hbase
启动与停止
bin/hbase-daemon.sh start master
bin/hbase-daemon.sh start regionserver
bin/start-hbase.sh
bin/stop-hbase.sh
web端口号:16010
SPARK安装配置
解压安装包
tar -zxvf spark-2.1.1-bin-hadoop2.7.tgz -C /opt/module
mv spark-2.1.1-bin-hadoop2.7 spark
Standlone模式配置
端口:8080
配置slaves,添加work结点
mv slaves.ttemplate slaves
vim slaves
hadoop102
hadoop103
hadoop104
配置spark-env.sh
vim spark-env.sh
SPARK_MASTER_HOST=hadoop101
SPARK_MASTER_PORT=7077
export SPARK_MASTER_IP=hadoop100
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_CORES=1
export SPARK_WORDER_INSTANCES=1
export SPARK_WORKER_MEMORY=3g
export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=18080 -Dspark.history.retainedApplications=30 -Dspark.history.fs.logDirectory=hdfs://hadoop100:9000/directory"
配置sbin/spark-config.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144
export SCALA_HOME=/opt/module/scala
JobHistoryServer配置
-
修改spark-default.conf.template名称
[atguigu@hadoop102 conf]$ mv spark-defaults.conf.template spark-defaults.conf
-
修改spark-default.conf文件,开启Log:
[atguigu@hadoop102 conf]$ vi spark-defaults.conf spark.eventLog.enabled true spark.eventLog.dir hdfs://hadoop102:9000/directory
注意:HDFS上的目录需要提前存在。
[atguigu@hadoop102 hadoop]$ hadoop fs –mkdir /directory
-
修改spark-env.sh文件,添加如下配置:
[atguigu@hadoop102 conf]$ vi spark-env.sh export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=18080 -Dspark.history.retainedApplications=30 -Dspark.history.fs.logDirectory=hdfs://hadoop102:9000/directory"
参数描述:
spark.eventLog.dir:Application在运行过程中所有的信息均记录在该属性指定的路径下;
spark.history.ui.port=18080 WEBUI访问的端口号为18080
spark.history.fs.logDirectory=hdfs://hadoop102:9000/directory 配置了该属性后,在start-history-server.sh时就无需再显式的指定路径,Spark History Server页面只展示该指定路径下的信息
spark.history.retainedApplications=30指定保存Application历史记录的个数,如果超过这个值,旧的应用程序信息将被删除,这个是内存中的应用数,而不是页面上显示的应用数。
-
分发配置文件
[atguigu@hadoop102 conf]$ xsync spark-defaults.conf [atguigu@hadoop102 conf]$ xsync spark-env.sh
-
启动历史服务
[atguigu@hadoop102 spark]$ sbin/start-history-server.sh
-
再次执行任务
[atguigu@hadoop102 spark]$ bin/spark-submit \ --class org.apache.spark.examples.SparkPi \ --master spark://hadoop102:7077 \ --executor-memory 1G \ --total-executor-cores 2 \ ./examples/jars/spark-examples_2.11-2.1.1.jar \ 100
-
查看历史服务
hadoop102:18080
HA配置
-
zookeeper正常安装并启动
-
修改spark-env.sh文件添加如下配置:
[atguigu@hadoop102 conf]$ vi spark-env.sh 注释掉如下内容: #SPARK_MASTER_HOST=hadoop102 #SPARK_MASTER_PORT=7077 添加上如下内容: export SPARK_DAEMON_JAVA_OPTS=" -Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=hadoop102,hadoop103,hadoop104 -Dspark.deploy.zookeeper.dir=/spark"
-
分发配置文件
[atguigu@hadoop102 conf]$ xsync spark-env.sh
-
在hadoop102上启动全部节点
[atguigu@hadoop102 spark]$ sbin/start-all.sh
-
在hadoop103上单独启动master节点
[atguigu@hadoop103 spark]$ sbin/start-master.sh
-
spark HA集群访问
/opt/module/spark/bin/spark-shell \ --master spark://hadoop102:7077,hadoop103:7077 \ --executor-memory 2g \ --total-executor-cores 2
Yarn模式配置
-
修改hadoop配置文件yarn-site.xml,添加如下内容:
<!--是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是true --> <property> <name>yarn.nodemanager.pmem-check-enabled</name> <value>false</value> </property> <!--是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是true --> <property> <name>yarn.nodemanager.vmem-check-enabled</name> <value>false</value> </property>
-
修改spark-env.sh,添加如下配置:
[atguigu@hadoop102 conf]$ vi spark-env.sh YARN_CONF_DIR=/opt/module/hadoop-2.7.2/etc/hadoop
-
分发配置文件
[atguigu@hadoop102 conf]$ xsync /opt/module/hadoop-2.7.2/etc/hadoop/yarn-site.xml [atguigu@hadoop102 conf]$ xsync spark-env.sh
-
执行一个程序
[atguigu@hadoop102 spark]$ bin/spark-submit \ --class org.apache.spark.examples.SparkPi \ --master yarn \ --deploy-mode client \ ./examples/jars/spark-examples_2.11-2.1.1.jar \ 100
注意:在提交任务之前需启动HDFS以及YARN集群。
./spark-shell --master spark://master:7077 ./spark-shell --master yarn