目录
1. 设置vmware
2. 新建虚拟机以及相关配置
3. 给用户设置权限
4. 给hadoop用户设置权限
5. 关闭selinux
6. 创建ip
7. 关闭防火墙
8. 检查开启SSH服务
9. 设置host
10. 修改主机名
11. 配置ntp服务(使各个节点时间统一)
12. 安装jdk
13. 克隆出slave1和slave2两个虚拟机
14. ssh免密登陆
15. 安装mysql
16. 安装hadoop
17.将hadoop和配置文件分发到各节点
18.启动hadoop
19.hadoop常用指令
20.安装scala
20.安装spark
21.安装zookeeper
22.安装kafka
23.安装flume以及整合
1. 设置vmware
编辑->虚拟机网络编辑起->更改设置->vmnet8->关闭使用本地DHCP服务(防止每次重启ip变更)->设置 子网IP 192.168.1.0->设置NET设置->设置网管 192.168.1.2
2. 新建虚拟机以及相关配置
3. 给用户设置权限
1) 用root用户先将sudoers权限修改(目前只读)
Chmod u+w /etc/sudoers
权限介绍
例如:
- r-- r-- ---
第一个字符解释:
-:表示位文件
d:是目录
l:是链接
2-10表示权限组
拥有者 拥有者所属组 非拥有者和组以外的其他用户
rwx rwx rwx
421 421 421
以上的权限为:拥有者只读,拥有者所数组只读,其他无权限
修改权限chmod指令
1. 字符
Chomd u+w 文档
第一个字母:
u:拥有者
g:拥有者所属组
o:其他用户
a:所有
符号
+:添加
-:除去
=:设置
上面是将文件的拥有者添加写入的权限
2. 数字
Chmod 640 文档
6:拥有者 4(r)+2(w)
4:拥有者所属组 4(r)
0:其他
4. 给hadoop用户设置权限
vi /etc/sudoers
添加
hadoop ALL=(ALL) NOPASSWD: ALL
保存退出
切换至hadoop用户
5. 关闭selinux
sudo vi/etc/sysconfig/selinux
将SELINUXTYPE的值修改为disable
6. 创建ip
1)图像化桌面(视频介绍)
2)命令窗口(视频介绍)需要重启网卡
Sudo systemctl restart network
7. 关闭防火墙
sudo systemctlstop firewalld.service
禁止开机启动sudo systemctl disable firewalld.service
8. 检查开启SSH服务
检查:sudo systemctl status sshd.service
开启:sudo systemctl start sshd.service
开机自启:sudo systemctl enable sshd.service
9. 设置host
sudo vi /etc/hosts
添加节点
192.168.1.10master
192.168.1.20slave1
192.168.1.30 lave2
10.修改主机名
sudo vi/etc/hostname
master
退出保存
11.安装jdk
切换至root
1)将jdk的安装包放到 /usr/local/src
2)rpm -ivh jdk-8u144-linux-x64.rpm
3)卸载自带的jdk
rpm -e --nodeps `rpm -qa | grep java`
4)修改 vi /etc/profile 在最后添加jdk配置
exportJAVA_HOME=/usr/java/jdk1.8.0_60
export CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib/dt.jar
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
5)生效配置 source /etc/profile
12.克隆出slave1和slave2两个虚拟机
对虚拟机进行修改
1) 修改改网卡信息
进入网卡目录:cd /etc/sysconfig/network-scripts/
查看:ls
编辑网卡:sudo vi ifcfg-**_****
更改网卡ip
更改mac地址 通过ifconfig获得
更改UUID 通过nmcli con show
2) 修改主机名hostname:sudo vi /etc/hostname
13.配置ntp服务(使各个节点时间统一)
1)master:sudo yum install ntpdata(所有节点)
设置开机启动:sudo systemctl enable ntpd
起动:sudo systemctl start ntpd
2)slave1和slave2(复制的节点)
设置开机启动:sudo systemctl enable ntpd
起动:sudo systemctl start ntpd
修改配置文件:sudo vi /ect/ntp.conf
将以下注释
server0.centos.pool.ntp.org iburst
server1.centos.pool.ntp.org iburst
server2.centos.pool.ntp.org iburst
server3.centos.pool.ntp.org iburst
添加
server master iburst
查看:ntpd -p
14.ssh免密登陆
master节点:
1) 生成密钥:ssh-keygen –t rsa
一直回车
2) 将生成的密钥加入公共的文件上:cat id_rsa.pub >>~/.ssh/authorized_keys
3) 将这个文件权限设置600
Chmod 600 authorized_keys
4) 将该文件发给slave1
scp authorized_keyshadoop@slave1:~/.ssh
然后重复之前的步骤将其他两个节点的密钥加到该文件上,最后将slave2的文件在分发发给前面两个节点
15.安装mysql
只安装master
下载mysql的repo源:wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
安装mysql-community-release-el7-5.noarch.rpm包:
sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
安装mysql:sudo yum install mysql-server
启动mysql:sudo systemctl start mysqld
指令:mysql –u root –p
输入密码123456
mysql>use mysql
mysql> update user set password=password('123456') where user='root';
mysql>flush privileges;
为远程主机设置登陆权限
(待定)
16. 安装hadoop
1)新建data目录
2)将hadoop解压到data目录
tar -zxvf hadoop-2.7.4.tar.gz -C data
3)配置环境变量
修改 vi /etc/profile 在最后添加jdk配置
export HADOOP_HOME=/home/hadoop/ hadoop-2.7.4
path添加 :$HADOOP_HOME/bin;
4)生效配置 source /etc/profile
5)修改hadoop的配置文件
Hadoop-env.sh:将export JAVA_HOME=${JAVA_HOME}修改为export JAVA_HOME= /usr/java/jdk1.8.0_60
yarn-env.sh:添加export JAVA_HOME= /usr/java/jdk1.8.0_60
slave:清空添加
slave1
slave2
core-site.xml:
<configuration>
<!-- 指定hdfs -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:8020</value>
</property>
<!-- 指定hadoop临时目录,自行创建 -->
<property>
<name>hadoop.tmp.dir</name>
<value>file:///home/hadoop/tmp</value>
</property>
</configuration>
hdfs-site.xml:
先创建对应的目录
mkdir -p /home/hadoop/dfs/data
mkdir -p /home/hadoop/dfs/name
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hadoop/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
mapre.site.xml:
先复制一份
cp mapred-site.xml.template mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
修改yarn-site
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
</configuration>
17.将hadoop和配置文件分发到各节点
1)全局的配置文件有权限问题,要切换到root用户
scp /etc/profile root@slave1:/etc/
scp /etc/profile root@slave2:/etc/
各节点是配置文件生效:source /etc/profile
2)scp -r data hadoop@slave1:~/
scp -r data hadoop@slave2:~/
18.启动hadoop
cd /home/hadoop/data/hadoop-2.7.4/sbin
1)格式化:hadoop namenode -format
2)启动: ./start-dfs.sh
./start-yarn.sh
Master截图:
Slave截图:
19.hadoop常用指令
1) 当前目录文件列列表
hadoop fs -ls /
递归显示所有文件文件
hadoop fs –ls –R /
2) 创建文件夹
hadoop fs –mkdir /test
3) 将本地文件上传到hadoop上
hadoop fs –put a.txt /test
4) 删除hadoop文件
hadoop fs –rm /test/a.txt
5)移动文件
hadoop fs -mv /test/a.txt /test2
6)查看
hadoop fs –cat /test/a.txt
7)查看文件大小
hadoop fs –du /text/a.txt
8)复制本地文件到hadoop上
hadoop fs –copyFromLocal a.txt /test
9)复制hadoop的文件到本地
hadoop fs –copyToLocal /test/a.txt ./data
10)修改权限
hadoop fs –chown hive:hive /test
将test的所属用户设为hive,组也设为hive
11)-cp(复制)等等
20.安装scala
1)解压到data目录下
tar –zxvf scala-2.11.8.tgz –C ./data/
2)配置环境变量
export SCALA_HOME = /home/hadoop/data/scala-2.11.8
并添加到path中
生效配置:source /etc/profile
查看scala版本:scalc –version
将scala 分发到个节点
scp -r data/scala-2.11.8 hadoop@slave1:~/data/
scp -r data/scala-2.11.8 hadoop@slave2:~/data/
20.安装spark
1) 解压文件到data
tar -zxvf spark-2.0.2-bin-hadoop2.7.tgz -C data/
2) 配置spark
复制出spark-env.sh :cp spark-env.sh.template spark-env.sh
修改spark-env.sh:添加
JAVA_HOME=/usr/java/jdk1.8.0_60
SCALA_HOME=/home/hadoop/data/scala-2.11.8
SPARK_MASTER_IP=192.168.1.10
HADOOP_CONF_DIR=/home/hadoop/data/hadoop-2.7.4/etc/hadoop
SPARK_LOCAL_DIRS=/home/hadoop/spark_data
SPARK_WORKER_DIR=/home/hadoop/spark_data/spark_works
复制出slaves:cp slaves.template slaves
修改slaves:将localhost修改为
master
slave1
slave2
复制出spark-defaults.conf :cpspark-defaults.conf.template spark-defaults.conf
修改:添加
spark.master spark://master:7077
spark.serializer org.apache.spark.serializer.KryoSerializer
spark.eventLog.enabled true
spark.eventLog.dir file:///data/spark_data/history/event-log
spark.history.fs.logDirectory file:///data/spark_data/history/spark-events
spark.eventLog.compress true
修改改环境变量: exportSPARK_HOME=/home/hadoop/data/spark-2.0.2-bin-hadoop2.7
Path添加:$SPARK_HOME/bin:$SPARK_HOME/sbin
将spark分发到各节点
master启动:cd /home/hadoop/data/spark-2.0.2-bin-hadoop2.7/sbin
./start-master.sh
./start-slaves.sh
21.安装zookeeper 1)解压:tar -zxvf zookeeper-3.4.6.tar.gz -C data
2) 修改配置文件文件:
cd data/zookeeper-3.4.6/conf/
cp zoo_sample.cfg zoo.cfg
修改zoo.cfg:
将dataDir=/tmp/zookeeper修改为
dataDir=/home/hadoop/data/zk_data
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
3) 在data目录下创建zk_data
cd zk_data
echo”1”>myid (其他节点为2,3)
4) 将zookeeper分发到其他节点
并修改对应的myid
5)修改环境变量
添加:export ZOOKEEPER_HOME=/home/hadoop/data/zookeeper-3.4.6
添加到path后边:$ZOOKEEPER_HOME/bin
source /etc/profile
分发配置文件给各节点
5) 三个点都启动zookeeper
cd /home/hadoop/data/zookeeper-3.4.6/bin/
./zkServer.sh start
成功截图:
22.安装kafka
1) 解压:tar -zxvf kafka_2.11-0.10.1.0.tgz -C data
2) 修改配置文件server.properties
将#log.dirs=/tmp/kafka-logs修改为
log.dirs=/home/hadoop/data/kafka-logs
将#zookeeper.connect=localhost:2181修改为
zookeeper.connect=master:2181,slave1:2181,slave2:2181
3) 创建kafka-logs目录
4) 分发kafka目录和kafka-logs目录到各节点
5) 修改改各节点配置文件server.properties:
Slave1将broker.id=0修改成1
Slave2将broker.id=0修改成2
6)修改环境变量,分发环境变量
添加:export KAFKA_HOME=/home/hadoop/data/kafka_2.11-0.10.1.0
添加到path上:$KAFKA_HOME/bin
7)三个节点启动kafka
确定zookeeper已启动
cd /home/hadoop/data/kafka_2.11-0.10.1.0/bin/
./kafka-server-start.sh ../config/server.properties
启动成功截图:
8)kafka常用示例
创建topic:
./kafka-topics.sh --create --zookeeper master:2181,slave1:2181,slave2:2181--replication-factor 3--partitions 3--topic test
查看topic:
./kafka-topics.sh --list --zookeeper master:2181,slave1:2181,slave2:2181
创建的test
删除topic:
./kafka-topics.sh --delete --zookeeper master:2181,slave1:2181,slave2:2181 --topic test
控制台生产数据:
./kafka-console-producer.sh --broker-list master:9092,slave1:9092,slave2:9092 --topic test
控制塔写入5个消息
验证消息生成成功:
./kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list master:9092,slave1:9092,slave2:9092 --topic test --time -1
消息分区2一个消息,分区1两个消息,分区0两个消息
topic消费:
./kafka-console-consumer.sh --bootstrap-server master:9092,slave1:9092,slave2:9092 --topic test --from-beginning
23.安装flume以及整合
1) 解压
2) 修改改环境变量
export FLUME_HOME=/home/hadoop/data/apache-flume-1.7.0-bin
PATH添加:$FLUME_HOME/bin
3) 修改配置文件
创建配置文件test.properties:
touch test.properties
添加:
#配置angent组建的名称
#接受数据的组件
#数据缓冲组件
#传递内容的组件
agent.sources = s1
agent.channels = c1
agent.sinks =k1
#
#
#
agent.sources.s1.type =org.apache.flume.source.taildir.TaildirSource
agent.sources.s1.channels = c1
agent.sources.s1.positionFile=/home/hadoop/data/apache-flume-1.7.0-bin/test/taildir_position.json
agent.sources.s1.filegroups = f1
agent.sources.s1.filegroups.f1=/home/hadoop/data/testlog/.*.log
agent.sources.s1.batchSize=4000
#数据缓存类型
agent.channels.c1.type=file
agent.channels.c1.checkpointDir=/home/hadoop/data/apache-flume-1.7.0-bin/test/checkpoint
agent.channels.c1.dataDirs=/home/hadoop/data/apache-flume-1.7.0-bin/data
agent.channels.c1.keep-alive=6
#从c1接收数据
#类别
#存到kafka的哪个topic
agent.sinks.k1.channel = c1
agent.sinks.k1.type=org.apache.flume.sink.kafka.KafkaSink
agent.sinks.k1.kafka.topic=test
agent.sinks.k1.kafka.bootstrap.servers=master:9092,slave1:9092,slave2:9092
agent.sinks.k1.kafka.producer.acks =1
agent.sinks.k1.kafka.flumeBatchSize=1000
4) 创建配置文件中的目录
cd /home/hadoop/data/apache-flume-1.7.0-bin
mkdir test
cd ~/data
mkdir testlog
5) 启动flume
flume-ng agent --conf-file ~/data/apache-flume-1.7.0-bin/conf/test.properties --name agent -Dflume.root.logger=INFO,console