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。
相關文章
- 環境搭建
- windows環境下Django環境搭建WindowsDjango
- react環境搭建React
- LNMP 環境搭建LNMP
- 搭建Java環境Java
- Vagrant 環境搭建
- Flutter環境搭建Flutter
- swoft 環境搭建
- OpenGL 環境搭建
- 搭建gym環境
- 搭建lnmp環境LNMP
- Angular環境搭建Angular
- JDK環境搭建JDK
- keil環境搭建
- Dubbo環境搭建
- mac搭建環境Mac
- FNA 環境搭建
- FNA環境搭建
- Maven 環境搭建Maven
- spark環境搭建Spark
- Hive環境搭建Hive
- centosLAMP環境搭建CentOSSLAMLAMP
- lnmp環境搭建LNMP
- ZooKeeper環境搭建
- lnamp環境搭建
- java 環境 搭建Java
- MAVEN環境搭建Maven
- App環境搭建APP
- gogs環境搭建Go
- Windows環境下的Nginx環境搭建WindowsNginx
- window環境下testlink環境搭建(xammp)
- 以太坊-Win環境下remix環境搭建REM
- 【環境搭建】RocketMQ叢集搭建MQ
- Flutter Engine環境搭建Flutter
- iOS逆向環境搭建iOS
- docker搭建php環境DockerPHP
- Supervisor 環境搭建
- Mac 新環境搭建Mac