Hadoop2.7.3+Hive2.1.1+Spark2.1.0环境搭建

搭建环境:
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

<configuration>
        <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/ourdata/hadoop/tmp</value>
        <description>Abase for other temporary directories</description>
        </property>
        <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
        </property>
</configuration>

修改hdfs-site.xml

<configuration>
<property>
        <name>dfs.replication</name>
        <value>3</value>
</property>
<property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>slave1:50090</value>
    </property>
<property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/ourdata/hadoop/tmp/dfs/name</value>
    </property>

<property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/ourdata/hadoop/tmp/dfs/data</value>
    </property></configuration>

打包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

加入如下

<configuration>
<property>
                <name>javax.jdo.option.ConnectionURL</name>
                <value>jdbc:mysql://113.10.137.114:3306/hive?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>root</value>
        </property>

        <property>
                <name>javax.jdo.option.ConnectionPassword</name>
                <value>mysql</value>
        </property>
<property>
                <name>datanucleus.schema.autoCreateTables</name>
                <value>true</value>
        </property>
<property>
                <name>hive.execution.engine</name>
                <value>spark</value>
        </property>


        <property>
                <name>spark.master</name>
                <value>spark://113.10.137.114:7077</value>
        </property>

        <property>
                <name>spark.eventLog.enabled</name>
                <value>true</value>
        </property>
<property>
 <name>spark.eventLog.dir</name>
                <value>/usr/local/spark/logs/</value>
</property>

         <property>
                <name>spark.serializer</name>
                <value>org.apache.spark.serializer.KryoSerializer</value>
        </property>
<property>

                <name>hive.querylog.location</name>

                <value>/usr/local/hive/log</value>
</property>
</configuration>

同时拷贝到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。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,928评论 6 509
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,748评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,282评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,065评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,101评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,855评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,521评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,414评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,931评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,053评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,191评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,873评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,529评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,074评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,188评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,491评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,173评论 2 357

推荐阅读更多精彩内容