大数据实践 Hadoop3 Hive Spark完全安装
-
在下载目录下打开终端,移动下载好的文件到
/usr/localsudo mv 文件名 /usr/local -
在
/usr/local中解压文件cd /usr/local sudo tar -zxvf 文件名 -
改个名
sudo mv 文件名 简称 -
安装一些工具
sudo apt-get update sudo apt-get install -y openssh-client openssh-server vim ssh unzip -
安装java
sudo apt install openjdk-8-jdk openjdk-8-jre -
配置java环境变量
sudo gedit ~/.bashrc在最后添加
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export JRE_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre保存退出后刷新、验证
source ~/.bashrc java -version
Lab 1
Hadoop配置
-
给文件夹添加最高权限
sudo chmod 777 /usr/local/hadoop -
给hadoop添加环境变量
sudo gedit ~/.bashrc在最后添加
export HADOOP_HOME=/usr/local/hadoop export HADOOP_INSTALL=$HADOOP_HOME export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export HADOOP_YARN_HOME=$HADOOP_HOME export YARN_HOME=$HADOOP_HOME export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin保存退出后刷新、验证
source ~/.bashrc hadoop version -
给HDFS的NameNode和DataNode建立文件夹,建立保存日志的文件夹
mkdir -p $HADOOP_HOME/hdfs/namenode mkdir -p $HADOOP_HOME/hdfs/datanode mkdir $HADOOP_HOME/logs -
进入hadoop的配置文件夹
cd $HADOOP_HOME/etc/hadoop ls -
在Hadoop-env.sh中添加JAVA_HOME
gedit hadoop-env.sh在最后添加
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64保存退出
-
配置core-site.xml
gedit core-site.xml在
<configuration>中添加<property><name>fs.defaultFS</name><value>hdfs://bigdata-master:9000/</value></property>保存退出
-
配置hdfs-site.xml
gedit hdfs-site.xml在
<configuration>中添加<property><name>dfs.namenode.name.dir</name><value>file:///usr/local/hadoop/hdfs/namenode</value><description>NameNode directory for namespace and transaction logs storage.</description></property><property><name>dfs.datanode.data.dir</name><value>file:///usr/local/hadoop/hdfs/datanode</value><description>DataNode directory</description></property><property><name>dfs.replication</name><value>2</value></property>保存退出
-
配置mapred-site.xml
gedit mapred-site.xml在
<configuration>中添加<property><name>mapreduce.framework.name</name><value>yarn</value></property><property><name>yarn.app.mapreduce.am.env</name><value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value></property><property><name>mapreduce.map.env</name><value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value></property><property><name>mapreduce.reduce.env</name><value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value></property>保存退出
-
配置yarn-site.xml
gedit yarn-site.xml在
<configuration>中添加<property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name><value>org.apache.hadoop.mapred.ShuffleHandler</value></property><property><name>yarn.resourcemanager.hostname</name><value>bigdata-master</value></property>保存退出
-
调整log level (optional)
gedit log4j.properties在最后添加
log4j.logger.org.apache.hadoop.util.NativeCodeLoader=ERROR保存退出
-
免密码登陆
ssh-keygen -t rsa -P ‘’ -f ~/.ssh/id_rsa cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys -
初始化Namenode
hdfs namenode -format -
重启一下ssh
sudo /etc/init.d/ssh restart -
运行hadoop
start-all.sh -
查看进程
jps打开浏览器,地址栏输入
localhost:9870
HDFS操作
-
在图形界面的Utilities-Browse the file system可以看到可视化的HDFS文件目录
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y3LvqMsR-1604631818431)(/Users/yiger/Library/Application Support/typora-user-images/截屏2020-11-05 下午2.54.01.png)]
-
添加一个目录
hadoop fs -mkdir /user/用户名/wordcount/input -
上传一个文件到该HDFS目录中(以README.txt为例)
cd $HADOOP_HOME hadoop fs -copyFromLocal README.txt /user/用户名/wordcount/input # hadoop fs -ls -R
MapReduce操作 (optional)
Lab2
Hive配置
-
给文件夹添加最高权限
sudo chmod 777 /usr/local/hive -
给hadoop添加环境变量
sudo gedit ~/.bashrc在最后添加
export HIVE_HOME=/usr/local/hive export PATH=$PATH:$HIVE_HOME/bin保存退出后刷新、验证
source ~/.bashrc hive --version[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V43bAb7q-1604631818434)(/Users/yiger/Desktop/截屏2020-11-05 下午3.26.41.png)]
-
进入hive的配置文件夹
cd $HIVE_HOME/conf ls -
重命名模板文件并复制一个用户自定义配置文件hive-site.xml
mv hive-default.xml.template hive-default.xml cp hive-default.xml hive-site.xml -
编辑hive-site.xml
gedit hive-site.xml在
<configuration>中添加<property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value><description>JDBC connect string for a JDBC metastore</description></property><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.cj.jdbc.Driver</value><description>Driver class name for a JDBC metastore</description></property><property><name>javax.jdo.option.ConnectionUserName</name><value>hive</value><description>username to use against metastore database</description></property><property><name>javax.jdo.option.ConnectionPassword</name><value>密码</value><description>password to use against metastore database</description></property>密码设置尽量复杂,如:Mysql@123
保存后退出
-
安装mysql
sudo apt-get install mysql-server进入mysql shell创建用户并授权
sudo mysql查看当前database、用户
show databases; select user from mysql.user;如果有Navicat、DataGrip等工具可以建立一个允许全网访问的用户’external_test’@’%'并在本机上尝试连接
添加一个hive用户并授最高权限,检查用户表
grant all privileges on *.* to 'hive'@'localhost' identified by '密码'; select user from mysql.user;退出
exit; -
配置mysql jdbc
在虚拟机中打开https://dev.mysql.com/downloads/connector/j/选择对应版本下载
-
解压到/usr/local/mysql_jdbc目录
sudo dpkg-deb --extract 文件名 /usr/local/mysql_jdbc进入解压好的文件夹并找到jar包
cd /usr/local/mysql_jdbc/usr/share/java ls把这个jar包拷贝到hive里
cp 文件名 /usr/local/hive/lib -
重启mysql并进入shell
service mysql stop service mysql start sudo mysql创建数据库
create database hive; show databases; -
删除版本冲突的包
cd /usr/local/hive/lib rm -rf guava-19.0.jar利用schematool初始化元数据配置 更改到mysql中
schematool -dbType mysql -initSchema启动hive
hive
Hive操作
-
查看数据库
show databases; -
创建数据库
create database test_hive;在hdfs中查看
-
创建表
create table if not exists usr( id bigint, name string, age int); -
查看表
show tables in test_hive; -
删库
drop database test_hive;
Lab3
Spark配置
-
给文件夹添加最高权限
sudo chmod 777 /usr/local/spark -
给hadoop添加环境变量
sudo gedit ~/.bashrc在最后添加
export SPARK_HOME=/usr/local/spark export PATH=$PATH:$SPARK_HOME/bin保存退出后刷新
source ~/.bashrc -
进入spark的配置文件夹
cd $SPARK_HOME/conf ls使用三个模板文件
mv spark-defaults.conf.template spark-defaults.conf mv slaves.template slaves mv spark-env.sh.template spark-env.sh -
启动spark并检验
cd /usr/local/spark/sbin ./start-all.sh jps
Lab4
SparkSQL配置
-
进入spark的配置文件夹
cd $SPARK_HOME/conf打开spark-defaults.conf
gedit spark-defaults.conf在最后添加
spark.sql.warehouse.dir hdfs://localhost:9000/user/hive/warehouse保存退出
-
复制hadoop、hive配置文件到spark中
cp /usr/local/hive/conf/hive-site.xml /usr/local/spark/conf cp /usr/local/hadoop/etc/hadoop/core-site.xml /usr/local/spark/conf cp /usr/local/hadoop/etc/hadoop/hdfs-site.xml /usr/local/spark/conf复制jdbc到spark中
cp /usr/local/hive/lib/mysql-connector-java-x.x.x.jar /usr/local/spark/jars -
启动spark-sql
spark-sql
SparkSQL操作
-
查看数据库
show databases; -
创建数据库
create database test_sparksql; -
在hdfs中查看
pyspark操作
-
进入pyspark
pyspark -
统计词频
textFile = spark.read.text("wordcount/input/README.txt") textFile.count() -
使用spark.sql执行sql语句
df = spark.sql("show databases") df.show() -
建库
spark.sql("create database test_pyspark_sql") -
在hdfs中查看