搭建环境:
Ubuntu12.04(比这个版本高应该都可以)
首先搭建的是Spark。
先用ping确保用外网IP可以互相连通。然后可以修改各个工作节点的主机名。
vim /etc/hostname
修改主机名称,我将主节点设置为master,另一个节点设置成slave1。重启两台主机。
之后修改master节点的hosts文件
vim /etc/hosts
在其中加入
master_ip master
slave_ip slave
这里master_ip使用内网ip,slave_ip使用外网ip
安装Java
apt-get install openjdk-7-jdk
同时在~/.bashrc中追加:
export JAVA_HOME=/usr/lib/jvm/default-java
执行source ~/.bashrc使环境变量生效。
设置master主机ssh免密码访问
sudo apt-get openssh-server
ssh-keygen -t rsa -P ""
cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
scp ~/.ssh/id_rsa.pub hadoop@slave1:/root/
这里记得将最后一行命令中slave1换成对映的slave主机的IP地址。在slave1上执行以下命令
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
rm ~/id_rsa.pub
在master节点安装Spark
cd ~
wget http://d3kbcqa49mib13.cloudfront.net/spark-2.1.0-bin-hadoop2.7.tgz
tar -zxf ~/spark-2.1.0-bin-hadoop2.7.tgz -C /usr/local/
cd /usr/local
mv ./spark-2.1.0-bin-hadoop2.7/ ./spark
修改环境文件
vim ~/.bashrc
加入
export SPARK_HOME=/usr/local/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
执行source ~/.bashrc使其生效。
我搭建Spark时用的是standalone模式,首先要配置slave节点
vim /usr/local/spark/conf/slaves
在其中填入slave节点的外网IP,每行一个。
同时,复制spark-env.sh.template,并重命名为spark-env.sh。
cp ./conf/spark-env.sh.template ./conf/spark-env.sh
并在其中添加
export SPARK_LOCAL_HOST=id
export SPARK_HOME=/usr/local/spark
这里的id用当前云主机的内网id(也就是ifconfig查出来的ip)。至此,master主机的Spark配置就完成了。接下来配置slave主机的配置。
同样的,首先修改slave节点的主机名,我修改为slave1,过程与master节点相似。
紧接着修改hosts文件。
master_ip master
slave1_ip slave1
这里要注意,slave1_ip为内网ip,master_ip为外网ip。
同样的将spark下载,解压,修改spark-env.sh,多加一行
export SPARK_MASTER_IP=id
这里用外网IP。同时LOCAL_HOST也要用当前(slave1)的内网ip。
在master节点执行
cd /usr/local/spark
sbin/start-all.sh
jps
在master主机上可以看到显示master进程及端口号,slave主机执行jps命令可以看到worker进程及端口号。这样即代表成功。
下面进行hadoop搭建。
在我的服务器上有一块硬盘未使用,将hadoop的文件系统装在这块硬盘上。不需要可以跳过这步。
fdisk /dev/vdb
执行时依次输入n、p、1、两次回车。再执行
mkfs.etx4 /dev/vdb
cd ~
cd ..
mkdir ourdata
mount /dev/vdb /ourdata
echo '/dev/vdb1 /ourdata ext4 defaults 0 0' >> /etc/fstab
至此完成挂载,同样你也可以在其他文件夹下安装hadoop的文件系统。
cd ~
wget http://mirrors.cnnic.cn/apache/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz
tar -zxf ~/hadoop-2.7.3.tar.gz -C /usr/local
cd /usr/local/
mv ./hadoop-2.7.3/ ./hadoop
vim ~/.bashrc
在环境文件中加入
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
紧接着使其生效
source ~/.bashrc
修改hadoop配置
vim /usr/local/hadoop/etc/hadoop/slaves
在其中加入每个datanode的主机名例如slave1
然后修改同目录下的core-site.xml
hadoop.tmp.dir
file:/ourdata/hadoop/tmp
Abase for other temporary directories
fs.defaultFS
hdfs://master:9000
修改hdfs-site.xml
dfs.replication
3
dfs.namenode.secondary.http-address
slave1:50090
dfs.namenode.name.dir
file:/ourdata/hadoop/tmp/dfs/name
dfs.datanode.data.dir
file:/ourdata/hadoop/tmp/dfs/data
打包hadoop并发往每个节点
cd /usr/local
tar -zcf ~/hadoop.master.tar.gz ./hadoop
cd ~
scp ./hadoop.master.tar.gz slave1:/root
在各个节点下解压,并放在/usr/local下
tar -zxf ~/hadoop.master.tar.gz -C /usr/local
在master节点,格式化namenode并启动hdfs
cd /usr/local/hadoop
bin/hdfs namenode -format
sbin/start-dfs.sh
jps
同样,在对应的节点如果检查到了进程及端口号(namenode、datanode、secondarynamenode)即证明配置成功。
最后是hive安装,首先安装mysql驱动
sudo apt-get install mysql-server
mysql -u root
在mysql命令行下执行
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mysql' WITH GRANT OPTION;
FLUSH PRIVILEGES;
quit
同时解除远程登录限制
vim /etc/mysql/my.cnf
找到bind-address这一行,在行首加#将其注释掉。
cd ~
wget http://mirror.bit.edu.cn/apache/hive/hive-2.1.1/apache-hive-2.1.1-bin.tar.gz
tar -zxf ~/apache-hive-2.1.1-bin.tar.gz -C /usr/local/
cd /usr/local
mv ./apache-hive-2.1.1-bin/ ./hive
cd hive/conf
cp ./hive-default.xml.template ./hive-site.xml
vim hive-site.xml
加入如下
javax.jdo.option.ConnectionURL
jdbc:mysql://113.10.137.114:3306/hive?createDatabaseIfNotExist=true
javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver
javax.jdo.option.ConnectionUserName
root
javax.jdo.option.ConnectionPassword
mysql
datanucleus.schema.autoCreateTables
true
hive.execution.engine
spark
spark.master
spark://113.10.137.114:7077
spark.eventLog.enabled
true
spark.eventLog.dir
/usr/local/spark/logs/
spark.serializer
org.apache.spark.serializer.KryoSerializer
hive.querylog.location
/usr/local/hive/log
同时拷贝到spark的conf文件夹下
cp hive-site.xml ../../spark/conf/hive-site.xml
下载jdbc驱动
cd ~
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.40.tar.gz
tar xf mysql-connector-java-5.1.40.tar.gz
cd mysql-connector-java-5.1.40
cp mysql-connector-java-5.1.40-bin.jar /usr/local/hive/lib/
在环境变量中加入
export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$HIVE_HOME/bin
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:/usr/local/hive/lib
运行
hive --service metastore
以后即可直接运行 hive。