1. base-shell
1.1. 网络配置
hostname
cat /etc/hostname
cat /etc/hosts
ip addr # 查看ip
cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
# staric or none
BOOTPROTO=static
GATEWAY=192.168.35.2
IPADDR=192.168.35.*
NETMASK=255.255.255.0
ONBOOT=yes
cat /etc/resolv.conf
# 主机上的域名解析(网关GATEWAY),否则无法连接外网
nameserver 192.168.*.2
service network restart # systemctl restart network
1.2. 防火墙
systemctl status firewalld
systemctl stop firewalld.service
systemctl disable firewalld.service # 禁止开机启动
1.3. ntp 时间服务
cat /etc/ntp.conf
rpm -qa |grep ntp
yum -y install ntp
date
service ntpd status
ntpdate 1.cn.pool.ntp.org # 查看当前服务时间
chkconfig ntpd on # 开机启动服务
service ntpd start # 开启时间服务
1.4. ssh 免密码登录
service sshd status
service ssh start
# todo ssh localhost if no .ssh
cd ~/.ssh; ls
rm ./id_rsa* # del old if exists
ssh-keygen -t rsa # Enter
# localhost
cat ./id_rsa.pub >> ./authorized_keys
chmod 600 ./authorized_keys # 修改文件权限
# 分发公钥到其他节点
# cp: 本机复制
# scp: 远程复制,指定用户节点hadoop@Slave1,需要输入用户密码
scp ~/.ssh/id_rsa.pub hadoop@Slave1:/home/hadoop/
# ls hadoop@Slave1:~
# slave
cd ~ ;ls
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
rm ~/id_rsa.pub # 用完就可以删除,可以链式分发后删除
# 其他分发方法
# ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
# ssh-copy-id -i ~/.ssh/id_dsa.pub slaver01
ssh 远程连接 端口 default: 22
cat /etc/ssh/sshd_config
systemctl restart sshd
ps -ef |grep sshd # 查看ssh进程
1.5. 文件操作
1) 文件 查找
find / -name java*
rpm -qa | grep java*
rpm -ql java-1.8.0-openjdk-devel |grep 'bin/javac'
2) 文件 权限
# -R 递归修改
# 读r=4、写w=2、可执行x=1; rwx=7,rw=6,r-x=5
# 修改目录读写权限包括子文件
chmod -R 755 /hbase
# 赋予用户权限
chown -R hadoop:hadoop /usr/local/hadoop
cd / ;ll
# d rwx r-x r-x
# d user group other
3) 文件 创建
mkdir
# 文件 重命名: if exists toFile, 会直接把currFile移动到toFile下
mv currFile toFile
4) 文件 删除
rm -rf /tmp
1.6.0系统检查
# x86_64
dmesg |grep -i virtual # 查询KVM虚拟机
Top # CPU和内存使用情况, 未验证
df -h # 磁盘使用情况
1.6. 安装命令
校验安装包 md5,sha1,sha512
md5sum /home/downld/hadoop-3.1.3.tar.gz | tr 'a-z' 'A-Z'
1) 安装 yum 可以联网
# 批量卸载系统自带的
rpm -qa | grep java | xargs rpm -e --nodeps
yum list # 列出所有可安裝的软件清单命令:
yum remove <package_name> # 删除软件包命令:
yum search <keyword> # 查找软件包 命令:
yum list java-1.8* # 检查 yum 中有没有 java1.8 包
# -y 当安装过程提示选择全部为"yes"
# -q 不显示安装的过程
yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel
# 卸载使用yum安装的jdk
yum -y remove java-1.8.0-openjdk-headless.x86_64
2) 安装 tar
# -C 切换到指定的目录
# -z 通过gzip指令处理压缩文件
# -v verbose 显示指令执行过程
# -f 指定压缩文件
# -x extract从压缩文件中还原文件
# 解压缩
tar -xzvf *.tar.gz -C /usr/local
# 压缩 a.c文件为test.tar.gz
# -c create 建立新的备份文件
tar -czvf test.tar.gz a.c
# -t list 列出备份文件的内容
tar -tzvf test.tar.gz
3) 安装 rpm
# -v 显示指令执行过程
# -i<套件档>或--install<套件档> 安装指定的套件档。
# -h hash 安装时列出标记
rpm -hvi dejagnu-1.4.2-10.noarch.rpm
# -q 使用询问模式,当遇到任何问题时,rpm指令会先询问用户
# -a 查询所有套件
# -l 显示套件的文件列表
# -i 显示套件的相关信息
rpm -qi dejagnu-1.4.2-10.noarch.rpm
1.7. 环境变量配置
1) /etc/profile
全局环境变量配置
vi /etc/profile
# 立即生效
source /etc/profile
2) ~/.bashrc
当前用户变量
# source 立即生效
. ~/.bashrc
1.8. 用户组
groups # 当前组的用户
groups uname # 当前用户所在组及其用户
whoami # 当前用户
# sudo
# -r 建立系统帐号
# -g<群组> 指定用户所属的群组
# -G<群组> 指定用户所属的附加群组
# -m 自动建立用户的登入目录
# -s<shell> 指定用户登入后所使用的shell
# useradd -m hadoop -G root -s /bin/bash
su
useradd -m hadoop -s /bin/bash
passwd hadoop
# 为 hadoop 用户增加管理员权限,方便部署,
# 避免一些对新手来说比较棘手的权限问题
visudo
# 大约在第100行,Shift + :100, :/LL=
hadoop ALL=(ALL) ALL
grep hadoop /etc/group # 查看组Hadoop所有用户
grep hadoop /etc/passwd # 查看用户是否存在
userdel hadoop # if 只有一个用户,组同时删除
groupdel hadoop
1.9. 进程 查看
# More参见Linux教程
ps -ef |grep hbase
# -au 显示较详细的资讯
# -aux 显示所有包含其他使用者的行程
ps -aux |grep hbase # 查看进程pid
# -9强制结束,-15正常结束
kill -9 进程pid
2. Hadoop
2.0 hadoop-env.sh
没有配置环境变量,需要配置对应的env.sh
~/.bashrc
# Java
export JAVA_HOME=/usr/local/java/jdk
# 不一定用
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
# Hadoop
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
2.1 core-site
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
2.2 hdfs-site
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
<!-- 分布式Alter, 同时修改副本数:dfs.replication=3 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:50090</value>
</property>
单机启动hdfs
# /usr/local/hadoop/tmp/dfs/name 配置目录系统会自动创建
bin/hdfs namenode -format
sbin/start-dfs.sh
2.3 mapred-site
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 分布式Alter -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
2.4 yarn-site
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 分布式Alter -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
3. Zookeeper
v-3.4.5
sudo mv $ZK_HOME/conf/zoo_sample.cfg $ZK_HOME/conf/zoo.cfg
sudo vi zoo.cfg
dataDir=/home/hadoop/zookeeper
ls bin
# option: start, stop, status
bin/zkServer.sh start
# 2 client
bin/zkCli.sh
ls /
rmr /hbase
4. HBase
resource: http://dblab.xmu.edu.cn/blog/install-hbase/#more-588
版本兼容 http://hbase.apache.org/book.html#basic.prerequisites
zookeeper-3.4.x
Hadoop-2.9.2 1.5.x & 2.2.x
Hadoop-3.1.x 2.1.x & 2.2.x & 2.3.x
jdk8 1.3+ & 2.1+
下载:http://archive.apache.org/dist/hbase/2.2.2/ 带有src的文件是未编译的版本,这里我们只要下载bin版本hbase-2.2.2-bin.tar.gz就好了。
v-2.1.2
sha512sum hbase-2.2.2-bin.tar.gz | tr 'a-z' 'A-Z'
hbase-2.1.2-bin.tar.gz:
5A78E24E 26FBF199 2A6CF9E8 BC3D25C3 40CD7DD2 7C161D0D
6FBF3F9A 0A592EA2 95B6EFE6 ED02A4B8 62972BA8 7CC1E793
AE580740 9A40FA11 910E7701 6E20ACAE
resource:http://dblab.xmu.edu.cn/blog/2442-2/
官网 http://hbase.apache.org/book.html#quickstart
中文 https://www.docs4dev.com/docs/zh/apache-hbase/2.1/reference/book.html#%E5%BF%AB%E9%80%9F%E5%85%A5%E9%97%A8-standalone-hbase
4.0 安装配置
cd ~
sudo tar -zxf ~/home/upload/hbase-2.2.2-bin.tar.gz -C /usr/local
cd /usr/local
sudo mv ./hbase-2.2.2 ./hbase
sudo chown -R hadoop:hadoop ./hbase
# 环境变量 PATH追加
vim ~/.bashrc
export HBASE_HOME=/usr/local/hbase
export PATH=$PATH:$HBASE_HOM/bin
source ~/.bashrc
cd /usr/local/hbase/ ;ls bin
bin/hbase version
4.1 hbase-env
export JAVA_HOME=/usr/java/jdk
# true: 用自带的, false: 用别的 :/Zookeeper | :128
export HBASE_MANAGES_ZK=true
4.2 hbase-site
<!-- hbase.tmp.dir Hbase默认使用改目录作为许多重要配置的起点-->
<!-- hbaase.rootdir HBASE存储其数据的路径-->
<configuration>
<property>
<name>hbase.rootdir.dir</name>
<!-- 分布式Alter: hdfs://localhost:9000/hbase -->
<value>file:///usr/local/hbase/hbase-tmp</value>
</property>
</configuration>
<!-- -->
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
<description>
Controls whether HBase will check for stream capabilities (hflush/hsync).
Disable this if you intend to run on LocalFileSystem, denoted by a rootdir
with the 'file://' scheme, but be mindful of the NOTE below.
WARNING: Setting this to false blinds you to potential data loss and
inconsistent system state in the event of process and/or node failures. If
HBase is complaining of an inability to use hsync or hflush it's most
likely not a false positive.
</description>
</property>
<!-- 分布式Alter: -->
<!-- -->
<!-- 开启HBase分布式集群,false: standalone模式运行时,依然会去启动自带的zookeeper -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>node-a.example.com,node-b.example.com,node-c.example.com</value>
</property>
<!-- -->
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/local/zookeeper</value>
</property>
<!-- -->
cd /usr/local/hbase ;ls bin
bin/start-hbase.sh
# jps命令来验证: HMaster、单个HRegionServer和ZooKeepdaemon
# HQuorumPeer 表示hbase管理的zookeeper
# QuorumPeerMain 表示zookeeper独立的进程
# HMaster web-port: 16010
# HRegionServer
# 以上都有不一定启动成功,查看log文件是否报错
bin/hbase shell
HBASE Master http://localhost:16010/
HBASE Region http://localhost:16030/
5. Hive
v-3.1.2
resource http://dblab.xmu.edu.cn/blog/1080-2/ 包含MySQL
v-2.1.1
下载: http://archive.apache.org/dist/hive/
md5sum /home/upload/apache-hive-2.1.2-bin.tar.gz | tr 'a-z' 'A-Z'
MD5 (apache-hive-2.1.1-bin.tar.gz) = 782cd36d0dc710ffbf0ece41081b2b85
sha256: c945dfc39f6489a098507fffa8fe78d8bd41de64887439b024c163ba1d958edc apache-hive-2.1.1-bin.tar.gz
5.0 安装配置
sudo tar -xzvf apache-hive-1.2.1-bin.tar.gz -C /usr/local
cd /usr/local/
sudo mv apache-hive-1.2.1-bin hive
# sudo chown -R group:user hive
sudo chown -R hadoop:hadoop hive
vi ~/.bashrc
export HADOOP_HOME=/usr/local/hadoop
# Hive
export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$HIVE_HOME/bin
source ~/.bashrc
## 未测试
$ cd /home/hadoop/hive
$HADOOP_HOME/bin/hadoop fs -mkdir /tmp
$HADOOP_HOME/bin/hadoop fs -mkdir /user/hive/warehouse
$HADOOP_HOME/bin/hadoop fs -chmod g+w /tmp
$HADOOP_HOME/bin/hadoop fs -chmod g+w /user/hive/warehouse
配置文件位置 /usr/local/hive/conf
mv hive-default.xml.template hive-default.xml
5.1 hive-site
使用MySQL保存元数据,须 安装MySQL 点击查看
<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.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>hive</value>
<description>password to use against metastore database</description>
</property>
create database hive;
-- 允许hive接入,后面的'hive'是配置hive-site.xml中配置的连接密码
grant all on *.* to hive@localhost identified by 'hive';
-- 刷新mysql系统权限关系表
flush privileges;
cp mysql-connector-java-5.1.40/mysql-connector-java-5.1.40-bin.jar /usr/local/hive/lib
start-all.sh # start hadoop
# 初始化元数据
schematool -dbType mysql -initSchema
hive # start hive
5.2 基本操作
create database if not exists hive;
show databases;
show databases like 'h.*'; # 以h开头的
describe database;
-- 为hive设置键值对属性,除 dbproperties属性外,数据库的元数据信息都是不可更改的
alter database hive set dbproperties;
use hive;
drop database if exists hive;
drop database if exists hive cascade;
6. MySQL下载安装
v-5.7
安装配置
sudo apt-get update #更新软件源
sudo apt-get install mysql-server #安装mysql
# 上述命令会安装以下包:安装过程会提示设置mysql root用户的密码
# apparmor
# mysql-client-5.7 无需再安装mysql-client等
# mysql-common
# mysql-server
# mysql-server-5.7
# mysql-server-core-5.7
service mysql start # 启动mysql服务
sudo netstat -tap | grep mysql # LISTEN状态表示启动成功
mysql -u root -p # 用户登陆shell界面
-------------------------------- 点击返回hive----------------------------------
show variables like 'char%'; -- 字符集
set character_set_server=utf8; -- 但是重启会失效
解决利用sqoop导入MySQL中文乱码的问题
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
character_set_server=utf8
service mysql restart