<Hadoop-CDH>
1、使用课程提供的hadoop-2.5.0-cdh5.3.6.tar.gz,上传到虚拟机的/usr/local目录下。(http://archive.
cloudera.com/cdh5/cdh/5/)
2、将hadoop包进行解压缩:tar -zxvf hadoop-2.5.0-cdh5.3.6.tar.gz
3、对hadoop目录进行重命名:mv hadoop-2.5.0-cdh5.3.6hadoop
4、配置hadoop相关环境变量
vi ~/.bashrc
export HADOOP_HOME=/usr/local/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source ~/.bashrc
5、创建/usr/local/data目录
修改core-site.xml:
<property>
<name>
fs.default.name</name>
<value>hdfs://sparkproject1:9000</value>
</property>
修改hdfs-site.xml:
<property>
<name>dfs.name.dir</name>
<value>/usr/local/data/namenode</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/usr/local/data/datanode</value>
</property>
<property>
<name>dfs.tmp.dir</name>
<value>/usr/local/data/tmp</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
修改mapred-site.xml:
<property>
<name>
mapreduce.framework.name</name>
<value>yarn</value>
</property>
修改yarn-site.xml:
<property>
<name>yarn.resourcemanager.hostname</name>
<value>sparkproject1</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
修改slaves:
sparkproject2
sparkproject3
另外两层搭建hadoop
1、使用如上配置在另外两台机器上搭建hadoop,可以使用scp命令将sparkproject1上面的hadoop安装包和~/.bashrc配置文件都拷贝过去。(scp -r hadoop root@sparkproject2:/usr/local)
2、要记得对.bashrc文件进行source,以让它生效。
3、记得在sparkproject2和sparkproject3的/usr/local目录下创建data目录。
启动hadoop集群:
1、格式化namenode:在sparkproject1上执行以下命令,hdfs namenode -format
3、验证启动是否成功:jps、50070端口
sparkproject1:namenode、secondarynamenode
sparkproject2:datanode
sparkproject3:datanode
启动yarn:
sparkproject2:nodemanager
sparkproject3:nodemanager
<Hive>
1.安装Hive包:
1、将课程提供的hive-0.13.1-cdh5.3.6.tar.gz使用WinSCP上传到sparkproject1的/usr/local目录下。
2、解压缩hive安装包:tar -zxvf hive-0.13.1-cdh5.3.6.tar.gz
3、重命名hive目录:mv hive-0.13.1-cdh5.3.6 hive
4、配置hive相关的环境变量
vi ~/.bashrc
export HIVE_HOME=/usr/local/hive
export PATH=$HIVE_HOME/bin
source ~/.bashrc
2.安装MySQL:
1、在sparkproject1上安装mysql。
2、使用yum安装mysql server。
yum install -y mysql-server
service mysqld start
chkconfig mysqld on
3、使用yum安装mysql connector
yum install -y mysql-connector-java
4、将mysql connector拷贝到hive的lib包中
cp /usr/share/java/mysql-connector-java-5.1.17.jar /usr/local/hive/lib
5、在mysql上创建hive元数据库,创建hive账号,并进行授权
create database if not exists hive_metadata;
grant all privileges on hive_metadata.* to 'hive'@'%' identified by 'hive';
grant all privileges on hive_metadata.* to 'hive'@'localhost' identified by 'hive';
grant all privileges on hive_metadata.* to 'hive'@'spark1' identified by 'hive';
flush privileges;
use hive_metadata;
3.配置hive-site.xml:
mv hive-default.xml.template hive-site.xml
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://spark1:3306/hive_metadata?createDatabaseIfNotExist=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive</value>
</property>
4.配置hive-env.sh和hive-config.sh:
mv hive-env.sh.template
hive-env.sh
vi /usr/local/hive/bin/hive-config.sh
export JAVA_HOME=/usr/java/latest
export HIVE_HOME=/usr/local/hive
export HADOOP_HOME=/usr/local/hadoop
5.验证hive:
直接输入hive命令,可以进入hive命令行
create table users(id int, name string)
load data local inpath'/usr/local/users.txt' into table users
select name from users
<ZooKeeper>
1.安装ZooKeeper:
1、将课程提供的zookeeper-3.4.5-cdh5.3.6.tar.gz使用WinSCP拷贝到sparkproject1的/usr/local目录下。
2、对zookeeper-3.4.5-cdh5.3.6.tar.gz进行解压缩:tar -zxvf zookeeper-3.4.5-cdh5.3.6.tar.gz。
3、对zookeeper目录进行重命名:mv zookeeper-3.4.5-cdh5.3.6 zk。
4、配置zookeeper相关的环境变量
vi ~/.bashrc
export ZOOKEEPER_HOME=/usr/local/zk
export PATH=$ZOOKEEPER_HOME/bin
source ~/.bashrc
2.配置zoo.cfg
cd zk/conf
mv zoo_sample.cfg zoo.cfg
vi zoo.cfg
修改:dataDir=/usr/local/zk/data
新增:
server.0=sparkproject1:2888:3888
server.1=sparkproject2:2888:3888
server.2=sparkproject3:2888:3888
3.设置节点
cd zk
mkdir data
cd data
vi myid
0
4.搭建ZK集群:
1、在另外两个节点上按照上述步骤配置ZooKeeper,使用scp将zk和.bashrc拷贝到spark2和spark3上即可。
2、唯一的区别是spark2和spark3的标识号分别设置为1和2。
5.启动Zookeeper集群:
1、分别在三台机器上执行:zkServer.sh start。
2、检查ZooKeeper状态:zkServer.sh status,应该是一个leader,两个follower
3、jps:检查三个节点是否都有QuromPeerMain进程。
<Scala>
1、将课程提供的scala-2.11.4.tgz使用WinSCP拷贝到sparkproject1的/usr/local目录下。
2、对scala-2.11.4.tgz进行解压缩:tar -zxvf scala-2.11.4.tgz。
3、对scala目录进行重命名:mv scala-2.11.4 scala
4、配置scala相关的环境变量
vi ~/.bashrc
export SCALA_HOME=/usr/local/scala
export PATH=$SCALA_HOME/bin
source ~/.bashrc
5、查看scala是否安装成功:scala -version
6、按照上述步骤在sparkproject2和sparkproject3机器上都安装好scala。使用scp将scala和.bashrc拷贝到另外两台机器上即可。
<Kafka>
1、将课程提供的kafka_2.9.2-0.8.1.tgz使用WinSCP拷贝到sparkproject1的/usr/local目录下。
2、对kafka_2.9.2-0.8.1.tgz进行解压缩:tar -zxvf kafka_2.9.2-0.8.1.tgz。
3、对kafka目录进行改名:mv kafka_2.9.2-0.8.1 kafka
4、配置kafka
vi /usr/local/kafka/config/server.properties
broker.id:依次增长的整数,0、1、2,集群中Broker的唯一id
zookeeper.connect=192.168.1.105:2181,192.168.1.106:2181,192.168.1.107:2181
5、安装slf4j
将课程提供的slf4j-1.7.6.zip上传到/usr/local目录下
unzip slf4j-1.7.6.zip
把slf4j中的slf4j-nop-1.7.6.jar复制到kafka的libs目录下面
搭建集群:
1、按照上述步骤在另外两台机器分别安装kafka。用scp把kafka拷贝到sparkproject2和sparkproject3即可。
2、唯一区别的,就是server.properties中的broker.id,要设置为1和2
启动集群:
1、解决kafka Unrecognized VM option 'UseCompressedOops'问题
vi /usr/local/kafka/bin/kafka-run-class.sh
if [ -z "$KAFKA_JVM_PERFORMANCE_OPTS" ]; then
KAFKA_JVM_PERFORMANCE_OPTS="-server
-XX:+UseCompressedOops -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+CMSScavengeBeforeRemark -XX:+DisableExplicitGC -Djava.awt.headless=true"
fi
去掉-XX:+UseCompressedOops即可
2、在三台机器上的kafka目录下,分别执行以下命令:nohup bin/kafka-server-start.sh config/server.properties &
3、使用jps检查启动是否成功
测试集群:
使用基本命令检查kafka是否搭建成功
bin/kafka-topics.sh --zookeeper 192.168.1.105:2181,192.168.1.106:2181,192.168.1.107:2181 --topic TestTopic --replication-factor 1 --partitions 1 --create
bin/kafka-console-producer.sh --broker-list 192.168.1.105:9092,192.168.1.106:9092,192.168.1.107:9092 --topic TestTopic
bin/kafka-console-consumer.sh --zookeeper 192.168.1.105:2181,192.168.1.106:2181,192.168.1.107:2181 --topic TestTopic --from-beginning
<flume>
1、将课程提供的flume-ng-1.5.0-cdh5.3.6.tar.gz使用WinSCP拷贝到sparkproject1的/usr/local目录下。
2、对flume进行解压缩:tar -zxvf flume-ng-1.5.0-cdh5.3.6.tar.gz
3、对flume目录进行重命名:mv apache-flume-1.5.0-cdh5.3.6-bin flume
4、配置scala相关的环境变量
vi ~/.bashrc
export FLUME_HOME=/usr/local/flume
export FLUME_CONF_DIR=$FLUME_HOME/conf
export PATH=$FLUME_HOME/bin
source ~/.bashrc
修改配置文件:
vi /usr/local/flume/conf/flume-conf.properties
#agent1表示代理名称
agent1.sources=source1
agent1.sinks=sink1
agent1.channels=channel1
#配置source1
agent1.sources.source1.type=spooldir
agent1.sources.source1.spoolDir=/usr/local/logs
agent1.sources.source1.channels=channel1
agent1.sources.source1.fileHeader = false
agent1.sources.source1.interceptors = i1
agent1.sources.source1.interceptors.i1.type = timestamp
#配置channel1
agent1.channels.channel1.type=file
agent1.channels.channel1.checkpointDir=/usr/local/logs_tmp_cp
agent1.channels.channel1.dataDirs=/usr/local/logs_tmp
#配置sink1
agent1.sinks.sink1.type=hdfs
agent1.sinks.sink1.hdfs.path=hdfs://sparkproject1:9000/logs
agent1.sinks.sink1.hdfs.fileType=DataStream
agent1.sinks.sink1.hdfs.writeFormat=TEXT
agent1.sinks.sink1.hdfs.rollInterval=1
agent1.sinks.sink1.channel=channel1
agent1.sinks.sink1.hdfs.filePrefix=%Y-%m-%d
创建需要的文件夹:
本地文件夹:mkdir/usr/local/logs
HDFS文件夹:hdfsdfs-mkdir/logs
启动flume-agent:
flume-ng agent -n agent1 -c conf -f /usr/local/flume/conf/flume-conf.properties -Dflume.root.logger=DEBUG,console
测试:
flume-ng agent -n agent1 -c conf -f /usr/local/flume/conf/flume-conf.properties -Dflume.root.logger=DEBUG,console