完全分布式安装配置

<部分内容参考自 北风网大数据课程>

< 1.安装ssh软件配置免密登陆>
ssh-keygen  
ssh-cpoy-id mini2

<2.修改Linux主机名>
 /etc/sysconfig/network
<3.修改IP>
  修改IP地址:和HWaddr(mac)地址与上面的文件中的HWaddr地址一样
	                ONBOOT=yes
					BOOTPROTO=static
					IPADDR=192.168.183.130
					GATEWAY=192.168.183.2
					NETMASK=255.255.255.0
<注意: 虚拟机在集群搭建好之后,需要把网络是这一次dhcp,测试联通外网之后,再设置成static,这样才能和外网连接通。
	初步分析:
	   可能在第一次连接外网的时候拉去了部分需要的信息,之后静态地址使用了这些东西。>
<4.修改主机名和IP的映射关系>
   ######注意######如果你们公司是租用的服务器或是使用的云主机(如华为用主机、阿里云主机等)
	/etc/hosts里面要配置的是内网IP地址和主机名的映射关系	
<5.关闭防火墙>
    1. Linux防火墙(Iptables)重启系统生效
	开启: chkconfig iptables on  
	
	关闭: chkconfig iptables off  
	
	2.Linux防火墙(Iptables) 即时生效,重启后失效
	开启: service iptables start  
	
	关闭: service iptables stop  
------------------------------------------------------------------------------------------------------------
安装步骤:

		1.1解压
			tar -zxvf zookeeper-3.4.5.tar.gz -C /weekend/
		1.2修改配置
			cd /weekend/zookeeper-3.4.5/conf/
			cp zoo_sample.cfg zoo.cfg
			vim zoo.cfg
			修改:dataDir=/weekend/zookeeper-3.4.5/tmp
			在最后添加:
			server.1=weekend05:2888:3888
			server.2=weekend06:2888:3888
			server.3=weekend07:2888:3888
			保存退出
			然后创建一个tmp文件夹
			mkdir /weekend/zookeeper-3.4.5/tmp
			再创建一个空文件
			touch /weekend/zookeeper-3.4.5/tmp/myid
			最后向该文件写入ID
			echo 1 > /weekend/zookeeper-3.4.5/tmp/myid
		1.3将配置好的zookeeper拷贝到其他节点(首先分别在weekend06、weekend07根目录下创建一个weekend目录:mkdir /weekend)
			scp -r /weekend/zookeeper-3.4.5/ weekend06:/weekend/
			scp -r /weekend/zookeeper-3.4.5/ weekend07:/weekend/
			
			注意:修改weekend06、weekend07对应/weekend/zookeeper-3.4.5/tmp/myid内容
			weekend06:
				echo 2 > /weekend/zookeeper-3.4.5/tmp/myid
			weekend07:
				echo 3 > /weekend/zookeeper-3.4.5/tmp/myid
				
		1.4 启动停止zookeeper
				zkServer.sh start/stop
				

		2、将hadoop包进行解压缩:tar -zxvf hadoop-2.5.0-cdh5.3.6.tar.gz
		3、对hadoop目录进行重命名:mv hadoop-2.5.0-cdh5.3.6 hadoop
		4、配置hadoop相关环境变量
		vi ~/.bashrc
		export HADOOP_HOME=/usr/local/hadoop
		export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin
		source ~/.bashrc
		5、创建/usr/local/data目录
		
		 
		 
			fs.default.name
  			hdfs://sparkproject1:9000
		
		
        ha.zookeeper.quorum
        node1:2181,node2:2181,node3:2181
		
		
			
			dfs.name.dir
			/usr/local/data/namenode
			
			
			dfs.data.dir
			/usr/local/data/datanode
			
			
			dfs.tmp.dir
			/usr/local/data/tmp
			
			
			dfs.replication
			2
			
		
		
		mapreduce.framework.name
		yarn
		
		
			
			yarn.resourcemanager.hostname
			sparkproject1
			
			
			yarn.nodemanager.aux-services
			mapreduce_shuffle
			
		
		sparkproject2
		sparkproject3
< 在另外两台机器上搭建hadoop>
scp -r hadoop root@sparkproject2:/usr/local

< 启动hdfs集群>
1、格式化namenode:在sparkproject1上执行以下命令,hdfs namenode -format
2、启动hdfs集群:start-dfs.sh3、验证启动是否成功:jps、50070端口
sparkproject1:namenode、secondarynamenode
sparkproject2:datanode
sparkproject3:datanode
4、hdfs dfs -put hello.txt /hello.txt
< 启动yarn集群>
1、启动yarn集群:start-yarn.sh2、验证启动是否成功:jps、8088端口
sparkproject1:resourcemanager、nodemanager
sparkproject2:nodemanager
sparkproject3:nodemanager

start-all.sh启动所有,包括 start-yarn.sh start-dfs.sh



< 修改spark-env.sh文件>
1、cd /usr/local/spark/conf
2、cp spark-env.sh.template spark-env.sh
3、vi spark-env.sh
export JAVA_HOME=/usr/java/latest
export SCALA_HOME=/usr/local/scala
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop


slaves.template slaves
配置内容如下

master
worker1
worker2

< 启动spark脚本 >
/opt/spark-2.1.0-bin-hadoop2.7/sbin/start-all.sh
< 用yarn-client模式提交spark作业>
/usr/local/spark/bin/spark-submit \
--class org.apache.spark.example.JavaSparkPi \
--master yarn-client \
--num-executors 1 \
--driver-memory 10m \
--executor-memory 10m \
--executor-cores 1 \
/usr/local/spark/lib/spark-examples-1.5.1-hadoop2.4.0.jar \

<  用yarn-cluster模式提交spark作业>
/usr/local/spark/bin/spark-submit \
--class org.apache.spark.example.JavaSparkPi \
--master yarn-cluster \
--num-executors 1 \
--driver-memory 10m \
--executor-memory 10m \
--executor-cores 1 \
/usr/local/spark/lib/spark-examples-1.5.1-hadoop2.4.0.jar \



##配置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
##安装slf4j
将课程提供的slf4j-1.7.6.zip上传到/usr/local目录下
unzip slf4j-1.7.6.zip
把slf4j中的slf4j-nop-1.7.6.jar复制到kafka的libs目录下面
<  搭建kafka集群>
1、按照上述步骤在另外两台机器分别安装kafka。用scp把kafka拷贝到sparkproject2和sparkproject3即可。
2、唯一区别的,就是server.properties中的broker.id,要设置为1和2
<  启动kafka集群>
在三台机器上的kafka目录下,分别执行以下命令:<  nohup bin/kafka-server-start.sh config/server.properties &  >

<  测试kafka集群>
使用基本命令检查kafka是否搭建成功
<设置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配置文件 >

<在配置文件中需要指定zookeeper地址>
<此处没有实现flume的高可用是单机版的   高可用参考:http://blog.csdn.net/shouhuzhezhishen/article/details/64904848>
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
< flume 启动命令>
nohup sh flume-ng agent --conf-file ../conf/flume-conf.properties --name agent -Dflume.root.logger=INFO,console &


		
< -----------------------hbase_env.sh----------------------------------- >
export JAVA_HOME=/usr/jdk/

# Extra Java CLASSPATH elements.  Optional.这行代码是错的,需要可以修改为下面的形式
#export HBASE_CLASSPATH=/home/hadoop/hbase/conf
export JAVA_CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
# 设置垃圾回收机制GC(gabage collection)
export HBASE_OPTS="-XX:+UseConcMarkSweepGC"
#  true 内部自带的zookeeper  false自己的zookeeper
export HBASE_MANAGES_ZK=false
< ---------------------------------hbase-site.xml  非高可用模式---------->


hbase.rootdir
hdfs://spark1:9000/hbase


hbase.cluster.distributed
true


hbase.zookeeper.quorum
spark1,spark2,spark3


hbase.zookeeper.property.dataDir
/usr/local/data/hbasezookeeper




hbase.master.maxclockskew 
180000


< --------------regionservers文件存放从节点的位置----------------------- >
mini3
mini4
mini5
< 启动hbase >
start-hbase.sh



 < 安装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;
<  配置hive-site.xml >
mv hive-default.xml.template hive-site.xml


  javax.jdo.option.ConnectionURL
  jdbc:mysql://spark1:3306/hive_metadata?createDatabaseIfNotExist=true


  javax.jdo.option.ConnectionDriverName
  com.mysql.jdbc.Driver


  javax.jdo.option.ConnectionUserName
  hive


  javax.jdo.option.ConnectionPassword
  hive


<  配置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

<  验证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 


你可能感兴趣的:(大数据(hadoop))